Implemented lz_sb_append_cstr

This commit is contained in:
cannoli-fruit 2026-07-19 19:35:58 -04:00
commit 4339352ebe

36
lazy.h
View file

@ -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;