From 4339352ebed01c6b4951e286396111aa93003303 Mon Sep 17 00:00:00 2001 From: cannoli-fruit Date: Sun, 19 Jul 2026 19:35:58 -0400 Subject: [PATCH] Implemented lz_sb_append_cstr --- lazy.h | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/lazy.h b/lazy.h index 768423d..f7eac79 100644 --- a/lazy.h +++ b/lazy.h @@ -33,6 +33,8 @@ size_t lz_hm_hash_void_get(size_t cap, _Bool *exists, _Bool *tombstones, size_t lz_hm_hash_void_set(size_t cap, _Bool *exists, _Bool *tombstones, void* key, size_t k_s); Lz_Slc lz_slc_from_cstr(char *dat); +void lz_sb_append_cstr(Lz_SB *sb, const char *cstr); +void lz_sb_add_char(Lz_SB *sb, char c); char *lz_cstr_dup(const char *s); double lz_slc_atof(Lz_Slc *src); @@ -397,6 +399,40 @@ Lz_SB lz_sb_from_cstr(const char *dat) { return sb; } +#define lz_da_append(da, x) do { \ + if ((da).cap > (da).cnt) {\ + (da).data[(da).cnt++] = (x);\ + } else if((da).cap == 0) {\ + (da).data = malloc(256*sizeof(*(da).data));\ + (da).cap = 256;\ + (da).cnt = 0;\ + (da).data[(da).cnt++] = (x);\ + } else {\ + (da).data = realloc((da).data, sizeof(*(da).data)*(da).cap*(2));\ + (da).cap *= 2;\ + (da).data[(da).cnt++] = (x);\ + }\ +} while(0) + +void lz_sb_add_char(Lz_SB *sb, char c) { + if (sb->cap > sb->cnt) { + sb->data[sb->cnt++] = c; + } else if(sb.cap == 0) { + sb->data = malloc(256*sizeof(*sb->data)); + sb->cap = 256; + sb->cnt = 0; + sb->data[sb->cnt++] = c; + } else { + sb->data = realloc(sb->data, sizeof(*sb->data)*sb->cap*2); + sb->cap *= 2; + sb->data[sb->cnt++] = c; + } +} + +void lz_sb_append_cstr(Lz_SB *sb, const char *cstr) { + while (*cstr++) {lz_sb_add_char(sb, *cstr);} +} + Lz_Slc lz_slc_from_cstr(char *dat) { Lz_Slc out = {0}; out.data = dat;