summaryrefslogtreecommitdiff
path: root/src/utils/stringBuilder.c
diff options
context:
space:
mode:
authorphysick <mynameisgennadiy@vk.com>2026-07-12 11:13:08 +0500
committerphysick <mynameisgennadiy@vk.com>2026-07-12 11:13:08 +0500
commit58a26ca05aacb4736e9e7e652badd43a8085d1f1 (patch)
tree5009c076fdcf83c970a580624f02dc89cb3d2beb /src/utils/stringBuilder.c
parenta35731f94b0f0072783d7aba8dd24670b75716cc (diff)
rudimentary code execution
Diffstat (limited to 'src/utils/stringBuilder.c')
-rw-r--r--src/utils/stringBuilder.c30
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;
+}