fs/{Allocated,}Path,Charset: use PathTraitsFS typedefs
This commit is contained in:
parent
4c899e9c5a
commit
eb174d5ba3
|
@ -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;
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
||||
|
|
|
@ -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 */
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Reference in New Issue