strbuf_reserve() ensure strbuf->str has storage for len characters */
| 25 | |
| 26 | /* strbuf_reserve() ensure strbuf->str has storage for len characters */ |
| 27 | void |
| 28 | strbuf_reserve(strbuf_t *strbuf, int len) |
| 29 | { |
| 30 | if (strbuf->str == NULL) { |
| 31 | strbuf->str = strbuf->buf; |
| 32 | strbuf->str[0] = '\0'; |
| 33 | strbuf->len = (int) sizeof strbuf->buf; |
| 34 | } |
| 35 | |
| 36 | if (len > strbuf->len) { |
| 37 | char *oldbuf = strbuf->str; |
| 38 | |
| 39 | strbuf->len = len + (int) sizeof strbuf->buf; |
| 40 | strbuf->str = (char *) alloc(strbuf->len); |
| 41 | Strcpy(strbuf->str, oldbuf); |
| 42 | if (oldbuf != strbuf->buf) |
| 43 | free((genericptr_t) oldbuf); |
| 44 | } |
| 45 | } |
| 46 | |
| 47 | /* strbuf_empty() frees allocated memory and set strbuf to initial state */ |
| 48 | void |
no test coverage detected