Commit 7a98a784 authored by Max Kellermann's avatar Max Kellermann

fs/Features: add macro FS_CHARSET_ALWAYS_UTF8

parent 162845cc
...@@ -32,24 +32,24 @@ AllocatedPath::~AllocatedPath() noexcept = default; ...@@ -32,24 +32,24 @@ AllocatedPath::~AllocatedPath() noexcept = default;
AllocatedPath AllocatedPath
AllocatedPath::FromUTF8(const char *path_utf8) noexcept AllocatedPath::FromUTF8(const char *path_utf8) noexcept
{ {
#if defined(HAVE_FS_CHARSET) || defined(_WIN32) #ifdef FS_CHARSET_ALWAYS_UTF8
return FromFS(path_utf8);
#else
try { try {
return AllocatedPath(::PathFromUTF8(path_utf8)); return AllocatedPath(::PathFromUTF8(path_utf8));
} catch (...) { } catch (...) {
return nullptr; return nullptr;
} }
#else
return FromFS(path_utf8);
#endif #endif
} }
AllocatedPath AllocatedPath
AllocatedPath::FromUTF8Throw(const char *path_utf8) AllocatedPath::FromUTF8Throw(const char *path_utf8)
{ {
#if defined(HAVE_FS_CHARSET) || defined(_WIN32) #ifdef FS_CHARSET_ALWAYS_UTF8
return AllocatedPath(::PathFromUTF8(path_utf8));
#else
return FromFS(path_utf8); return FromFS(path_utf8);
#else
return AllocatedPath(::PathFromUTF8(path_utf8));
#endif #endif
} }
......
...@@ -26,4 +26,11 @@ ...@@ -26,4 +26,11 @@
#define HAVE_FS_CHARSET #define HAVE_FS_CHARSET
#endif #endif
#if !defined(HAVE_FS_CHARSET) && !defined(_WIN32)
/**
* Is the filesystem character set hard-coded to UTF-8?
*/
#define FS_CHARSET_ALWAYS_UTF8
#endif
#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