summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/fs/AllocatedPath.cxx2
-rw-r--r--src/fs/AllocatedPath.hxx2
-rw-r--r--src/fs/Charset.cxx15
-rw-r--r--src/fs/Charset.hxx11
-rw-r--r--src/fs/Path.hxx6
-rw-r--r--src/fs/StandardDirectory.cxx4
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