From a93c561921b79e5f27b986292fe70dce1879f91e Mon Sep 17 00:00:00 2001 From: Aleksey Veresov Date: Fri, 21 Feb 2020 18:09:22 +0300 Subject: [magi] --- src/tools.c | 25 ++++++++++++++----------- 1 file changed, 14 insertions(+), 11 deletions(-) (limited to 'src/tools.c') diff --git a/src/tools.c b/src/tools.c index d958851..ecfcd6c 100644 --- a/src/tools.c +++ b/src/tools.c @@ -1,4 +1,4 @@ -#include "inner_tools.h" +#include "tools.h" #include #include @@ -33,19 +33,22 @@ char *magi_str_create(int len) return str; } -int magi_str_add(char **dest, int *len, int *size, char c) +int magi_str_add(magi_str *str, char c) { - if (!*dest) { - *dest = magi_str_create(1); - } else if (*len + 1 == *size) { - *size *= 2; - *dest = realloc(*dest, *size); + 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 (!*dest) { + if (!str->dest) { + str->len = 0; + str->size = 0; return 0; } - (*dest)[*len] = c; - ++*len; - (*dest)[*len] = 0; + str->data[str->len++] = c; + str->data[str->len] = 0; return 1; } -- cgit v1.2.3