fs/AllocatedPath: pass std::string_view to FromUTF8()
This commit is contained in:
parent
56b4b010d6
commit
7a58b8c3e8
@ -119,7 +119,7 @@ map_spl_utf8_to_fs(const char *name) noexcept
|
|||||||
filename_utf8.append(PLAYLIST_FILE_SUFFIX);
|
filename_utf8.append(PLAYLIST_FILE_SUFFIX);
|
||||||
|
|
||||||
const auto filename_fs =
|
const auto filename_fs =
|
||||||
AllocatedPath::FromUTF8(filename_utf8.c_str());
|
AllocatedPath::FromUTF8(filename_utf8);
|
||||||
if (filename_fs.IsNull())
|
if (filename_fs.IsNull())
|
||||||
return nullptr;
|
return nullptr;
|
||||||
|
|
||||||
|
@ -436,7 +436,7 @@ SimpleDatabase::Mount(const char *local_uri, const char *storage_uri)
|
|||||||
std::string name(storage_uri);
|
std::string name(storage_uri);
|
||||||
std::replace_if(name.begin(), name.end(), IsUnsafeChar, '_');
|
std::replace_if(name.begin(), name.end(), IsUnsafeChar, '_');
|
||||||
|
|
||||||
const auto name_fs = AllocatedPath::FromUTF8Throw(name.c_str());
|
const auto name_fs = AllocatedPath::FromUTF8Throw(name);
|
||||||
|
|
||||||
#ifndef ENABLE_ZLIB
|
#ifndef ENABLE_ZLIB
|
||||||
constexpr bool compress = false;
|
constexpr bool compress = false;
|
||||||
|
@ -81,7 +81,7 @@ UpdateWalk::RemoveExcludedFromDirectory(Directory &directory,
|
|||||||
directory.ForEachSongSafe([&](Song &song){
|
directory.ForEachSongSafe([&](Song &song){
|
||||||
assert(&song.parent == &directory);
|
assert(&song.parent == &directory);
|
||||||
|
|
||||||
const auto name_fs = AllocatedPath::FromUTF8(song.filename.c_str());
|
const auto name_fs = AllocatedPath::FromUTF8(song.filename);
|
||||||
if (name_fs.IsNull() || exclude_list.Check(name_fs)) {
|
if (name_fs.IsNull() || exclude_list.Check(name_fs)) {
|
||||||
editor.DeleteSong(directory, &song);
|
editor.DeleteSong(directory, &song);
|
||||||
modified = true;
|
modified = true;
|
||||||
|
@ -25,7 +25,7 @@
|
|||||||
AllocatedPath::~AllocatedPath() noexcept = default;
|
AllocatedPath::~AllocatedPath() noexcept = default;
|
||||||
|
|
||||||
AllocatedPath
|
AllocatedPath
|
||||||
AllocatedPath::FromUTF8(const char *path_utf8) noexcept
|
AllocatedPath::FromUTF8(std::string_view path_utf8) noexcept
|
||||||
{
|
{
|
||||||
#ifdef FS_CHARSET_ALWAYS_UTF8
|
#ifdef FS_CHARSET_ALWAYS_UTF8
|
||||||
return FromFS(path_utf8);
|
return FromFS(path_utf8);
|
||||||
@ -39,7 +39,7 @@ AllocatedPath::FromUTF8(const char *path_utf8) noexcept
|
|||||||
}
|
}
|
||||||
|
|
||||||
AllocatedPath
|
AllocatedPath
|
||||||
AllocatedPath::FromUTF8Throw(const char *path_utf8)
|
AllocatedPath::FromUTF8Throw(std::string_view path_utf8)
|
||||||
{
|
{
|
||||||
#ifdef FS_CHARSET_ALWAYS_UTF8
|
#ifdef FS_CHARSET_ALWAYS_UTF8
|
||||||
return FromFS(path_utf8);
|
return FromFS(path_utf8);
|
||||||
|
@ -173,15 +173,18 @@ public:
|
|||||||
* Convert a UTF-8 C string to an #AllocatedPath instance.
|
* Convert a UTF-8 C string to an #AllocatedPath instance.
|
||||||
* Returns return a "nulled" instance on error.
|
* Returns return a "nulled" instance on error.
|
||||||
*/
|
*/
|
||||||
gcc_pure gcc_nonnull_all
|
gcc_pure
|
||||||
static AllocatedPath FromUTF8(const char *path_utf8) noexcept;
|
static AllocatedPath FromUTF8(std::string_view path_utf8) noexcept;
|
||||||
|
|
||||||
|
static AllocatedPath FromUTF8(const char *path_utf8) noexcept {
|
||||||
|
return FromUTF8(std::string_view(path_utf8));
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Convert a UTF-8 C string to an #AllocatedPath instance.
|
* Convert a UTF-8 C string to an #AllocatedPath instance.
|
||||||
* Throws a std::runtime_error on error.
|
* Throws a std::runtime_error on error.
|
||||||
*/
|
*/
|
||||||
gcc_nonnull_all
|
static AllocatedPath FromUTF8Throw(std::string_view path_utf8);
|
||||||
static AllocatedPath FromUTF8Throw(const char *path_utf8);
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Copy an #AllocatedPath object.
|
* Copy an #AllocatedPath object.
|
||||||
|
@ -118,19 +118,14 @@ PathToUTF8(PathTraitsFS::const_pointer path_fs)
|
|||||||
#if defined(HAVE_FS_CHARSET) || defined(_WIN32)
|
#if defined(HAVE_FS_CHARSET) || defined(_WIN32)
|
||||||
|
|
||||||
PathTraitsFS::string
|
PathTraitsFS::string
|
||||||
PathFromUTF8(PathTraitsUTF8::const_pointer path_utf8)
|
PathFromUTF8(PathTraitsUTF8::string_view path_utf8)
|
||||||
{
|
{
|
||||||
#if !CLANG_CHECK_VERSION(3,6)
|
|
||||||
/* disabled on clang due to -Wtautological-pointer-compare */
|
|
||||||
assert(path_utf8 != nullptr);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef _WIN32
|
#ifdef _WIN32
|
||||||
const auto buffer = MultiByteToWideChar(CP_UTF8, path_utf8);
|
const auto buffer = MultiByteToWideChar(CP_UTF8, path_utf8);
|
||||||
return PathTraitsFS::string(buffer);
|
return PathTraitsFS::string(buffer);
|
||||||
#else
|
#else
|
||||||
if (fs_converter == nullptr)
|
if (fs_converter == nullptr)
|
||||||
return path_utf8;
|
return PathTraitsFS::string(path_utf8);
|
||||||
|
|
||||||
const auto buffer = fs_converter->FromUTF8(path_utf8);
|
const auto buffer = fs_converter->FromUTF8(path_utf8);
|
||||||
return PathTraitsFS::string(buffer);
|
return PathTraitsFS::string(buffer);
|
||||||
|
@ -53,8 +53,7 @@ PathToUTF8(PathTraitsFS::const_pointer path_fs);
|
|||||||
*
|
*
|
||||||
* Throws std::runtime_error on error.
|
* Throws std::runtime_error on error.
|
||||||
*/
|
*/
|
||||||
gcc_nonnull_all
|
|
||||||
PathTraitsFS::string
|
PathTraitsFS::string
|
||||||
PathFromUTF8(PathTraitsUTF8::const_pointer path_utf8);
|
PathFromUTF8(PathTraitsUTF8::string_view path_utf8);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
@ -228,7 +228,7 @@ UriToNfsPath(const char *_uri_utf8)
|
|||||||
/* assume UTF-8 when accessing NFS from Windows */
|
/* assume UTF-8 when accessing NFS from Windows */
|
||||||
return uri_utf8;
|
return uri_utf8;
|
||||||
#else
|
#else
|
||||||
return AllocatedPath::FromUTF8Throw(uri_utf8.c_str()).Steal();
|
return AllocatedPath::FromUTF8Throw(uri_utf8).Steal();
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user