Library /sys$common/syshlp/TPUHELP.HLB  —  MARK
  MARK

     Returns a marker located in the specifed buffer, column, and record.
     By default, the marker returned is located on the character in the
     current buffer to which the editing point is tied.  The MARK built-in
     also sets the video attribute for displaying the character on which the
     marker is located (if any) when that character is visible on the
     screen.

  Syntax

     marker := MARK ({NONE | BLINK | BOLD | REVERSE | UNDERLINE
                     | FREE_CURSOR} [, {buffer | window} [, integer1
                     [, integer2]]])

  Parameters

     NONE            Applies no video attributes to the marker.

     BLINK           Causes the marker to blink.

     BOLD            Causes the marker to be bolded.

     REVERSE         Causes the marker to be displayed in reverse video.

     UNDERLINE       Causes the marker to be underlined.

     FREE_CURSOR     Creates a free marker if you use the statement MARK
                     (FREE_CURSOR) while the cursor is at a location
                     containing no character, such as a location beyond the
                     end of a line.  A free marker has no video attribute.
                     DECTPU does not insert padding blanks between a free
                     marker and the nearest character.  If you use the
                     statement MARK (FREE_CURSOR) while the cursor is on a
                     character, the resulting marker is tied to the
                     character and is not free.

     buffer          The buffer in which the marker is to be located.  By
                     default, DECTPU locates markers in the current buffer.

     window          The window that is mapped to the buffer in which the
                     marker is to be located.  You can specify a window
                     variable only if the window is mapped to a buffer.  By
                     default, DECTPU locates markers in the current buffer.

     integer1        The screen column corresponding to the buffer offset
                     where the marker is to be located.  This integer
                     specifies the marker's location in the horizontal
                     dimension.  You can specify any integer greater than or
                     equal to 1 without causing an error.  However, the
                     maximum record length in DECTPU is 32,767 characters.
                     If you specify an integer greater than 32,767, the
                     record is truncated after the 32,767th character.  If
                     you specify an integer smaller than the record's left
                     margin or greater than the end of the line, DECTPU
                     places the marker in the specified location and inserts
                     padding blanks in the buffer between the marker and the
                     nearest text.  By default, DECTPU locates the marker in
                     the buffer offset corresponding to the current screen
                     column.  Note that DECTPU performs the conversion from
                     screen column to buffer offset for you; you merely
                     specify the desired screen column.  Note, too, that in
                     cases where a window has been shifted, you still
                     specify the column in relation to screen column 1 (the
                     leftmost column on the screen), not in relation to the
                     leftmost visible screen column.

     integer2        The number of the record in the buffer where the mark
                     is to be located.  This integer specifies the marker's
                     location in the vertical dimension.  If no limit has
                     been set on the maximum number of lines in the buffer,
                     this parameter can have any integer value greater than
                     or equal to 1.  If a limit has been set for the maximum
                     number of records in the buffer, the value of this
                     parameter must be less than or equal to the limit.  By
                     default, DECTPU places the marker in the current
                     record.

  Comments

     If you create a marker in a location containing no character and
     specify a parameter other than FREE_CURSOR, DECTPU inserts padding
     blanks between the marker and the nearest character.  In such a
     situation, the marker is bound.  If you fill text containing these
     padding blanks, the white space created by the blanks is preserved in
     the filled text.

     If you use the optional parameters to specify a location that has no
     text associated with it, DECTPU places padding blanks in the space
     between the new marker and the nearest character.

     If you create a marker in a location containing no character and
     specify the parameter FREE_CURSOR, DECTPU does not insert padding
     blanks.  If you fill text surrounding this marker, no white space is
     created in the filled text.

     Once a marker is tied to a character, it cannot become a free marker.
     To determine whether a marker is bound or free, use the following call:

     boolean_variable := GET_INFO (marker_variable, "bound");

     To determine the number of character positions between a free marker
     and the nearest character, use the following call:

     boolean_variable := GET_INFO (marker_variable, "glyph_offset");

     To determine why a marker is free rather than bound, use one or more of
     the following calls:

     boolean_variable := GET_INFO (marker_variable, "before_bol");
     boolean_variable := GET_INFO (marker_variable, "beyond_eol");
     boolean_variable := GET_INFO (marker_variable, "middle_of_tab");
     boolean_variable := GET_INFO (marker_variable, "beyond_eob");

  Examples

     1.  user_mark_under := MARK (UNDERLINE);

         Puts a marker at the row and column position corresponding to the
         active editing point.  On the screen, the character at that marker
         is underlined.

     2.  remote_marker := MARK (FREE_CURSOR, CURRENT_BUFFER, 1, 50);

         Puts a free marker in the current buffer in the leftmost character
         offset on the 50th record.

  Related topics

     POSITION    SELECT    CREATE_RANGE    FILL
Close Help