#ifndef PATH_UTILS_H #define PATH_UTILS_H #include "aliases.h" #ifdef __cplusplus extern "C" { #endif // __cplusplus #define NUMPARTS(...) \ (sizeof((const char *[]){"", __VA_ARGS__}) / sizeof(const char *) - 1) #define wapp_cpath_join_path(DST, ...) \ join_path(DST, NUMPARTS(__VA_ARGS__), __VA_ARGS__) #define wapp_cpath_dirname(DST, PATH) dirup(DST, 1, PATH) #define wapp_cpath_dirup(DST, COUNT, PATH) dirup(DST, COUNT, PATH) void join_path(char *dst, u64 count, ...); void dirup(char *dst, u64 levels, const char *path); #ifdef __cplusplus } #endif // __cplusplus #endif // !PATH_UTILS_H