Provided by: ivtools-dev_1.2.11a1-2_amd64 bug

NAME

       TextBuffer - operations on unstructured text

SYNOPSIS

       #include <InterViews/textbuffer.h>

DESCRIPTION

       TextBuffer  defines common editing, searching, and text movement operations on a buffer of
       unstructured text.  Text positions are specified by an index into the buffer and logically
       refer to positions between characters.  For example, the position referred to by the index
       0 is before the first character in the text.  Indices can  be  compared  for  equality  or
       ordering,  but  they  should  not be used to directly access the buffer because TextBuffer
       might rearrange the text to improve the efficiency of some operations.

PUBLIC OPERATIONS

       TextBuffer(char* buffer, int length, int size)
       ~TextBuffer()
              Create or destroy an instance of TextBuffer.  All operations on the text  contained
              in buffer should be performed through TextBuffer functions.  The text is assumed to
              be of length length, and the total available buffer size is size.

       int Search(Regexp* regexp, int index, int range, int stop)
       int ForwardSearch(Regexp* regexp, int index)
       int BackwardSearch(Regexp* regexp, int index)
              Search for a match with the regular expression regexp, beginning at position index.
              Search  searches the part of the buffer specified by range and stop and returns the
              index of the beginning of the matched  text.   Positive  values  of  range  specify
              forward  searches,  and negative values specify backward searches.  In either case,
              the matched text will not extend beyond the position given by stop.   ForwardSearch
              searches for matches from index to the end of the text and returns the index of the
              end of the match.  BackwardSearch searches from index to the start of the text  and
              returns  the  index  of  the  beginning of the match.  All three functions return a
              negative number if there was no match.

       int Match(Regexp* regexp, int index, int stop)
       boolean ForwardMatch(Regexp* regexp, int index)
       boolean BackwardMatch(Regexp* regexp, int index)
              Attempt to match the regular  expression  regexp  at  the  position  index.   Match
              returns  the  length  of  the matching string, or a negative number if there was no
              match.  Matching will not succeed beyond the position given by stop.   ForwardMatch
              looks  for a match that begins at index.  BackwardMatch looks for a match that ends
              at index.

       int Insert(int index, const char* string, int count)
       int Delete(int index, int count)
       int Copy(int index, char* buffer, int count)
              Edit the text in the buffer.  Insert inserts count characters from  string  at  the
              position  index.   It returns the actual number of characters inserted, which might
              be less than count if there is insufficient space in the  buffer.   Delete  deletes
              count characters from the buffer.  A positive count deletes characters after index,
              and a negative value deletes character before index.   Delete  returns  the  actual
              number  of  characters deleted, which might be less than count if index is near the
              beginning or the end of the text.  Copy copies count  characters  into  buffer.   A
              positive count copies characters after index and a negative count copies characters
              before index.  Count returns the actual number of characters  copied.   It  is  the
              caller's  responsibility  to  ensure  that buffer contains sufficient space for the
              copied text.

       int Height()
       int Width()
       int Length()
              Return information about the text.  Height returns the number of lines in the text,
              Width  returns the number of characters in the longest line, and Length returns the
              total number of characters.

       const char* Text()
       const char* Text(int index)
       const char* Text(int index1, int index2)
       char Char (int index)
              Access the contents of the text.  Char returns the character immediately  following
              index.   The three Text calls return pointers to character strings representing the
              text.  They make various guarantees about the format of the returned string.   With
              no  parameters, Text returns a pointer to a string that contains the entire text of
              the buffer.  With a single parameter the string contains at  least  the  text  from
              index to the end of the line.  With two parameters, the returned string contains at
              least the text between index1 and index2.  In any case, the returned string  should
              be   considered  temporary  and  its  contents  subject  to  change.   To  maximize
              efficiency, you should prefer the more restricted forms of Text.

       int LineIndex(int line)
       int LinesBetween(int index1, int index2)
       int LineNumber(int index)
       int LineOffset (int index)
              Map between text indices and line and  offset  positions.   LineIndex  returns  the
              index  of  the  beginning  of line line.  LineNumber returns the number of the line
              that contains index.  LineOffset returns the offset of index from the beginning  of
              its  containing  line.   LinesBetween returns the difference between the numbers of
              the lines containings index1 and index2; a return  value  of  zero  indicates  that
              index1  and  index2  are  on the same line, and a positive value indicates that the
              line containing index2 is after the line containing  index1.   Lines  are  numbered
              starting from zero.

       int PreviousCharacter(int index)
       int NextCharacter(int index)
              Return  the  index immediately following or preceding index.  The returned value is
              never before the beginning or after the end of the text.

       boolean IsBeginningOfText(int index)
       int BeginningOfText()
       boolean IsEndOfText(int index)
       int EndOfText()
              Return the index of the beginning or end of the text, or query whether index is  at
              the beginning or end of the text.

       boolean IsBeginningOfLine(int index)
       int BeginningOfLine(int index)
       int BeginningOfNextLine(int index)
       boolean IsEndOfLine(int index)
       int EndOfLine(int index)
       int EndOfPreviousLine(int index)
              Return   information   about   the   line  structure  of  the  text  around  index.
              BeginningOfLine returns the index of the beginning of the  line  containing  index.
              BeginningOfNextLine returns the index of the beginning of the next line that begins
              after index.  EndOfLine returns the index of the end of the line containing  index.
              EndOfPreviousLine  returns  the  index of the end of the last line that ends before
              index.  The beginning of a line is logically immediately after a newline character,
              and  the  end  of  a line is logically immediately before a newline character.  The
              beginning and end of the text are considered to be the beginning  and  end  of  the
              first and last lines, respectively.

       boolean IsBeginningOfWord(int index)
       int BeginningOfWord(int index)
       int BeginningOfNextWord(int index)
       boolean IsEndOfWord(int index)
       int EndOfWord(int index)
       int EndOfPreviousWord(int index)
              Return   information   about   the   word  structure  of  the  text  around  index.
              BeginningOfWord returns the index of the beginning of the  word  containing  index.
              BeginningOfNextWord  return the index of the beginning of the nest word that begins
              after index.  EndOfWord returns the index of the end  of  the  word  that  contains
              index.   EndOfPreviousWord  returns the index of the end of the last word that ends
              before index.  A word is defined as a sequence of  alpha-numeric  characters.   The
              beginning  and  end  of  the text are considered to be the beginning and end of the
              first and last words, respectively.

SEE ALSO

       Regexp(3I)