https://github.com/Maddobun updated https://github.com/llvm/llvm-project/pull/70798
>From 0572afa42e4e6ca1d1de0e9df045828552cb4480 Mon Sep 17 00:00:00 2001 From: Leo Zhu <yifu....@microchip.com> Date: Wed, 8 Nov 2023 11:10:13 -0500 Subject: [PATCH 1/3] Convert URI to uppercase drive letter during parsing --- clang-tools-extra/clangd/URI.cpp | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/clang-tools-extra/clangd/URI.cpp b/clang-tools-extra/clangd/URI.cpp index ca65df329aeeb..4bd4b6db9f51d 100644 --- a/clang-tools-extra/clangd/URI.cpp +++ b/clang-tools-extra/clangd/URI.cpp @@ -165,8 +165,7 @@ std::string URI::toString() const { return Result; // If authority if empty, we only print body if it starts with "/"; otherwise, // the URI is invalid. - if (!Authority.empty() || llvm::StringRef(Body).startswith("/")) - { + if (!Authority.empty() || llvm::StringRef(Body).startswith("/")) { Result.append("//"); percentEncode(Authority, Result); } @@ -192,6 +191,10 @@ llvm::Expected<URI> URI::parse(llvm::StringRef OrigUri) { Uri = Uri.substr(Pos); } U.Body = percentDecode(Uri); + if (clang::clangd::isWindowsPath(U.Body)) { + Pos = U.Body.find(":"); + U.Body.at(Pos - 1) = std::toupper(U.Body.at(Pos - 1)); + } return U; } >From 5a4b2ed67032a75cec7fde6a3e8c589c13d0fef5 Mon Sep 17 00:00:00 2001 From: Leo Zhu <yifu....@microchip.com> Date: Thu, 9 Nov 2023 16:27:24 -0500 Subject: [PATCH 2/3] Add check for scheme --- clang-tools-extra/clangd/URI.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/clang-tools-extra/clangd/URI.cpp b/clang-tools-extra/clangd/URI.cpp index 4bd4b6db9f51d..e448d1b216d90 100644 --- a/clang-tools-extra/clangd/URI.cpp +++ b/clang-tools-extra/clangd/URI.cpp @@ -191,7 +191,7 @@ llvm::Expected<URI> URI::parse(llvm::StringRef OrigUri) { Uri = Uri.substr(Pos); } U.Body = percentDecode(Uri); - if (clang::clangd::isWindowsPath(U.Body)) { + if (U.scheme() == "file" && clang::clangd::isWindowsPath(U.Body)) { Pos = U.Body.find(":"); U.Body.at(Pos - 1) = std::toupper(U.Body.at(Pos - 1)); } >From a6daa54182b9eb62e57eba96f2d9e3103aeaf8b3 Mon Sep 17 00:00:00 2001 From: Leo Zhu <yifu....@microchip.com> Date: Mon, 4 Dec 2023 18:26:33 -0500 Subject: [PATCH 3/3] fix --- clang-tools-extra/clangd/URI.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/clang-tools-extra/clangd/URI.cpp b/clang-tools-extra/clangd/URI.cpp index e448d1b216d90..4493e2d2198bf 100644 --- a/clang-tools-extra/clangd/URI.cpp +++ b/clang-tools-extra/clangd/URI.cpp @@ -191,7 +191,9 @@ llvm::Expected<URI> URI::parse(llvm::StringRef OrigUri) { Uri = Uri.substr(Pos); } U.Body = percentDecode(Uri); - if (U.scheme() == "file" && clang::clangd::isWindowsPath(U.Body)) { + if (U.scheme() == "file" && + (clang::clangd::isWindowsPath(U.Body.substr(Pos + 1)) || + (clang::clangd::isWindowsPath(U.Body.substr(Pos))))) { Pos = U.Body.find(":"); U.Body.at(Pos - 1) = std::toupper(U.Body.at(Pos - 1)); } _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits