# HG changeset patch # User Matti Hamalainen # Date 1307743767 -10800 # Node ID eb74097b73f51876da72691d25772f969fcba1c8 # Parent b765f15f98955f3840ac47cd6822a7523cd9b8ac Make th_vputch() and th_vputs() return a boolean value for success and failure respectively. Also fix a grave bug in th_growbuf(). diff -r b765f15f9895 -r eb74097b73f5 th_string.c --- a/th_string.c Fri Jun 10 23:43:36 2011 +0300 +++ b/th_string.c Sat Jun 11 01:09:27 2011 +0300 @@ -467,7 +467,7 @@ assert(len != NULL); if (*buf == NULL) - *bufsize = 0; + *bufsize = *len = 0; if (*buf == NULL || *len + grow >= *bufsize) { *bufsize += grow + TH_BUFGROW; @@ -479,27 +479,31 @@ } -void th_vputch(char **buf, size_t *bufsize, size_t *len, const char ch) +BOOL th_vputch(char **buf, size_t *bufsize, size_t *len, const char ch) { if (!th_growbuf(buf, bufsize, len, 1)) - return; + return FALSE; (*buf)[*len] = ch; (*len)++; + + return TRUE; } -void th_vputs(char **buf, size_t *bufsize, size_t *len, const char *str) +BOOL th_vputs(char **buf, size_t *bufsize, size_t *len, const char *str) { size_t slen; if (str == NULL) - return; + return FALSE; slen = strlen(str); if (!th_growbuf(buf, bufsize, len, slen)) - return; + return FALSE; strcat(*buf + *len, str); (*len) += slen; + + return TRUE; } diff -r b765f15f9895 -r eb74097b73f5 th_string.h --- a/th_string.h Fri Jun 10 23:43:36 2011 +0300 +++ b/th_string.h Sat Jun 11 01:09:27 2011 +0300 @@ -67,8 +67,8 @@ int th_get_hex_triplet(const char *); -void th_vputch(char **buf, size_t *bufsize, size_t *len, const char ch); -void th_vputs(char **buf, size_t *bufsize, size_t *len, const char *str); +BOOL th_vputch(char **buf, size_t *bufsize, size_t *len, const char ch); +BOOL th_vputs(char **buf, size_t *bufsize, size_t *len, const char *str); #define TH_BUFGROW (32)