mirror of
https://git.mirrors.martin98.com/https://github.com/gulrak/filesystem
synced 2025-06-04 11:13:58 +08:00
Fix lexically_relative return when base path evaluates to *this
This commit is contained in:
parent
2fc4b46375
commit
768b5cb11b
@ -3306,6 +3306,9 @@ GHC_INLINE path path::lexically_relative(const path& base) const
|
|||||||
--count;
|
--count;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if (count == 0 && (a == end() || empty())) {
|
||||||
|
return path(".");
|
||||||
|
}
|
||||||
if (count < 0) {
|
if (count < 0) {
|
||||||
return path();
|
return path();
|
||||||
}
|
}
|
||||||
|
@ -965,6 +965,9 @@ TEST_CASE("fs.path.gen - path generation", "[filesystem][path][fs.path.gen]")
|
|||||||
// lexically_relative()
|
// lexically_relative()
|
||||||
CHECK(fs::path("/a/d").lexically_relative("/a/b/c") == "../../d");
|
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/d") == "../b/c");
|
||||||
|
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");
|
CHECK(fs::path("a/b/c").lexically_relative("a") == "b/c");
|
||||||
CHECK(fs::path("a/b/c").lexically_relative("a/b/c/x/y") == "../..");
|
CHECK(fs::path("a/b/c").lexically_relative("a/b/c/x/y") == "../..");
|
||||||
CHECK(fs::path("a/b/c").lexically_relative("a/b/c") == ".");
|
CHECK(fs::path("a/b/c").lexically_relative("a/b/c") == ".");
|
||||||
|
Loading…
x
Reference in New Issue
Block a user