diff --git a/src/fs/CheckFile.cxx b/src/fs/CheckFile.cxx index 3f44e8397..bd1798094 100644 --- a/src/fs/CheckFile.cxx +++ b/src/fs/CheckFile.cxx @@ -47,7 +47,8 @@ CheckDirectoryReadable(Path path_fs) } #ifndef WIN32 - const auto x = AllocatedPath::Build(path_fs, "."); + const auto x = AllocatedPath::Build(path_fs, + PathTraitsFS::CURRENT_DIRECTORY); if (!StatFile(x, st) && errno == EACCES) FormatError(config_domain, "No permission to traverse (\"execute\") directory: %s", diff --git a/src/fs/Traits.cxx b/src/fs/Traits.cxx index 4c8d7012c..225a6ee71 100644 --- a/src/fs/Traits.cxx +++ b/src/fs/Traits.cxx @@ -74,7 +74,7 @@ GetParentPathImpl(typename Traits::const_pointer p) typename Traits::const_pointer sep = Traits::FindLastSeparator(p); if (sep == nullptr) - return typename Traits::string("."); + return typename Traits::string(Traits::CURRENT_DIRECTORY); if (sep == p) return typename Traits::string(p, p + 1); #ifdef WIN32 diff --git a/src/fs/Traits.hxx b/src/fs/Traits.hxx index 1b5e1e6f8..f00765570 100644 --- a/src/fs/Traits.hxx +++ b/src/fs/Traits.hxx @@ -47,6 +47,8 @@ struct PathTraitsFS { static constexpr value_type SEPARATOR = '/'; #endif + static constexpr const_pointer CURRENT_DIRECTORY = "."; + static constexpr bool IsSeparator(value_type ch) { return #ifdef WIN32 @@ -149,6 +151,8 @@ struct PathTraitsUTF8 { static constexpr value_type SEPARATOR = '/'; + static constexpr const_pointer CURRENT_DIRECTORY = "."; + static constexpr bool IsSeparator(value_type ch) { return ch == SEPARATOR; }