diff --git a/include/ghc/filesystem.hpp b/include/ghc/filesystem.hpp index 5384e7b..1770d73 100644 --- a/include/ghc/filesystem.hpp +++ b/include/ghc/filesystem.hpp @@ -3306,7 +3306,7 @@ GHC_INLINE path path::lexically_relative(const path& base) const --count; } } - if (count == 0 && (a == end() || empty())) { + if (count == 0 && (a == end() || a->empty())) { return path("."); } if (count < 0) { diff --git a/test/filesystem_test.cpp b/test/filesystem_test.cpp index d8cc024..0be179f 100644 --- a/test/filesystem_test.cpp +++ b/test/filesystem_test.cpp @@ -966,6 +966,7 @@ TEST_CASE("fs.path.gen - path generation", "[filesystem][path][fs.path.gen]") CHECK(fs::path("/a/d").lexically_relative("/a/b/c") == "../../d"); CHECK(fs::path("/a/b/c").lexically_relative("/a/d") == "../b/c"); CHECK(fs::path("/a/b/c").lexically_relative("/a/b/c/d/..") == "."); + CHECK(fs::path("/a/b/c/").lexically_relative("/a/b/c/d/..") == "."); CHECK(fs::path("").lexically_relative("/a/..") == ""); CHECK(fs::path("").lexically_relative("a/..") == "."); CHECK(fs::path("a/b/c").lexically_relative("a") == "b/c");