From 8f1e6faa7f548c9a8bcbcac71c8f239a6540b926 Mon Sep 17 00:00:00 2001 From: Aleksey Veresov Date: Wed, 11 Mar 2020 17:54:19 +0300 Subject: [magi] --- src/tools.c | 34 ++++++++++++---------------------- 1 file changed, 12 insertions(+), 22 deletions(-) (limited to 'src/tools.c') diff --git a/src/tools.c b/src/tools.c index d7a90ce..d6170bc 100644 --- a/src/tools.c +++ b/src/tools.c @@ -19,37 +19,27 @@ char *magi_str_lowercase(char *str) char *magi_str_create_copy(const char *first, int len) { char *copy = magi_str_create(len); - if (copy) { - memcpy(copy, first, len); - } + memcpy(copy, first, len); return copy; } char *magi_str_create(int len) { char *str = malloc(len + 1); - if (str) { - str[len] = 0; - } + str[len] = 0; return str; } -int magi_str_add(magi_str *str, char c) +void magi_str_add(char **str, int *len, int *size, char c) { - if (!str->data) { - str->len = 0; - str->size = 2; - str->data = malloc(2); - } else if (str->len + 1 == str->size) { - str->size *= 2; - str->data = realloc(str->data, str->size); - } - if (!str->dest) { - str->len = 0; - str->size = 0; - return 0; + if (!*str) { + *len = 0; + *size = 2; + *str = malloc(2); + } else if (*len + 1 == *size) { + *size *= 2; + *str = realloc(*str, *size); } - str->data[str->len++] = c; - str->data[str->len] = 0; - return 1; + *str[*len] = c; + *str[++*len] = 0; } -- cgit v1.2.3