| From 07f996a95eece4e2b40249e5c8a702f3096ef70f Mon Sep 17 00:00:00 2001 |
| From: =?UTF-8?q?Mateusz=20Miku=C5=82a?= <mati865@gmail.com> |
| Date: Sun, 22 Nov 2020 17:49:19 +0100 |
| Subject: [PATCH 2/2] Use posix style path separators with MinGW |
| |
| --- |
| lib/Support/Path.cpp | 4 ++++ |
| lib/Support/Windows/Path.inc | 5 +++++ |
| lib/Support/Windows/Program.inc | 7 ++++++- |
| 3 files changed, 15 insertions(+), 1 deletion(-) |
| |
| diff --git a/lib/Support/Path.cpp b/lib/Support/Path.cpp |
| index 37b3086fddf..8ab8e33f248 100644 |
| --- a/lib/Support/Path.cpp |
| +++ b/lib/Support/Path.cpp |
| @@ -51,8 +51,10 @@ namespace { |
| } |
| |
| inline char preferred_separator(Style style) { |
| +#ifndef __MINGW32__ |
| if (real_style(style) == Style::windows) |
| return '\\'; |
| +#endif |
| return '/'; |
| } |
| |
| @@ -611,8 +613,10 @@ bool is_separator(char value, Style style) { |
| } |
| |
| StringRef get_separator(Style style) { |
| +#ifndef __MINGW32__ |
| if (real_style(style) == Style::windows) |
| return "\\"; |
| +#endif |
| return "/"; |
| } |
| |
| diff --git a/lib/Support/Windows/Path.inc b/lib/Support/Windows/Path.inc |
| index e352beb7761..501e252f188 100644 |
| --- a/lib/Support/Windows/Path.inc |
| +++ b/lib/Support/Windows/Path.inc |
| @@ -146,7 +146,12 @@ std::string getMainExecutable(const char *argv0, void *MainExecAddr) { |
| if (UTF16ToUTF8(PathName.data(), PathName.size(), PathNameUTF8)) |
| return ""; |
| |
| +#ifndef __MINGW32__ |
| return std::string(PathNameUTF8.data()); |
| +#else |
| + return llvm::sys::path::convert_to_slash(std::string(PathNameUTF8.data()), |
| + llvm::sys::path::Style::windows); |
| +#endif |
| } |
| |
| UniqueID file_status::getUniqueID() const { |
| diff --git a/lib/Support/Windows/Program.inc b/lib/Support/Windows/Program.inc |
| index 9fe05d24ec2..9e6fe77ca4f 100644 |
| --- a/lib/Support/Windows/Program.inc |
| +++ b/lib/Support/Windows/Program.inc |
| @@ -101,8 +101,13 @@ ErrorOr<std::string> sys::findProgramByName(StringRef Name, |
| if (std::error_code EC = |
| windows::UTF16ToUTF8(U16Result.data(), U16Result.size(), U8Result)) |
| return EC; |
| - |
| +#ifndef __MINGW32__ |
| return std::string(U8Result.begin(), U8Result.end()); |
| +#else |
| + return llvm::sys::path::convert_to_slash( |
| + std::string(U8Result.begin(), U8Result.end()), |
| + llvm::sys::path::Style::windows); |
| +#endif |
| } |
| |
| bool MakeErrMsg(std::string *ErrMsg, const std::string &prefix) { |
| -- |
| 2.29.2.windows.2 |
| |