Mercurial > hg > nnchat
comparison th_string.c @ 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 | 3dc86d8eb0a9 |
children | f1049f487987 |
comparison
equal
deleted
inserted
replaced
285:b765f15f9895 | 287:eb74097b73f5 |
---|---|
465 assert(buf != NULL); | 465 assert(buf != NULL); |
466 assert(bufsize != NULL); | 466 assert(bufsize != NULL); |
467 assert(len != NULL); | 467 assert(len != NULL); |
468 | 468 |
469 if (*buf == NULL) | 469 if (*buf == NULL) |
470 *bufsize = 0; | 470 *bufsize = *len = 0; |
471 | 471 |
472 if (*buf == NULL || *len + grow >= *bufsize) { | 472 if (*buf == NULL || *len + grow >= *bufsize) { |
473 *bufsize += grow + TH_BUFGROW; | 473 *bufsize += grow + TH_BUFGROW; |
474 *buf = (char *) th_realloc(*buf, *bufsize); | 474 *buf = (char *) th_realloc(*buf, *bufsize); |
475 if (*buf == NULL) | 475 if (*buf == NULL) |
477 } | 477 } |
478 return TRUE; | 478 return TRUE; |
479 } | 479 } |
480 | 480 |
481 | 481 |
482 void th_vputch(char **buf, size_t *bufsize, size_t *len, const char ch) | 482 BOOL th_vputch(char **buf, size_t *bufsize, size_t *len, const char ch) |
483 { | 483 { |
484 if (!th_growbuf(buf, bufsize, len, 1)) | 484 if (!th_growbuf(buf, bufsize, len, 1)) |
485 return; | 485 return FALSE; |
486 | 486 |
487 (*buf)[*len] = ch; | 487 (*buf)[*len] = ch; |
488 (*len)++; | 488 (*len)++; |
489 } | 489 |
490 | 490 return TRUE; |
491 | 491 } |
492 void th_vputs(char **buf, size_t *bufsize, size_t *len, const char *str) | 492 |
493 | |
494 BOOL th_vputs(char **buf, size_t *bufsize, size_t *len, const char *str) | |
493 { | 495 { |
494 size_t slen; | 496 size_t slen; |
495 if (str == NULL) | 497 if (str == NULL) |
496 return; | 498 return FALSE; |
497 | 499 |
498 slen = strlen(str); | 500 slen = strlen(str); |
499 if (!th_growbuf(buf, bufsize, len, slen)) | 501 if (!th_growbuf(buf, bufsize, len, slen)) |
500 return; | 502 return FALSE; |
501 | 503 |
502 strcat(*buf + *len, str); | 504 strcat(*buf + *len, str); |
503 (*len) += slen; | 505 (*len) += slen; |
504 } | 506 |
505 | 507 return TRUE; |
508 } | |
509 |