diff options
| author | physick <mynameisgennadiy@vk.com> | 2026-07-12 11:13:08 +0500 |
|---|---|---|
| committer | physick <mynameisgennadiy@vk.com> | 2026-07-12 11:13:08 +0500 |
| commit | 58a26ca05aacb4736e9e7e652badd43a8085d1f1 (patch) | |
| tree | 5009c076fdcf83c970a580624f02dc89cb3d2beb /src/utils/stringBuilder.c | |
| parent | a35731f94b0f0072783d7aba8dd24670b75716cc (diff) | |
rudimentary code execution
Diffstat (limited to 'src/utils/stringBuilder.c')
| -rw-r--r-- | src/utils/stringBuilder.c | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/src/utils/stringBuilder.c b/src/utils/stringBuilder.c new file mode 100644 index 0000000..805fb34 --- /dev/null +++ b/src/utils/stringBuilder.c @@ -0,0 +1,30 @@ +#include "stringBuilder.h" +#include <stdlib.h> +#include <string.h> + +void AppendStringBuilder(StringBuilder *sb, const char *str, char separator) { + size_t str_len = strlen(str); + if (sb->val == NULL) { + sb->val = malloc(str_len + 1); + if (sb->val == NULL) return; + memcpy(sb->val, str, str_len); + sb->len = str_len; + } else { + char *appended = realloc(sb->val, sb->len + str_len + 2); + if (appended == NULL) return; + sb->val = appended; + + sb->val[sb->len] = separator; + memcpy(sb->val + sb->len + 1, str, str_len); + sb->len = sb->len + str_len + 1; + } + sb->val[sb->len] = 0x0; +} + +void FreeStringBuilder(StringBuilder *sb) { + if (sb->val != NULL) { + free(sb->val); + sb->val = NULL; + } + sb->len = 0; +} |
