Return StringUpdate from the dstr update functions
This commit is contained in:
@@ -54,9 +54,9 @@ String *wapp_dstr_from_string(const char *str, Arena *arena) {
|
||||
return out;
|
||||
}
|
||||
|
||||
String *wapp_dstr_update(String **dst, const char *src, Arena *arena) {
|
||||
StringUpdate wapp_dstr_update(String **dst, const char *src, Arena *arena) {
|
||||
if (!dst || !(*dst)) {
|
||||
return *dst;
|
||||
return (StringUpdate){.updated = false, .str = *dst};
|
||||
}
|
||||
|
||||
u64 length = strlen(src);
|
||||
@@ -65,15 +65,15 @@ String *wapp_dstr_update(String **dst, const char *src, Arena *arena) {
|
||||
|
||||
if (length >= str->capacity) {
|
||||
if (!arena) {
|
||||
return *dst;
|
||||
return (StringUpdate){.updated = false, .str = *dst};
|
||||
}
|
||||
|
||||
String *new_str = wapp_dstr_from_string(src, arena);
|
||||
if (!new_str) {
|
||||
return *dst;
|
||||
return (StringUpdate){.updated = false, .str = *dst};
|
||||
}
|
||||
|
||||
return new_str;
|
||||
return (StringUpdate){.updated = true, .str = new_str};
|
||||
}
|
||||
|
||||
memset(str->buf, 0, str->capacity);
|
||||
@@ -82,17 +82,17 @@ String *wapp_dstr_update(String **dst, const char *src, Arena *arena) {
|
||||
|
||||
strncpy(str->buf, src, length + 1);
|
||||
|
||||
return *dst;
|
||||
return (StringUpdate){.updated = true, .str = *dst};
|
||||
}
|
||||
|
||||
String *wapp_dstr_concat(String **dst, const char *src, Arena *arena) {
|
||||
StringUpdate wapp_dstr_concat(String **dst, const char *src, Arena *arena) {
|
||||
if (!dst || !(*dst)) {
|
||||
return *dst;
|
||||
return (StringUpdate){.updated = false, .str = *dst};
|
||||
}
|
||||
|
||||
u64 src_length = strlen(src);
|
||||
if (src_length == 0) {
|
||||
return *dst;
|
||||
return (StringUpdate){.updated = false, .str = *dst};
|
||||
}
|
||||
|
||||
u64 new_length = (*dst)->size + src_length;
|
||||
|
Reference in New Issue
Block a user