diff options
Diffstat (limited to 'src/common')
| -rw-r--r-- | src/common/file_util.cpp | 8 | ||||
| -rw-r--r-- | src/common/file_util.h | 7 |
2 files changed, 9 insertions, 6 deletions
diff --git a/src/common/file_util.cpp b/src/common/file_util.cpp index 190cac6d9..3ce590062 100644 --- a/src/common/file_util.cpp +++ b/src/common/file_util.cpp | |||
| @@ -884,12 +884,12 @@ std::string_view RemoveTrailingSlash(std::string_view path) { | |||
| 884 | return path; | 884 | return path; |
| 885 | } | 885 | } |
| 886 | 886 | ||
| 887 | std::string SanitizePath(std::string_view path_, bool with_platform_slashes) { | 887 | std::string SanitizePath(std::string_view path_, DirectorySeparator directory_separator) { |
| 888 | std::string path(path_); | 888 | std::string path(path_); |
| 889 | char type1 = '\\'; | 889 | char type1 = directory_separator == DirectorySeparator::BackwardSlash ? '/' : '\\'; |
| 890 | char type2 = '/'; | 890 | char type2 = directory_separator == DirectorySeparator::BackwardSlash ? '\\' : '/'; |
| 891 | 891 | ||
| 892 | if (with_platform_slashes) { | 892 | if (directory_separator == DirectorySeparator::PlatformDefault) { |
| 893 | #ifdef _WIN32 | 893 | #ifdef _WIN32 |
| 894 | type1 = '/'; | 894 | type1 = '/'; |
| 895 | type2 = '\\'; | 895 | type2 = '\\'; |
diff --git a/src/common/file_util.h b/src/common/file_util.h index ca63d7466..2711872ae 100644 --- a/src/common/file_util.h +++ b/src/common/file_util.h | |||
| @@ -182,9 +182,12 @@ std::vector<T> SliceVector(const std::vector<T>& vector, size_t first, size_t la | |||
| 182 | return std::vector<T>(vector.begin() + first, vector.begin() + first + last); | 182 | return std::vector<T>(vector.begin() + first, vector.begin() + first + last); |
| 183 | } | 183 | } |
| 184 | 184 | ||
| 185 | enum class DirectorySeparator { ForwardSlash, BackwardSlash, PlatformDefault }; | ||
| 186 | |||
| 185 | // Removes trailing slash, makes all '\\' into '/', and removes duplicate '/'. Makes '/' into '\\' | 187 | // Removes trailing slash, makes all '\\' into '/', and removes duplicate '/'. Makes '/' into '\\' |
| 186 | // if windows and with_platform_slashes is true. | 188 | // depending if directory_separator is BackwardSlash or PlatformDefault and running on windows |
| 187 | std::string SanitizePath(std::string_view path, bool with_platform_slashes = false); | 189 | std::string SanitizePath(std::string_view path, |
| 190 | DirectorySeparator directory_separator = DirectorySeparator::ForwardSlash); | ||
| 188 | 191 | ||
| 189 | // simple wrapper for cstdlib file functions to | 192 | // simple wrapper for cstdlib file functions to |
| 190 | // hopefully will make error checking easier | 193 | // hopefully will make error checking easier |