diff --git a/build_tool/easy_strings.cpp b/build_tool/easy_strings.cpp index 59e9de5..128c25c 100644 --- a/build_tool/easy_strings.cpp +++ b/build_tool/easy_strings.cpp @@ -36,10 +36,8 @@ Array &operator+=(Array &a, S8_String s) { } //@todo: split on any whitespace instead! -Array Split(char *str) { - S8_String s = S8_MakeFromChar(str); - S8_List list = S8_Split(Perm, s, S8_Lit(" "), 0); - +Array Split(S8_String s, S8_String sep = " ") { + S8_List list = S8_Split(Perm, s, sep, 0); Array result = {*Perm}; S8_For(it, list) result.add(it->string); return result; diff --git a/build_tool/main.cpp b/build_tool/main.cpp index 007247c..6793b7a 100644 --- a/build_tool/main.cpp +++ b/build_tool/main.cpp @@ -58,6 +58,7 @@ int main(int argument_count, char **arguments) { flags += "-Wno-writable-strings"; flags += "-fno-exceptions"; flags += "-fno-rtti"; + flags += "-lm"; flags += Fmt("-o %.*s", S8_Expand(exe_name)); result = Run(cc + build_file + flags); } @@ -69,6 +70,7 @@ int main(int argument_count, char **arguments) { flags += "-Wno-write-strings"; flags += "-fno-exceptions"; flags += "-fno-rtti"; + flags += "-lm"; flags += Fmt("-o %.*s", S8_Expand(exe_name)); result = Run(cc + build_file + flags); } diff --git a/standalone_libraries/string.c b/standalone_libraries/string.c index f13a363..a9ab569 100644 --- a/standalone_libraries/string.c +++ b/standalone_libraries/string.c @@ -328,7 +328,7 @@ S8_API S8_String S8_MergeWithSeparator(S8_Allocator allocator, S8_List list, S8_ int64_t base_size = (list.char_count + 1); int64_t sep_size = (list.node_count - 1) * separator.len; int64_t size = base_size + sep_size; - char *buff = (char *)S8_ALLOCATE(allocator, sizeof(char) * size); + char *buff = (char *)S8_ALLOCATE(allocator, sizeof(char) * (size + 1)); S8_String string = S8_Make(buff, 0); for (S8_Node *it = list.first; it; it = it->next) { S8_ASSERT(string.len + it->string.len <= size); diff --git a/standalone_libraries/string.h b/standalone_libraries/string.h index 4a71c5c..37ef01d 100644 --- a/standalone_libraries/string.h +++ b/standalone_libraries/string.h @@ -2,6 +2,7 @@ #define FIRST_S8_STRING #include #include +#include #ifndef S8_API #define S8_API