diff options
| author | Joel Klinghed <the_jk@spawned.biz> | 2021-01-27 22:06:49 +0100 |
|---|---|---|
| committer | Joel Klinghed <the_jk@spawned.biz> | 2021-01-27 22:06:49 +0100 |
| commit | 06950aab233de6a2f47293d59575bb42f6131660 (patch) | |
| tree | 62f6eed4a6d35414f656d22b9ac7420849018a11 /src/dynstr.c | |
| parent | 1ef9c463f1efc1adfb62e42ab3dd17e8c6394373 (diff) | |
Complete rewrite using C++ and with shared state support
Diffstat (limited to 'src/dynstr.c')
| -rw-r--r-- | src/dynstr.c | 94 |
1 files changed, 0 insertions, 94 deletions
diff --git a/src/dynstr.c b/src/dynstr.c deleted file mode 100644 index 72db26d..0000000 --- a/src/dynstr.c +++ /dev/null @@ -1,94 +0,0 @@ -#include "common.h" - -#include "dynstr.h" - -dynstr_t* dynstr_new(void) -{ - dynstr_t* str = calloc(1, sizeof(dynstr_t)); - if (str) - { - str->size = 64; - str->data = malloc(str->size); - if (!str->data) - { - free(str); - return NULL; - } - } - return str; -} - -dynstr_t* dynstr_new_strn(const char* cstr, size_t len) -{ - dynstr_t* str = calloc(1, sizeof(dynstr_t)); - assert(cstr); - if (str) - { - str->len = len; - str->size = len + 1; - str->data = malloc(str->size); - if (!str->data) - { - free(str); - return NULL; - } - memcpy(str->data, cstr, len); - } - return str; -} - -void dynstr_free(dynstr_t* str) -{ - if (str) - { - free(str->data); - free(str); - } -} - -char* dynstr_done(dynstr_t* str) -{ - char* ret; - assert(str); - assert(str->len < str->size); - str->data[str->len] = '\0'; - ret = str->data; - free(str); - return ret; -} - -const char* dynstr_peek(dynstr_t* str) -{ - assert(str); - assert(str->len < str->size); - str->data[str->len] = '\0'; - return str->data; -} - -bool dynstr_nappend(dynstr_t* str, const char* add, size_t len) -{ - if (str->len + len >= str->size) - { - size_t ns = MAX(str->size * 2, str->len + len + 1); - char* tmp = realloc(str->data, ns); - if (!tmp) - { - return false; - } - str->data = tmp; - str->size = ns; - } - memcpy(str->data + str->len, add, len); - str->len += len; - return true; -} - -void dynstr_cut(dynstr_t* str, size_t newlen) -{ - assert(str); - assert(newlen <= str->len); - if (newlen < str->len) - { - str->len = newlen; - } -} |
