diff options
author | quou <quou@disroot.org> | 2024-07-31 22:11:13 +1000 |
---|---|---|
committer | quou <quou@disroot.org> | 2024-07-31 22:11:56 +1000 |
commit | 8d729883b3e134df8b9fc10f094df9fc3618bdb4 (patch) | |
tree | 8c6454372a350b98d06b74b912d56a937b992bf9 | |
parent | 9fedd9336c48835495f74994d80795aa6e3fbecd (diff) |
string_dup and string_len
-rw-r--r-- | standard.c | 14 | ||||
-rw-r--r-- | standard.h | 4 |
2 files changed, 18 insertions, 0 deletions
@@ -1,4 +1,5 @@ #include "maths.h" +#include "memory.h" #include "standard.h" int string_equal(const char* a, const char* b) { @@ -17,6 +18,19 @@ int string_copy(char* dst, const char* src) { return i; } +int string_len(const char* s) { + int l; + for (l = 0; *s; s++, l++); + return l; +} + +char* dup_string(Arena* a, const char* s) { + int size = string_len(s) + 1; + char* d = arena_alloc_aligned(a, size, 1); + string_copy(d, s); + return d; +} + int int_to_buf(int n, char* buf) { int i, sign, t; unsigned n1; @@ -3,8 +3,12 @@ #define no_mangle extern "C" +struct Arena; + int string_equal(const char* a, const char* b); int string_copy(char* dst, const char* src); +int string_len(const char* s); +char* dup_string(struct Arena* a, const char* s); /* Not safe! */ int f_to_buf(int f, char* buf); |