Provided by: publib-dev_0.40-3build1_amd64 bug

NAME

       tbuf_create, tbuf_destroy, tbuf_copy, tbuf_cat, tbuf_length, tbuf_chars - manipulate text editor buffer

SYNOPSIS

       #include <publib.h>

       Tbuf *tbuf_create(const char *chars, size_t len);
       void tbuf_destroy(Tbuf *tbuf);
       Tbuf *tbuf_copy(Tbuf *tbuf, size_t offset, size_tlen);
       Tbuf *tbuf_cat(Tbuf *tbuf, Tbuf * tbuf);
       size_t tbuf_length(Tbuf *tbuf);
       void tbuf_chars(char *chars, Tbuf *tbuf, size_t offset, size_t len);

DESCRIPTION

       These  routines  create  and  manipulate  simple  text  editor  buffers,  which can also be thought of as
       arbitrarily large text strings.  The buffers are one-dimensional (i.e., not  automatically  divided  into
       lines),  and are indexed with character offsets.  They are 8-bit and binary clean, i.e., they may contain
       any 8-bit characters, including the zero byte ('\0').

       tbuf_create creates a buffer from a C character array, and tbuf_destroy destroys it.  Once it's  created,
       a  buffer  may not be modified.  Instead, a new buffer needs to be created, using tbuf_cat and tbuf_copy.
       They create the new buffer so that it shares as much memory as possible  with  the  old  buffer,  so  the
       immutability  does not necessarily waste memory much.  By never changing a buffer, it is rather simple to
       implement undo and redo: you only need to keep a list of buffers and display  the  suitable  one  to  the
       user.  The caller should remember to call tbuf_destroy for unnecessary buffers, of course.

       tbuf_length  returns  the number of characters in the buffer.  tbuf_copy copies part of a buffer into a C
       character array.  The array is not zero-terminated; the caller must do it himself.

RETURN VALUE

       tbuf_create, tbuf_copy, and tbuf_cat return a pointer to the new buffer, or NULL if the operation failed.

       tbuf_length returns the number of characters in the buffer.

       tbuf_destroy and tbuf_chars return nothing and cannot fail.

SEE ALSO

       publib(3), sbuf(3)

AUTHOR

       Lars Wirzenius, liw@iki.fi.

                                                                                                      TBUF(3pub)