diff --git a/source/lib/path_util.cpp b/source/lib/path_util.cpp index 6ea3b08319..58c44c4327 100644 --- a/source/lib/path_util.cpp +++ b/source/lib/path_util.cpp @@ -43,7 +43,7 @@ AT_STARTUP(\ static inline bool is_dir_sep(char c) { - // note: ideally path strings would only contain '/' or even DIR_SEP. + // note: ideally path strings would only contain '/' or even SYS_DIR_SEP. // however, windows-specific code (e.g. the sound driver detection) // uses these routines with '\\' strings. converting them all to // '/' and then back before passing to WinAPI would be annoying. @@ -241,14 +241,14 @@ LibError path_replace(char* dst, const char* src, const char* remove, const char // characters up to the last dir separator, if any). const char* path_name_only(const char* path) { - const char* portable_slash = strrchr(path, '/'); - const char* platform_slash = strrchr(path, DIR_SEP); + const char* slash1 = strrchr(path, '/'); + const char* slash2 = strrchr(path, '\\'); // neither present, it's a filename only - if(!portable_slash && !platform_slash) + if(!slash1 && !slash2) return path; // return name, i.e. component after the last portable or platform slash - return MAX(portable_slash, platform_slash)+1; + return MAX(slash1, slash2)+1; } @@ -258,7 +258,7 @@ const char* path_name_only(const char* path) const char* path_last_component(const char* path) { // ('\0' is end of set string) - static const char separators[3] = { DIR_SEP, '/', '\0' }; + static const char separators[3] = { '/', '\\', '\0' }; const char* pos = path; const char* last_component = path; @@ -334,9 +334,9 @@ LibError path_foreach_component(const char* path_org, PathComponentCb cb, void* // find end of cur_component char* slash = (char*)strchr(cur_component, '/'); - // .. try platform-specific separator + // .. try other separator if(!slash) - slash = (char*)strchr(cur_component, DIR_SEP); + slash = (char*)strchr(cur_component, '\\'); // decide its type and 0-terminate // .. filename (by definition) @@ -382,7 +382,7 @@ LibError path_foreach_component(const char* path_org, PathComponentCb cb, void* // does not care if paths are relative/portable/absolute. LibError path_package_set_dir(PathPackage* pp, const char* dir) { - // -1 allows for trailing DIR_SEP that will be added if not + // -1 allows for trailing '/' that will be added if not // already present. if(strcpy_s(pp->path, ARRAY_SIZE(pp->path)-1, dir) != 0) WARN_RETURN(ERR::PATH_LENGTH); diff --git a/source/lib/path_util.h b/source/lib/path_util.h index a869efd735..f07f7c9508 100644 --- a/source/lib/path_util.h +++ b/source/lib/path_util.h @@ -28,7 +28,7 @@ // must hold at least that much. // - unless otherwise mentioned, all functions are intended to work with // native and portable and VFS paths. -// when reading, both '/' and DIR_SEP are accepted; '/' is written. +// when reading, both '/' and SYS_DIR_SEP are accepted; '/' is written. #ifndef PATH_UTIL_H__ #define PATH_UTIL_H__ diff --git a/source/lib/res/file/path.cpp b/source/lib/res/file/path.cpp index b8ea326605..21ef4f9bca 100644 --- a/source/lib/res/file/path.cpp +++ b/source/lib/res/file/path.cpp @@ -58,14 +58,14 @@ enum Conversion static LibError convert_path(char* dst, const char* src, Conversion conv = TO_NATIVE) { - // DIR_SEP is assumed to be a single character! + // SYS_DIR_SEP is assumed to be a single character! const char* s = src; char* d = dst; - char from = DIR_SEP, to = '/'; + char from = SYS_DIR_SEP, to = '/'; if(conv == TO_NATIVE) - from = '/', to = DIR_SEP; + from = '/', to = SYS_DIR_SEP; size_t len = 0; @@ -190,10 +190,10 @@ LibError file_set_root_dir(const char* argv0, const char* rel_path) if(!realpath(n_path, n_root_dir)) return LibError_from_errno(); - // .. append DIR_SEP to simplify code that uses n_root_dir - n_root_dir_len = strlen(n_root_dir)+1; // +1 for trailing DIR_SEP + // .. append SYS_DIR_SEP to simplify code that uses n_root_dir + n_root_dir_len = strlen(n_root_dir)+1; // +1 for trailing SYS_DIR_SEP debug_assert((n_root_dir_len+1) < sizeof(n_root_dir)); // Just checking - n_root_dir[n_root_dir_len-1] = DIR_SEP; + n_root_dir[n_root_dir_len-1] = SYS_DIR_SEP; // You might think that n_root_dir is already 0-terminated, since it's // static - but that might not be true after calling file_reset_root_dir! n_root_dir[n_root_dir_len] = 0; diff --git a/source/lib/sysdep/sysdep.h b/source/lib/sysdep/sysdep.h index c22e7b753a..d8c8abc1bd 100644 --- a/source/lib/sysdep/sysdep.h +++ b/source/lib/sysdep/sysdep.h @@ -335,9 +335,9 @@ extern i64 i64_from_double(double); extern size_t sys_max_sector_size(); #if OS_WIN -#define DIR_SEP '\\' +# define SYS_DIR_SEP '\\' #else -#define DIR_SEP '/' +# define SYS_DIR_SEP '/' #endif // tell the compiler that the code at/following this macro invocation is