/* Public domain */ typedef struct text { char encoding[16]; /* Character encoding */ char *buf; /* Text buffer */ size_t buf_len; /* Length of buffer in bytes */ size_t len; /* Length of text in bytes (NUL excluded) */ } TEXT; __BEGIN_DECLS void TEXT_Init(TEXT *, size_t, const char *); void TEXT_Destroy(TEXT *); size_t TEXT_CatS(TEXT *, const char *); size_t TEXT_CatS_UTF8(TEXT *, const char *); size_t TEXT_CatC(TEXT *, char); size_t TEXT_Cat(TEXT *, const char *, ...) FORMAT_ATTRIBUTE(__printf__, 2, 3) NONNULL_ATTRIBUTE(2); __END_DECLS