string16 improvements

This commit is contained in:
Krzosa Karol
2025-04-04 08:25:47 +02:00
parent f6d5a1cf81
commit f3aa52ba3d
34 changed files with 637 additions and 699 deletions

View File

@@ -45,7 +45,7 @@ fn s8_t os_exe(ma_arena_t *arena) {
ssize_t size = readlink("/proc/self/exe", buffer, buffer_size);
assert(size < buffer_size); // @todo:?
assert(size != -1);
s8_t string = s8_copy(arena, s8(buffer, size));
s8_t string = s8_copy(arena, s8_make(buffer, size));
ma_end_scratch(temp);
return string;
}
@@ -122,7 +122,7 @@ fn s8_t os_read(ma_arena_t *arena, s8_t path) {
fread(string, size, 1, fd);
fclose(fd);
result = s8(string, size);
result = s8_make(string, size);
result.str[result.len] = 0;
}
ma_end_scratch(temp);

View File

@@ -151,7 +151,7 @@ fn void os_advance(os_iter_t *it) {
if (data->cFileName[0] == '.' && data->cFileName[1] == 0) continue;
it->is_directory = data->dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY;
it->name = s8_from_s16(it->arena, s16(data->cFileName, wstr_len(data->cFileName)));
it->name = s8_from_s16(it->arena, s16_make(data->cFileName, str16_len(data->cFileName)));
char *is_dir = it->is_directory ? "/" : "";
char *separator = it->path.str[it->path.len - 1] == '/' ? "" : "/";
it->rel = s8_printf(it->arena, "%S%s%S%s", it->path, separator, it->name, is_dir);
@@ -220,7 +220,7 @@ fn s8_t os_abs(ma_arena_t *arena, s8_t rel) {
DWORD written = GetFullPathNameW(rel16.str, buffer_size, buffer, 0);
assert(written != 0);
assert((i64)written < (i64)buffer_size);
s8_t result = s8_from_s16(arena, s16(buffer, written));
s8_t result = s8_from_s16(arena, s16_make(buffer, written));
ma_end_scratch(scratch);
return result;
}
@@ -231,7 +231,7 @@ fn s8_t os_exe(ma_arena_t *arena) {
wchar_t *buffer = ma_push_array(scratch.arena, wchar_t, buffer_size);
DWORD wsize = GetModuleFileNameW(0, buffer, buffer_size);
assert(wsize != 0);
s8_t result = s8_from_s16(arena, s16(buffer, wsize));
s8_t result = s8_from_s16(arena, s16_make(buffer, wsize));
s8_normalize_path_unsafe(result);
ma_end_scratch(scratch);
return result;
@@ -283,7 +283,7 @@ fn s8_t os_cwd(ma_arena_t *arena) {
DWORD wsize = GetCurrentDirectoryW(buffer_size, buffer);
assert(wsize != 0);
assert(wsize <= buffer_size);
s8_t path = s8_from_s16(scratch.arena, s16(buffer, wsize));
s8_t path = s8_from_s16(scratch.arena, s16_make(buffer, wsize));
s8_normalize_path_unsafe(path);
s8_t result = s8_printf(arena, "%S/", path);
ma_end_scratch(scratch);