This commit is contained in:
Daniel Ledda
2025-11-09 05:36:10 +01:00
parent 52f9a2fe33
commit db92620d65
3 changed files with 34 additions and 37 deletions

39
core.c
View File

@@ -210,7 +210,8 @@ StringList strSplit(Arena *arena, string splitStr, string inputStr) {
size_t start = 0;
void *beginning = (char *)arena->memory + arena->head;
while (c < inputStr.length - splitStr.length) {
if (strEql(strSlice(inputStr, c, c + splitStr.length), splitStr)) {
string mystr = strSlice(inputStr, c, c + splitStr.length);
if (strEql(mystr, splitStr)) {
string *splitString = PushStruct(arena, string);
splitString->str = inputStr.str + start;
splitString->length = c - start;
@@ -224,9 +225,10 @@ StringList strSplit(Arena *arena, string splitStr, string inputStr) {
splitString->str = inputStr.str + start;
splitString->length = inputStr.length - start;
splitCount++;
result.data = (string *)beginning,
result.head = splitCount,
result.data = (string *)beginning;
result.length = splitCount;
result.head = splitCount;
}
return result;
}
@@ -293,7 +295,7 @@ ParsePositiveReal32Result parsePositiveReal32(string str, size_t *lengthPointer)
StringList getArgs(Arena *arena, int argc, char **argv) {
StringList args = PushList(arena, StringList, (size_t)argc - 1);
for (int i = 1; i < argc; i++) {
AppendList(string, &args, strFromCString(arena, argv[i]));
AppendList(&args, strFromCString(arena, argv[i]));
}
return args;
}
@@ -354,12 +356,8 @@ function void printStdout(const char *fmt, ...) {
va_end(argList);
}
void print(const char *fmt, ...) {
va_list argList;
va_start(argList, fmt);
os_print(StdStream_stdout, fmt, argList);
va_end(argList);
}
void (*print)(const char *fmt, ...) = &printStdout;
#define SetStdErr() DeferLoop(print = &printStderr, print = &printStdout)
// TODO(dledda): mat print functions
/*
@@ -400,27 +398,26 @@ void print(list<Vector2<real32>> l, StdStream target) {
}
*/
void (*__djstdlib_logFn)(const char *fmt, ...) = &printStdout;
void printIntList(IntList l) {
__djstdlib_logFn("{ ");
print("{ ");
for (size_t i = 0; i < l.length; i++) {
if (i != 0) {
__djstdlib_logFn(", ");
print(", ");
}
__djstdlib_logFn("%i", l.data[i]);
print("%i", l.data[i]);
}
__djstdlib_logFn(" } length: %zu, head: %zu\n", l.length, l.head);
print(" } length: %zu, head: %zu\n", l.length, l.head);
}
void printStringList(StringList l) {
__djstdlib_logFn("{ ");
void printStrList(StringList l) {
print("{ ");
for (size_t i = 0; i < l.length; i++) {
if (i != 0) {
__djstdlib_logFn(", ");
}
__djstdlib_logFn("\"%S\"", l.data[i]);
print(", ");
}
print("\"%S\"", l.data[i]);
}
__djstdlib_logFn(" } length: %zu, head: %zu\n", l.length, l.head);
print(" } length: %zu, head: %zu\n", l.length, l.head);
}
int intCompare(const void *a, const void *b) {