[libcxx-commits] [libcxx] [libc++] Fix different slashes confuses lexically_proximate and lexically_relative (PR #99780)
via libcxx-commits
libcxx-commits at lists.llvm.org
Sun Jul 21 22:23:42 PDT 2024
https://github.com/RichardLuo0 updated https://github.com/llvm/llvm-project/pull/99780
>From 9774e7e97eb01e8b33c1820e9daec3b1fd64dce5 Mon Sep 17 00:00:00 2001
From: RichardLuo <22096448+RichardLuo0 at users.noreply.github.com>
Date: Mon, 22 Jul 2024 13:12:33 +0800
Subject: [PATCH] [libc++] fix the state when its in root dir in
lexically_relative
---
libcxx/src/filesystem/path.cpp | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/libcxx/src/filesystem/path.cpp b/libcxx/src/filesystem/path.cpp
index b2019521377ed..eefd8b22dfd69 100644
--- a/libcxx/src/filesystem/path.cpp
+++ b/libcxx/src/filesystem/path.cpp
@@ -267,7 +267,7 @@ path path::lexically_relative(const path& base) const {
// Find the first mismatching element
auto PP = PathParser::CreateBegin(__pn_);
auto PPBase = PathParser::CreateBegin(base.__pn_);
- while (PP && PPBase && PP.State_ == PPBase.State_ && *PP == *PPBase) {
+ while (PP && PPBase && PP.State_ == PPBase.State_ && (*PP == *PPBase || PP.inRootDir())) {
++PP;
++PPBase;
}
More information about the libcxx-commits
mailing list