Implemented lz_sb_append_cstr
This commit is contained in:
parent
d81fb49e3c
commit
4339352ebe
1 changed files with 36 additions and 0 deletions
36
lazy.h
36
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;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue