Mercurial > hg > nnchat
changeset 287:eb74097b73f5
Make th_vputch() and th_vputs() return a boolean value for success and failure respectively. Also fix a grave bug in th_growbuf().
author | Matti Hamalainen <ccr@tnsp.org> |
---|---|
date | Sat, 11 Jun 2011 01:09:27 +0300 |
parents | b765f15f9895 |
children | e7ef3db3b954 |
files | th_string.c th_string.h |
diffstat | 2 files changed, 12 insertions(+), 8 deletions(-) [+] |
line wrap: on
line diff
--- 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; }
--- 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)