diff options
-rw-r--r-- | src/fs/AllocatedPath.cxx | 2 | ||||
-rw-r--r-- | src/fs/AllocatedPath.hxx | 2 | ||||
-rw-r--r-- | src/fs/Charset.cxx | 15 | ||||
-rw-r--r-- | src/fs/Charset.hxx | 11 | ||||
-rw-r--r-- | src/fs/Path.hxx | 6 | ||||
-rw-r--r-- | src/fs/StandardDirectory.cxx | 4 |
6 files changed, 19 insertions, 21 deletions
diff --git a/src/fs/AllocatedPath.cxx b/src/fs/AllocatedPath.cxx index 45447de69..2d51b6285 100644 --- a/src/fs/AllocatedPath.cxx +++ b/src/fs/AllocatedPath.cxx @@ -87,7 +87,7 @@ void AllocatedPath::ChopSeparators() { size_t l = length(); - const char *p = data(); + const auto *p = data(); while (l >= 2 && PathTraitsFS::IsSeparator(p[l - 1])) { --l; diff --git a/src/fs/AllocatedPath.hxx b/src/fs/AllocatedPath.hxx index 7195a3345..9ec7be6b0 100644 --- a/src/fs/AllocatedPath.hxx +++ b/src/fs/AllocatedPath.hxx @@ -176,7 +176,7 @@ public: * Allows the caller to "steal" the internal value by * providing a rvalue reference to the std::string attribute. */ - std::string &&Steal() { + string &&Steal() { return std::move(value); } diff --git a/src/fs/Charset.cxx b/src/fs/Charset.cxx index ae495b6ae..bc6357297 100644 --- a/src/fs/Charset.cxx +++ b/src/fs/Charset.cxx @@ -22,7 +22,6 @@ #include "Domain.hxx" #include "Limits.hxx" #include "Log.hxx" -#include "Traits.hxx" #include "lib/icu/Converter.hxx" #include "util/Error.hxx" @@ -73,13 +72,13 @@ GetFSCharset() #endif } -static inline std::string && -FixSeparators(std::string &&s) +static inline PathTraitsUTF8::string && +FixSeparators(PathTraitsUTF8::string &&s) { // For whatever reason GCC can't convert constexpr to value reference. // This leads to link errors when passing separators directly. - auto from = PathTraitsFS::SEPARATOR; auto to = PathTraitsUTF8::SEPARATOR; + decltype(to) from = PathTraitsFS::SEPARATOR; if (from != to) /* convert backslash to slash on WIN32 */ @@ -88,8 +87,8 @@ FixSeparators(std::string &&s) return std::move(s); } -std::string -PathToUTF8(const char *path_fs) +PathTraitsUTF8::string +PathToUTF8(PathTraitsFS::const_pointer path_fs) { #if !CLANG_CHECK_VERSION(3,6) /* disabled on clang due to -Wtautological-pointer-compare */ @@ -108,8 +107,8 @@ PathToUTF8(const char *path_fs) #ifdef HAVE_FS_CHARSET -std::string -PathFromUTF8(const char *path_utf8) +PathTraitsFS::string +PathFromUTF8(PathTraitsUTF8::const_pointer path_utf8) { #if !CLANG_CHECK_VERSION(3,6) /* disabled on clang due to -Wtautological-pointer-compare */ diff --git a/src/fs/Charset.hxx b/src/fs/Charset.hxx index dd5ca168a..49ad07820 100644 --- a/src/fs/Charset.hxx +++ b/src/fs/Charset.hxx @@ -22,8 +22,7 @@ #include "check.h" #include "Compiler.h" - -#include <string> +#include "Traits.hxx" #if defined(HAVE_ICU) || defined(HAVE_GLIB) #define HAVE_FS_CHARSET @@ -49,15 +48,15 @@ DeinitFSCharset(); * Returns empty string on error. */ gcc_pure gcc_nonnull_all -std::string -PathToUTF8(const char *path_fs); +PathTraitsUTF8::string +PathToUTF8(PathTraitsFS::const_pointer path_fs); /** * Convert the path from UTF-8. * Returns empty string on error. */ gcc_pure gcc_nonnull_all -std::string -PathFromUTF8(const char *path_utf8); +PathTraitsFS::string +PathFromUTF8(PathTraitsUTF8::const_pointer path_utf8); #endif diff --git a/src/fs/Path.hxx b/src/fs/Path.hxx index f9cc9839b..586224eaf 100644 --- a/src/fs/Path.hxx +++ b/src/fs/Path.hxx @@ -42,7 +42,7 @@ class Path { typedef PathTraitsFS::pointer pointer; typedef PathTraitsFS::const_pointer const_pointer; - const char *value; + const_pointer value; constexpr Path(const_pointer _value):value(_value) {} @@ -100,7 +100,7 @@ public: size_t length() const { assert(value != nullptr); - return strlen(value); + return PathTraitsFS::GetLength(value); } /** @@ -153,7 +153,7 @@ public: * nullptr on mismatch. */ gcc_pure - const char *RelativeFS(const char *other_fs) const { + const_pointer RelativeFS(const_pointer other_fs) const { return PathTraitsFS::Relative(value, other_fs); } diff --git a/src/fs/StandardDirectory.cxx b/src/fs/StandardDirectory.cxx index 1fc76ce9f..38ea804a0 100644 --- a/src/fs/StandardDirectory.cxx +++ b/src/fs/StandardDirectory.cxx @@ -112,7 +112,7 @@ static inline AllocatedPath SafePathFromFS(PathTraitsFS::const_pointer dir) #ifdef WIN32 static AllocatedPath GetStandardDir(int folder_id) { - std::array<char, MAX_PATH> dir; + std::array<PathTraitsFS::value_type, MAX_PATH> dir; auto ret = SHGetFolderPath(nullptr, folder_id | CSIDL_FLAG_DONT_VERIFY, nullptr, SHGFP_TYPE_CURRENT, dir.data()); if (FAILED(ret)) @@ -287,7 +287,7 @@ AllocatedPath GetSystemConfigDir() AllocatedPath GetAppBaseDir() { - std::array<char, MAX_PATH> app; + std::array<PathTraitsFS::value_type, MAX_PATH> app; auto ret = GetModuleFileName(nullptr, app.data(), app.size()); // Check for error |