aboutsummaryrefslogtreecommitdiff
path: root/src/tools.c
diff options
context:
space:
mode:
authorAleksey Veresov <aleksey@veresov.pro>2020-02-21 18:09:22 +0300
committerAleksey Veresov <aleksey@veresov.pro>2020-02-21 18:09:22 +0300
commita93c561921b79e5f27b986292fe70dce1879f91e (patch)
treee28853c5196344ac80f5ad04d16bab673733f499 /src/tools.c
parent83cd2267b309fa7411acaed356f88101196bb2ad (diff)
downloadmagi-a93c561921b79e5f27b986292fe70dce1879f91e.tar
magi-a93c561921b79e5f27b986292fe70dce1879f91e.tar.xz
magi-a93c561921b79e5f27b986292fe70dce1879f91e.zip
[magi]
Diffstat (limited to 'src/tools.c')
-rw-r--r--src/tools.c25
1 files changed, 14 insertions, 11 deletions
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 <ctype.h>
#include <stdlib.h>
@@ -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;
}