diff options
| author | Syndamia <kamen@syndamia.com> | 2026-04-21 21:27:08 +0300 |
|---|---|---|
| committer | Syndamia <kamen@syndamia.com> | 2026-04-21 21:27:08 +0300 |
| commit | e20ff4067df6851eb676beb8eb9f26d10b919e70 (patch) | |
| tree | 8de41f58b525d6fe66909d003bd972848a1db5af /String.c | |
| parent | 39319b1204efce39b58a7fc316846d783ba8c509 (diff) | |
| download | foollib-e20ff4067df6851eb676beb8eb9f26d10b919e70.tar foollib-e20ff4067df6851eb676beb8eb9f26d10b919e70.tar.gz foollib-e20ff4067df6851eb676beb8eb9f26d10b919e70.zip | |
feat(S_append): Always resize string
Diffstat (limited to 'String.c')
| -rw-r--r-- | String.c | 10 |
1 files changed, 4 insertions, 6 deletions
@@ -85,12 +85,10 @@ S_append(String s, const char* str) { struct StringMeta* sm = S_metadata(s); - usize strlength = strlen(str); - if (sm->length - strlen(s) < strlength) { - if (!B_resizeable(sm->b, s)) - return R_Err; - B_resize(sm->b, sizeof(*sm) + (sm->length += strlength) + 1); - } + if (!B_resizeable(sm->b, s)) + return R_OutOfBounds; + + RETURN_NOTOK(B_resize(sm->b, sizeof(*sm) + (sm->length += strlen(str)) + 1)); strcat(s, str); return R_Ok; |
