MODIFY_RANGE Allows a TPU application to change the starting delimiter, ending delimiter, or video attribute of a range. Syntax MODIFY_RANGE (range, [{start_mark | delimiting_keyword}, {end_mark | delimiting_keyword}] [,video_attribute]) Parameters range The range to be modified. start_mark The starting mark for the range. end_mark The ending mark for the range. delimiting_keyword A keyword indicating the point in the buffer where you want the range to begin or end. The valid keywords and their meaning are as follows: Keyword Meaning ------- ------- LINE_BEGIN The beginning of the current buffer's current line. LINE_END The end of the current buffer's current line. BUFFER_BEGIN Line 1, offset 0 in the current buffer. This is the first position where a character could be inserted, regardless of whether there is a character there. This is the same as the point referred to by BEGINNING_OF (CURRENT_BUFFER). BUFFER_END The last position in the buffer where a character could be inserted, regardless of whether there is a character there. This is the same as the point referred to by END_OF (CURRENT_BUFFER). video_attribute A keyword specifying the new video attribute for the range. By default, the attribute is not modified. You can use the keywords NONE, REVERSE, UNDERLINE, BLINK, or BOLD to specify this parameter. Comments If you want to specify the fourth parameter (the attribute) but not the second and third (the start and end delimiters), you must use commas as placeholders, as follows: MODIFY_RANGE (the_range, , ,BLINK); Examples 1. The following statement sets the video attribute of the range assigned to the variable "this_range" to BLINK: MODIFY_RANGE (this_range, , ,BLINK); 2. The following statement alters the delimiters of the range assigned to the variable "the_range" so the range begins at the point marked by "mark1" and ends at the end of the current line: MODIFY_RANGE (the_range, mark1, LINE_END); 3. The following code fragment creates a range between the editing point and the pointer cursor location. At a later point in the program, after which the user might have moved the pointer cursor, the code fragment modifies the range to reflect the new pointer cursor location. begin_mark := MARK (BOLD); POSITION (MOUSE); finish_mark := MARK (BOLD); this_range := CREATE_RANGE (begin_mark, finish_mark, BOLD); ! . ! . (User may have moved mouse) ! . POSITION (MOUSE); new_mark := MARK (BOLD); IF new_mark <> finish_mark THEN MODIFY_RANGE (this_range, begin_mark, new_mark, BOLD); ENDIF; Related Topics MARK CREATE_RANGE