From 444bfa2f41143aff7490e4fa21565947565b7d30 Mon Sep 17 00:00:00 2001 From: nasr Date: Fri, 13 Mar 2026 22:31:21 +0100 Subject: cleanup: generalisation --- source/base/base_string.c | 73 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 73 insertions(+) create mode 100644 source/base/base_string.c (limited to 'source/base/base_string.c') diff --git a/source/base/base_string.c b/source/base/base_string.c new file mode 100644 index 0000000..cb2d71d --- /dev/null +++ b/source/base/base_string.c @@ -0,0 +1,73 @@ +internal umm +skip_whitespaces(string *buffer) +{ + s32 index = 0; + while (buffer->size > index) + { + ++index; + } +} + +internal b8 +compare_string_struct(string c1, string c2) +{ + if (c1.size != c2.size) + { + return -1; + } + + for (s32 index = 0; + index < c1.size; + ++index) + { + if (c1.Data[index] != c2.Data[index]) + { + return -1; + } + } + + return 0; +} + +internal b8 +compare_string(char *c1, char *c2) +{ + if (sizeof(*c1) != sizeof(*c2)) + { + return -1; + } + + for ( + u64 word_idx = 0; + word_idx <= sizeof(*c1); + ++word_idx) + { + if (*c1 != *c2) + { + return -1; + } + ++c1; + ++c2; + } + + return 0; +} + +/** NOTE(nasr): Helper function to parse strings to int using ascii codes **/ +internal u64 +parse_u64(char *buf, umm len) +{ + u64 value = 0; + + for (umm buffer_idx = 0; buffer_idx < len; ++buffer_idx) + { + char c = buf[buffer_idx]; + if (c < '0' || c > '9') + { + break; + } + value = value * 10 + (c - '0'); + } + + return value; +} -- cgit v1.3