aboutsummaryrefslogtreecommitdiff
path: root/src/i_str.c
diff options
context:
space:
mode:
authorame <[email protected]>2023-12-28 19:02:03 -0600
committerame <[email protected]>2023-12-28 19:02:03 -0600
commit8c591404e3ce9a36acb5fbe26ceaf5d6f63048e5 (patch)
tree6a266ec7e4f61e90c23ce6df557203f948d36d29 /src/i_str.c
parent3c4ce79c929a16602eecbb2a6600e1cea871439f (diff)
json parsing :p
Diffstat (limited to 'src/i_str.c')
-rw-r--r--src/i_str.c35
1 files changed, 35 insertions, 0 deletions
diff --git a/src/i_str.c b/src/i_str.c
new file mode 100644
index 0000000..804a33d
--- /dev/null
+++ b/src/i_str.c
@@ -0,0 +1,35 @@
+#include "i_str.h"
+
+str* str_init(char* init){
+ if(init == NULL){
+ char cc = '\0';
+ init = &cc;
+ }
+
+ size_t len = strlen(init);
+ str* s = malloc(sizeof * s);
+ s->c = malloc(len + 1);
+ s->len = len ;
+
+ memcpy(s->c, init, len + 1);
+ return s;
+}
+
+void str_free(str* s){
+ free(s->c);
+ return free(s);
+}
+
+void str_push(str* s, char* insert){
+ s->len += strlen(insert);
+ s->c = realloc(s->c, s->len + 5);
+ strcat(s->c, insert);
+}
+
+void str_clear(str* s){
+ memset(s->c, 0, s->len);
+
+ s->len = 0;
+}
+
+