diff --git a/src/os/cpath/cpath.c b/src/os/cpath/cpath.c index 114df81..a78d17a 100644 --- a/src/os/cpath/cpath.c +++ b/src/os/cpath/cpath.c @@ -8,28 +8,26 @@ #include "../../base/mem/allocator/mem_allocator.h" #include "../../base/strings/str8/str8.h" #include -#include -#include -u32 wapp_cpath_join_path(WpStr8 *dst, const WpStr8List *parts) { +u32 wpCpathJoinPath(WpStr8 *dst, const WpStr8List *parts) { if (!dst || !parts) { - return CPATH_JOIN_INVALID_ARGS; + return WP_CPATH_JOIN_RESULT_INVALID_ARGS; } if (parts->node_count == 0) { - return CPATH_JOIN_EMPTY_PARTS; + return WP_CPATH_JOIN_RESULT_EMPTY_PARTS; } WpStr8 separator = wpStr8Buf(4); - wpStr8PushBack(&separator, WAPP_PATH_SEP); + wpStr8PushBack(&separator, WP_PATH_SEP); u64 required_capacity = parts->node_count * separator.size + wpStr8ListTotalSize(parts); if (dst->capacity < required_capacity) { - return CPATH_JOIN_INSUFFICIENT_DST_CAPACITY; + return WP_CPATH_JOIN_RESULT_INSUFFICIENT_DST_CAPACITY; } // Handle first node - WpStr8 *first_node = wapp_dbl_list_get(WpStr8, parts, 0); + WpStr8 *first_node = wpDblListGet(WpStr8, parts, 0); wpStr8CopyStr8Capped(dst, first_node); // NOTE (Abdelrahman): Uses a while loop instead of a for loop to get rid of @@ -38,7 +36,7 @@ u32 wapp_cpath_join_path(WpStr8 *dst, const WpStr8List *parts) { u64 node_index = 1; b8 running = node_index < parts->node_count; while (running) { - node = wapp_dbl_list_get(WpStr8, parts, node_index); + node = wpDblListGet(WpStr8, parts, node_index); if (node->size == 0) { goto CPATH_JOIN_LOOP_END; } @@ -46,7 +44,7 @@ u32 wapp_cpath_join_path(WpStr8 *dst, const WpStr8List *parts) { if (dst->size > 0) { char dst_last = wpStr8Get(dst, dst->size - 1); char node_start = wpStr8Get(node, 0); - b8 add_path_sep = dst_last != WAPP_PATH_SEP && node_start != WAPP_PATH_SEP; + b8 add_path_sep = dst_last != WP_PATH_SEP && node_start != WP_PATH_SEP; if (add_path_sep) { wpStr8ConcatCapped(dst, &separator); @@ -60,18 +58,18 @@ CPATH_JOIN_LOOP_END: running = node_index < parts->node_count; } - return CPATH_JOIN_SUCCESS; + return WP_CPATH_JOIN_RESULT_SUCCESS; } -WpStr8 *dirup(const WpAllocator *allocator, WpStr8RO *path, u64 levels) { +WpStr8 *_dirup(const WpAllocator *allocator, WpStr8RO *path, u64 levels) { WpStr8 *output = NULL; if (!allocator || !path) { goto RETURN_DIRUP; } - b8 absolute = wpStr8Get(path, 0) == WAPP_PATH_SEP; + b8 absolute = wpStr8Get(path, 0) == WP_PATH_SEP; WpStr8 separator = wpStr8Buf(4); - wpStr8PushBack(&separator, WAPP_PATH_SEP); + wpStr8PushBack(&separator, WP_PATH_SEP); if (path->size == 0) { output = wpStr8AllocBuf(allocator, 16); @@ -79,7 +77,7 @@ WpStr8 *dirup(const WpAllocator *allocator, WpStr8RO *path, u64 levels) { goto RETURN_DIRUP; } - wpStr8PushBack(output, absolute ? WAPP_PATH_SEP : '.'); + wpStr8PushBack(output, absolute ? WP_PATH_SEP : '.'); goto RETURN_DIRUP; } @@ -88,7 +86,7 @@ WpStr8 *dirup(const WpAllocator *allocator, WpStr8RO *path, u64 levels) { goto RETURN_DIRUP; } - WpAllocator tmp_arena = wapp_mem_arena_allocator_init(MiB(8)); + WpAllocator tmp_arena = wpMemArenaAllocatorInit(MiB(8)); if (wpMemAllocatorInvalid(&tmp_arena)) { goto RETURN_DIRUP; } @@ -104,10 +102,10 @@ WpStr8 *dirup(const WpAllocator *allocator, WpStr8RO *path, u64 levels) { goto LIST_CLEANUP_DIRUP; } - wpStr8PushBack(output, absolute ? WAPP_PATH_SEP : '.'); + wpStr8PushBack(output, absolute ? WP_PATH_SEP : '.'); } else { for (u64 i = 0; i < levels; ++i) { - wapp_dbl_list_pop_back(WpStr8, parts); + wpDblListPopBack(WpStr8, parts); } u64 alignment = sizeof(void *) * 2; @@ -118,7 +116,7 @@ WpStr8 *dirup(const WpAllocator *allocator, WpStr8RO *path, u64 levels) { output = wpStr8AllocBuf(allocator, alloc_size); if (output) { if (absolute) { - wpStr8PushBack(output, WAPP_PATH_SEP); + wpStr8PushBack(output, WP_PATH_SEP); } WpStr8 *joined = wpStr8Join(&tmp_arena, parts, &separator); @@ -129,7 +127,7 @@ WpStr8 *dirup(const WpAllocator *allocator, WpStr8RO *path, u64 levels) { } LIST_CLEANUP_DIRUP: - wapp_mem_arena_allocator_destroy(&tmp_arena); + wpMemArenaAllocatorDestroy(&tmp_arena); RETURN_DIRUP: return output; diff --git a/src/os/cpath/cpath.h b/src/os/cpath/cpath.h index 28783b5..d87506a 100644 --- a/src/os/cpath/cpath.h +++ b/src/os/cpath/cpath.h @@ -14,29 +14,29 @@ BEGIN_C_LINKAGE #ifdef WP_PLATFORM_POSIX #include -#define WAPP_PATH_SEP '/' -#define WAPP_PATH_MAX PATH_MAX +#define WP_PATH_SEP '/' +#define WP_PATH_MAX PATH_MAX #elif defined(WP_PLATFORM_WINDOWS) #define WIN32_LEAN_AND_MEAN #include -#define WAPP_PATH_SEP '\\' -#define WAPP_PATH_MAX MAX_PATH +#define WP_PATH_SEP '\\' +#define WP_PATH_MAX MAX_PATH #else #error "Unrecognised platform" #endif -#define wapp_cpath_dirname(ALLOCATOR, PATH) dirup(ALLOCATOR, PATH, 1) -#define wapp_cpath_dirup(ALLOCATOR, PATH, COUNT) dirup(ALLOCATOR, PATH, COUNT) +#define wpCpathDirname(ALLOCATOR, PATH) _dirup(ALLOCATOR, PATH, 1) +#define wpCpathDirup(ALLOCATOR, PATH, COUNT) _dirup(ALLOCATOR, PATH, COUNT) -enum { - CPATH_JOIN_SUCCESS = 0, - CPATH_JOIN_INVALID_ARGS, - CPATH_JOIN_EMPTY_PARTS, - CPATH_JOIN_INSUFFICIENT_DST_CAPACITY, -}; +typedef enum { + WP_CPATH_JOIN_RESULT_SUCCESS = 0, + WP_CPATH_JOIN_RESULT_INVALID_ARGS, + WP_CPATH_JOIN_RESULT_EMPTY_PARTS, + WP_CPATH_JOIN_RESULT_INSUFFICIENT_DST_CAPACITY, +} WpCpathJoinResult; -u32 wapp_cpath_join_path(WpStr8 *dst, const WpStr8List *parts); -WpStr8 *dirup(const WpAllocator *allocator, WpStr8RO *path, u64 levels); +WpCpathJoinResult wpCpathJoinPath(WpStr8 *dst, const WpStr8List *parts); +WpStr8 *_dirup(const WpAllocator *allocator, WpStr8RO *path, u64 levels); #ifdef WP_PLATFORM_CPP END_C_LINKAGE diff --git a/tests/cpath/test_cpath.c b/tests/cpath/test_cpath.c index f80b00c..16c3dbb 100644 --- a/tests/cpath/test_cpath.c +++ b/tests/cpath/test_cpath.c @@ -13,8 +13,8 @@ WpTestFuncResult test_cpath_join_path(void) { WpStr8 out = wpStr8Buf(MAIN_BUF_SIZE); WpStr8 tmp = wpStr8Buf(TMP_BUF_SIZE); - wpStr8Format(&expected, "%chome%cabdelrahman%cDocuments", WAPP_PATH_SEP, WAPP_PATH_SEP, WAPP_PATH_SEP); - wpStr8Format(&tmp, "%c", WAPP_PATH_SEP); + wpStr8Format(&expected, "%chome%cabdelrahman%cDocuments", WP_PATH_SEP, WP_PATH_SEP, WP_PATH_SEP); + wpStr8Format(&tmp, "%c", WP_PATH_SEP); WpStr8List parts = wpDblList(WpStr8); wpDblListPushBack(WpStr8, &parts, &tmp); @@ -27,7 +27,7 @@ WpTestFuncResult test_cpath_join_path(void) { wpDblListPopFront(WpStr8, &parts); - wpStr8Format(&expected, "home%cabdelrahman%cDocuments", WAPP_PATH_SEP, WAPP_PATH_SEP); + wpStr8Format(&expected, "home%cabdelrahman%cDocuments", WP_PATH_SEP, WP_PATH_SEP); wpCpathJoinPath(&out, &parts); result = result && wpStr8Equal(&out, &expected); @@ -36,27 +36,27 @@ WpTestFuncResult test_cpath_join_path(void) { wpDblListPopFront(WpStr8, &parts); wpDblListPushFront(WpStr8, &parts, &tmp); - wpStr8Format(&expected, "%chome%cabdelrahman%cDocuments", WAPP_PATH_SEP, WAPP_PATH_SEP, WAPP_PATH_SEP); + wpStr8Format(&expected, "%chome%cabdelrahman%cDocuments", WP_PATH_SEP, WP_PATH_SEP, WP_PATH_SEP); wpCpathJoinPath(&out, &parts); result = result && wpStr8Equal(&out, &expected); - wpStr8Format(&tmp, "home%c", WAPP_PATH_SEP); + wpStr8Format(&tmp, "home%c", WP_PATH_SEP); wpDblListPopFront(WpStr8, &parts); wpDblListPushFront(WpStr8, &parts, &wpStr8Lit("home")); - wpStr8Format(&expected, "home%cabdelrahman%cDocuments", WAPP_PATH_SEP, WAPP_PATH_SEP); + wpStr8Format(&expected, "home%cabdelrahman%cDocuments", WP_PATH_SEP, WP_PATH_SEP); wpCpathJoinPath(&out, &parts); result = result && wpStr8Equal(&out, &expected); wpDblListEmpty(WpStr8, &parts); - wpStr8Format(&tmp, "%chome", WAPP_PATH_SEP); + wpStr8Format(&tmp, "%chome", WP_PATH_SEP); wpDblListPushBack(WpStr8, &parts, &tmp); wpDblListPushBack(WpStr8, &parts, &wpStr8Lit("")); - wpStr8Format(&expected, "%chome", WAPP_PATH_SEP); + wpStr8Format(&expected, "%chome", WP_PATH_SEP); wpCpathJoinPath(&out, &parts); result = result && wpStr8Equal(&out, &expected); @@ -93,8 +93,8 @@ WpTestFuncResult test_cpath_dirname(void) { WpStr8 tmp = wpStr8Buf(TMP_BUF_SIZE); // CASE 1 - wpStr8Format(&tmp, "%c", WAPP_PATH_SEP); - wpStr8Format(&expected, "%c", WAPP_PATH_SEP); + wpStr8Format(&tmp, "%c", WP_PATH_SEP); + wpStr8Format(&expected, "%c", WP_PATH_SEP); output = wpCpathDirname(&arena, &tmp); result = output != NULL && wpStr8Equal(output, &expected); @@ -110,15 +110,15 @@ WpTestFuncResult test_cpath_dirname(void) { result = result && output != NULL && wpStr8Equal(output, &expected); // CASE 4 - wpStr8Format(&tmp, "%chome%ctest", WAPP_PATH_SEP, WAPP_PATH_SEP); - wpStr8Format(&expected, "%chome", WAPP_PATH_SEP); + wpStr8Format(&tmp, "%chome%ctest", WP_PATH_SEP, WP_PATH_SEP); + wpStr8Format(&expected, "%chome", WP_PATH_SEP); output = wpCpathDirname(&arena, &tmp); result = result && output != NULL && wpStr8Equal(output, &expected); // CASE 5 - wpStr8Format(&tmp, "%chome%ctest%c", WAPP_PATH_SEP, WAPP_PATH_SEP, WAPP_PATH_SEP); - wpStr8Format(&expected, "%chome", WAPP_PATH_SEP); + wpStr8Format(&tmp, "%chome%ctest%c", WP_PATH_SEP, WP_PATH_SEP, WP_PATH_SEP); + wpStr8Format(&expected, "%chome", WP_PATH_SEP); output = wpCpathDirname(&arena, &tmp); result = result && output != NULL && wpStr8Equal(output, &expected); @@ -141,35 +141,35 @@ WpTestFuncResult test_cpath_dirup(void) { WpStr8 tmp = wpStr8Buf(TMP_BUF_SIZE); // CASE 1 - wpStr8Format(&tmp, "%c", WAPP_PATH_SEP); - wpStr8Format(&expected, "%c", WAPP_PATH_SEP); + wpStr8Format(&tmp, "%c", WP_PATH_SEP); + wpStr8Format(&expected, "%c", WP_PATH_SEP); output = wpCpathDirup(&arena, &tmp, 3); result = output != NULL && wpStr8Equal(output, &expected); // CASE 2 - wpStr8Format(&tmp, "%chome%cabdelrahman%cDocuments", WAPP_PATH_SEP, WAPP_PATH_SEP, WAPP_PATH_SEP); - wpStr8Format(&expected, "%c", WAPP_PATH_SEP); + wpStr8Format(&tmp, "%chome%cabdelrahman%cDocuments", WP_PATH_SEP, WP_PATH_SEP, WP_PATH_SEP); + wpStr8Format(&expected, "%c", WP_PATH_SEP); output = wpCpathDirup(&arena, &tmp, 3); result = result && output != NULL && wpStr8Equal(output, &expected); // CASE 3 - wpStr8Format(&tmp, "home%cabdelrahman%cDocuments", WAPP_PATH_SEP, WAPP_PATH_SEP); + wpStr8Format(&tmp, "home%cabdelrahman%cDocuments", WP_PATH_SEP, WP_PATH_SEP); wpStr8CopyCstrCapped(&expected, "."); output = wpCpathDirup(&arena, &tmp, 3); result = result && output != NULL && wpStr8Equal(output, &expected); // CASE 4 - wpStr8Format(&tmp, "%chome%cabdelrahman%cDocuments", WAPP_PATH_SEP, WAPP_PATH_SEP, WAPP_PATH_SEP); - wpStr8Format(&expected, "%chome", WAPP_PATH_SEP); + wpStr8Format(&tmp, "%chome%cabdelrahman%cDocuments", WP_PATH_SEP, WP_PATH_SEP, WP_PATH_SEP); + wpStr8Format(&expected, "%chome", WP_PATH_SEP); output = wpCpathDirup(&arena, &tmp, 2); result = result && output != NULL && wpStr8Equal(output, &expected); // CASE 5 - wpStr8Format(&tmp, "home%cabdelrahman%cDocuments", WAPP_PATH_SEP, WAPP_PATH_SEP); + wpStr8Format(&tmp, "home%cabdelrahman%cDocuments", WP_PATH_SEP, WP_PATH_SEP); wpStr8CopyCstrCapped(&expected, "home"); output = wpCpathDirup(&arena, &tmp, 2); diff --git a/tests/cpath/test_cpath.cc b/tests/cpath/test_cpath.cc index c906c33..7ec7a30 100644 --- a/tests/cpath/test_cpath.cc +++ b/tests/cpath/test_cpath.cc @@ -13,8 +13,8 @@ WpTestFuncResult test_cpath_join_path(void) { WpStr8 out = wpStr8Buf(MAIN_BUF_SIZE); WpStr8 tmp = wpStr8Buf(TMP_BUF_SIZE); - wpStr8Format(&expected, "%chome%cabdelrahman%cDocuments", WAPP_PATH_SEP, WAPP_PATH_SEP, WAPP_PATH_SEP); - wpStr8Format(&tmp, "%c", WAPP_PATH_SEP); + wpStr8Format(&expected, "%chome%cabdelrahman%cDocuments", WP_PATH_SEP, WP_PATH_SEP, WP_PATH_SEP); + wpStr8Format(&tmp, "%c", WP_PATH_SEP); WpStr8List parts = wpDblList(WpStr8); @@ -34,7 +34,7 @@ WpTestFuncResult test_cpath_join_path(void) { wpDblListPopFront(WpStr8, &parts); - wpStr8Format(&expected, "home%cabdelrahman%cDocuments", WAPP_PATH_SEP, WAPP_PATH_SEP); + wpStr8Format(&expected, "home%cabdelrahman%cDocuments", WP_PATH_SEP, WP_PATH_SEP); wpCpathJoinPath(&out, &parts); result = result && wpStr8Equal(&out, &expected); @@ -45,32 +45,32 @@ WpTestFuncResult test_cpath_join_path(void) { wpDblListPushFront(WpStr8, &parts, &tmp); - wpStr8Format(&expected, "%chome%cabdelrahman%cDocuments", WAPP_PATH_SEP, WAPP_PATH_SEP, WAPP_PATH_SEP); + wpStr8Format(&expected, "%chome%cabdelrahman%cDocuments", WP_PATH_SEP, WP_PATH_SEP, WP_PATH_SEP); wpCpathJoinPath(&out, &parts); result = result && wpStr8Equal(&out, &expected); - wpStr8Format(&tmp, "home%c", WAPP_PATH_SEP); + wpStr8Format(&tmp, "home%c", WP_PATH_SEP); wpDblListPopFront(WpStr8, &parts); WpStr8 home_2 = wpStr8Lit("home"); wpDblListPushFront(WpStr8, &parts, &home_2); - wpStr8Format(&expected, "home%cabdelrahman%cDocuments", WAPP_PATH_SEP, WAPP_PATH_SEP); + wpStr8Format(&expected, "home%cabdelrahman%cDocuments", WP_PATH_SEP, WP_PATH_SEP); wpCpathJoinPath(&out, &parts); result = result && wpStr8Equal(&out, &expected); wpDblListEmpty(WpStr8, &parts); - wpStr8Format(&tmp, "%chome", WAPP_PATH_SEP); + wpStr8Format(&tmp, "%chome", WP_PATH_SEP); wpDblListPushBack(WpStr8, &parts, &tmp); WpStr8 empty = wpStr8Lit(""); wpDblListPushBack(WpStr8, &parts, &empty); - wpStr8Format(&expected, "%chome", WAPP_PATH_SEP); + wpStr8Format(&expected, "%chome", WP_PATH_SEP); wpCpathJoinPath(&out, &parts); result = result && wpStr8Equal(&out, &expected); @@ -111,8 +111,8 @@ WpTestFuncResult test_cpath_dirname(void) { WpStr8 tmp = wpStr8Buf(TMP_BUF_SIZE); // CASE 1 - wpStr8Format(&tmp, "%c", WAPP_PATH_SEP); - wpStr8Format(&expected, "%c", WAPP_PATH_SEP); + wpStr8Format(&tmp, "%c", WP_PATH_SEP); + wpStr8Format(&expected, "%c", WP_PATH_SEP); output = wpCpathDirname(&arena, &tmp); result = output != nullptr && wpStr8Equal(output, &expected); @@ -130,15 +130,15 @@ WpTestFuncResult test_cpath_dirname(void) { result = result && output != nullptr && wpStr8Equal(output, &expected); // CASE 4 - wpStr8Format(&tmp, "%chome%ctest", WAPP_PATH_SEP, WAPP_PATH_SEP); - wpStr8Format(&expected, "%chome", WAPP_PATH_SEP); + wpStr8Format(&tmp, "%chome%ctest", WP_PATH_SEP, WP_PATH_SEP); + wpStr8Format(&expected, "%chome", WP_PATH_SEP); output = wpCpathDirname(&arena, &tmp); result = result && output != nullptr && wpStr8Equal(output, &expected); // CASE 5 - wpStr8Format(&tmp, "%chome%ctest%c", WAPP_PATH_SEP, WAPP_PATH_SEP, WAPP_PATH_SEP); - wpStr8Format(&expected, "%chome", WAPP_PATH_SEP); + wpStr8Format(&tmp, "%chome%ctest%c", WP_PATH_SEP, WP_PATH_SEP, WP_PATH_SEP); + wpStr8Format(&expected, "%chome", WP_PATH_SEP); output = wpCpathDirname(&arena, &tmp); result = result && output != nullptr && wpStr8Equal(output, &expected); @@ -161,35 +161,35 @@ WpTestFuncResult test_cpath_dirup(void) { WpStr8 tmp = wpStr8Buf(TMP_BUF_SIZE); // CASE 1 - wpStr8Format(&tmp, "%c", WAPP_PATH_SEP); - wpStr8Format(&expected, "%c", WAPP_PATH_SEP); + wpStr8Format(&tmp, "%c", WP_PATH_SEP); + wpStr8Format(&expected, "%c", WP_PATH_SEP); output = wpCpathDirup(&arena, &tmp, 3); result = output != nullptr && wpStr8Equal(output, &expected); // CASE 2 - wpStr8Format(&tmp, "%chome%cabdelrahman%cDocuments", WAPP_PATH_SEP, WAPP_PATH_SEP, WAPP_PATH_SEP); - wpStr8Format(&expected, "%c", WAPP_PATH_SEP); + wpStr8Format(&tmp, "%chome%cabdelrahman%cDocuments", WP_PATH_SEP, WP_PATH_SEP, WP_PATH_SEP); + wpStr8Format(&expected, "%c", WP_PATH_SEP); output = wpCpathDirup(&arena, &tmp, 3); result = result && output != nullptr && wpStr8Equal(output, &expected); // CASE 3 - wpStr8Format(&tmp, "home%cabdelrahman%cDocuments", WAPP_PATH_SEP, WAPP_PATH_SEP); + wpStr8Format(&tmp, "home%cabdelrahman%cDocuments", WP_PATH_SEP, WP_PATH_SEP); wpStr8CopyCstrCapped(&expected, "."); output = wpCpathDirup(&arena, &tmp, 3); result = result && output != nullptr && wpStr8Equal(output, &expected); // CASE 4 - wpStr8Format(&tmp, "%chome%cabdelrahman%cDocuments", WAPP_PATH_SEP, WAPP_PATH_SEP, WAPP_PATH_SEP); - wpStr8Format(&expected, "%chome", WAPP_PATH_SEP); + wpStr8Format(&tmp, "%chome%cabdelrahman%cDocuments", WP_PATH_SEP, WP_PATH_SEP, WP_PATH_SEP); + wpStr8Format(&expected, "%chome", WP_PATH_SEP); output = wpCpathDirup(&arena, &tmp, 2); result = result && output != nullptr && wpStr8Equal(output, &expected); // CASE 5 - wpStr8Format(&tmp, "home%cabdelrahman%cDocuments", WAPP_PATH_SEP, WAPP_PATH_SEP); + wpStr8Format(&tmp, "home%cabdelrahman%cDocuments", WP_PATH_SEP, WP_PATH_SEP); wpStr8CopyCstrCapped(&expected, "home"); output = wpCpathDirup(&arena, &tmp, 2);