diff options
-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); |