aboutsummaryrefslogtreecommitdiff
path: root/lib/arena_strings.c
diff options
context:
space:
mode:
authorspl3g <spleefer6@yandex.ru>2025-03-22 21:41:16 +0300
committerspl3g <spleefer6@yandex.ru>2025-03-22 21:41:16 +0300
commit62454373db4cd2add82ded0cf7b21f7d69ade597 (patch)
tree1627133fe4567e9a3abb707af5e7289353410d5f /lib/arena_strings.c
parentef5f52fb739c9f0d71c579f08363ef0dfd5c227d (diff)
Reorganize the lib
Diffstat (limited to 'lib/arena_strings.c')
-rw-r--r--lib/arena_strings.c53
1 files changed, 0 insertions, 53 deletions
diff --git a/lib/arena_strings.c b/lib/arena_strings.c
deleted file mode 100644
index 3497c2e..0000000
--- a/lib/arena_strings.c
+++ /dev/null
@@ -1,53 +0,0 @@
-#include "arena_strings.h"
-
-const_string arena_cs_init(arena *a, int len) {
- char *str = new(a, char, len+1);
- const_string cs = {0};
- cs.data = str;
- cs.len = len;
- return cs;
-}
-
-const_string arena_cs_append(arena *a, const_string dst, const_string src) {
- char *str = new(a, char, dst.len+src.len + 1);
- memcpy(str, dst.data, dst.len);
- memcpy(str + dst.len, src.data, src.len + 1);
- const_string cs = {0};
- cs.data = str;
- cs.len = dst.len + src.len;
- return cs;
-}
-
-const_string arena_cs_concat(arena *a, const_string_da strings, const_string sep) {
- if (strings.len == 0) {
- return CS("");
- } else if (strings.len == 0) {
- return *strings.data;
- }
-
- int len = sep.len * (strings.len - 1);
- for (size_t i = 0; i < strings.len; i++) {
- len += (strings.data + i)->len;
- };
-
- char* str = arena_alloc(a, len);
- int offset = 0;
-
- for (size_t i = 0; i < strings.len; i++) {
- int curr_strlen = (strings.data + i)->len;
- memcpy(str + offset,
- (strings.data + i)->data,
- curr_strlen);
-
- offset += curr_strlen;
-
- if (i != strings.len - 1) {
- memcpy(str + offset,
- sep.data, sep.len);
- offset += sep.len;
- }
- };
- *(str + len + 1) = '\0';
-
- return (const_string){str, len};
-};