Commit 403bd77e authored by Denis Krjuchkov's avatar Denis Krjuchkov

fs/Traits: improve compatibility between PathTraitsFS and PathTraitsUTF8

parent b397c461
...@@ -47,8 +47,8 @@ PathTraitsFS::Build(PathTraitsFS::const_pointer a, size_t a_size, ...@@ -47,8 +47,8 @@ PathTraitsFS::Build(PathTraitsFS::const_pointer a, size_t a_size,
return result; return result;
} }
const char * PathTraitsUTF8::const_pointer
PathTraitsUTF8::GetBase(const char *p) PathTraitsUTF8::GetBase(PathTraitsUTF8::const_pointer p)
{ {
assert(p != nullptr); assert(p != nullptr);
...@@ -58,8 +58,8 @@ PathTraitsUTF8::GetBase(const char *p) ...@@ -58,8 +58,8 @@ PathTraitsUTF8::GetBase(const char *p)
: p; : p;
} }
std::string PathTraitsUTF8::string
PathTraitsUTF8::GetParent(const char *p) PathTraitsUTF8::GetParent(PathTraitsUTF8::const_pointer p)
{ {
assert(p != nullptr); assert(p != nullptr);
......
...@@ -85,14 +85,19 @@ struct PathTraitsFS { ...@@ -85,14 +85,19 @@ struct PathTraitsFS {
* This class describes the nature of a MPD internal filesystem path. * This class describes the nature of a MPD internal filesystem path.
*/ */
struct PathTraitsUTF8 { struct PathTraitsUTF8 {
static constexpr char SEPARATOR = '/'; typedef std::string string;
typedef char value_type;
typedef char *pointer;
typedef const char *const_pointer;
static constexpr bool IsSeparator(char ch) { static constexpr value_type SEPARATOR = '/';
static constexpr bool IsSeparator(value_type ch) {
return ch == SEPARATOR; return ch == SEPARATOR;
} }
gcc_pure gcc_nonnull_all gcc_pure gcc_nonnull_all
static bool IsAbsolute(const char *p) { static bool IsAbsolute(const_pointer p) {
assert(p != nullptr); assert(p != nullptr);
#ifdef WIN32 #ifdef WIN32
if (IsAlphaASCII(p[0]) && p[1] == ':' && IsSeparator(p[2])) if (IsAlphaASCII(p[0]) && p[1] == ':' && IsSeparator(p[2]))
...@@ -106,7 +111,7 @@ struct PathTraitsUTF8 { ...@@ -106,7 +111,7 @@ struct PathTraitsUTF8 {
* The return value points inside the given string. * The return value points inside the given string.
*/ */
gcc_pure gcc_nonnull_all gcc_pure gcc_nonnull_all
static const char *GetBase(const char *p); static const_pointer GetBase(const_pointer p);
/** /**
* Determine the "parent" file name of the given UTF-8 path. * Determine the "parent" file name of the given UTF-8 path.
...@@ -114,7 +119,7 @@ struct PathTraitsUTF8 { ...@@ -114,7 +119,7 @@ struct PathTraitsUTF8 {
* separator in the given input string. * separator in the given input string.
*/ */
gcc_pure gcc_nonnull_all gcc_pure gcc_nonnull_all
static std::string GetParent(const char *p); static string GetParent(const_pointer p);
}; };
#endif #endif
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment