logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

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

Author

       Lars Wirzenius, liw@iki.fi.

                                                                                                      TBUF(3pub)

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.

Name

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

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)

Synopsis

#include<publib.h>Tbuf*tbuf_create(constchar*chars,size_tlen);voidtbuf_destroy(Tbuf*tbuf);Tbuf*tbuf_copy(Tbuf*tbuf,size_toffset,size_tlen);Tbuf*tbuf_cat(Tbuf*tbuf,Tbuf*tbuf);size_ttbuf_length(Tbuf*tbuf);voidtbuf_chars(char*chars,Tbuf*tbuf,size_toffset,size_tlen);

See Also