diff options
-rw-r--r-- | include/llvm/Support/FileSystem.h | 8 | ||||
-rw-r--r-- | lib/Support/Unix/PathV2.inc | 7 | ||||
-rw-r--r-- | lib/Support/Windows/PathV2.inc | 38 | ||||
-rw-r--r-- | lib/Support/Windows/Windows.h | 20 | ||||
-rw-r--r-- | unittests/Support/Path.cpp | 28 |
5 files changed, 2 insertions, 99 deletions
diff --git a/include/llvm/Support/FileSystem.h b/include/llvm/Support/FileSystem.h index 2abbc48..264ec49 100644 --- a/include/llvm/Support/FileSystem.h +++ b/include/llvm/Support/FileSystem.h @@ -389,12 +389,8 @@ error_code unique_file(const Twine &model, int &result_fd, /// @brief Canonicalize path. /// -/// Sets result to the file system's idea of what path is. Path must be -/// absolute. The result has the same case as the file system. -/// -/// Example: Give a file system with "C:\a\b\c\file.txt". -/// -/// C:\A\b\C\fIlE.TxT => C:\a\b\c\file.txt +/// Sets result to the file system's idea of what path is. The result is always +/// absolute and has the same capitalization as the file system. /// /// @param path Input path. /// @param result Set to the canonicalized version of \a path. diff --git a/lib/Support/Unix/PathV2.inc b/lib/Support/Unix/PathV2.inc index 2a21c14..272109d 100644 --- a/lib/Support/Unix/PathV2.inc +++ b/lib/Support/Unix/PathV2.inc @@ -431,13 +431,6 @@ rety_open_create: return success; } -error_code canonicalize(const Twine &path, SmallVectorImpl<char> &result) { - // Paths are already canonicalized on posix systems. - assert(path::is_absolute(path) && "path must be absolute!"); - path.toVector(result); - return success; -} - error_code detail::directory_iterator_construct(detail::DirIterState &it, StringRef path){ SmallString<128> path_null(path); diff --git a/lib/Support/Windows/PathV2.inc b/lib/Support/Windows/PathV2.inc index dd367e5..7ca33c0 100644 --- a/lib/Support/Windows/PathV2.inc +++ b/lib/Support/Windows/PathV2.inc @@ -614,44 +614,6 @@ retry_create_file: return success; } -error_code canonicalize(const Twine &path, SmallVectorImpl<char> &result) { - assert(path::is_absolute(path) && "path must be absolute!"); - SmallString<128> path_storage; - StringRef p = path.toStringRef(path_storage); - SmallVector<wchar_t, 128> path_utf16; - result.set_size(0); - - // Convert path to UTF-16. - if (error_code ec = UTF8ToUTF16(p, path_utf16)) - return ec; - - DWORD size = ::GetShortPathNameW(c_str(path_utf16), NULL, 0); - SmallVector<wchar_t, 128> short_path; - short_path.reserve(size + 1); - size = ::GetShortPathNameW( c_str(path_utf16) - , short_path.data() - , short_path.capacity()); - if (!size) - return windows_error(::GetLastError()); - - short_path.set_size(size); - - size = ::GetLongPathNameW(c_str(short_path), NULL, 0); - path_utf16.reserve(size + 1); - size = ::GetLongPathNameW( c_str(short_path) - , path_utf16.data() - , path_utf16.capacity()); - if (!size) - return windows_error(::GetLastError()); - - path_utf16.set_size(size); - - if (error_code ec = UTF16ToUTF8(path_utf16.data(), path_utf16.size(), result)) - return ec; - - return success; -} - error_code get_magic(const Twine &path, uint32_t len, SmallVectorImpl<char> &result) { SmallString<128> path_storage; diff --git a/lib/Support/Windows/Windows.h b/lib/Support/Windows/Windows.h index 2754075..5c1da0d 100644 --- a/lib/Support/Windows/Windows.h +++ b/lib/Support/Windows/Windows.h @@ -128,24 +128,6 @@ struct FindHandleTraits : CommonHandleTraits { } }; -struct FileMappingHandleTraits : CommonHandleTraits { - static handle_type GetInvalid() { - return 0; - } -}; - -struct MappedViewOfFileHandleTraits : CommonHandleTraits { - typedef LPVOID handle_type; - - static handle_type GetInvalid() { - return 0; - } - - static void Close(handle_type h) { - ::UnmapViewOfFile(h); - } -}; - struct FileHandleTraits : CommonHandleTraits {}; typedef ScopedHandle<CommonHandleTraits> ScopedCommonHandle; @@ -153,8 +135,6 @@ typedef ScopedHandle<FileHandleTraits> ScopedFileHandle; typedef ScopedHandle<CryptContextTraits> ScopedCryptContext; typedef ScopedHandle<FindHandleTraits> ScopedFindHandle; typedef ScopedHandle<JobHandleTraits> ScopedJobHandle; -typedef ScopedHandle<FileMappingHandleTraits> ScopedFileMappingHandle; -typedef ScopedHandle<MappedViewOfFileHandleTraits> ScopedMappedViewOfFileHandle; namespace llvm { template <class T> diff --git a/unittests/Support/Path.cpp b/unittests/Support/Path.cpp index 456b171..358dad0 100644 --- a/unittests/Support/Path.cpp +++ b/unittests/Support/Path.cpp @@ -312,32 +312,4 @@ TEST_F(FileSystemTest, Magic) { } } -TEST_F(FileSystemTest, Canonicalize) { - SmallString<128> file_pathname(TestDirectory); - path::append(file_pathname, "canonicalize", "a0", "aa1"); - - bool existed; - ASSERT_NO_ERROR(fs::create_directories(Twine(TestDirectory) - + "/canonicalize/a0/aa1", existed)); - - { - path::append(file_pathname, "file.txt"); - std::string ErrMsg; - raw_fd_ostream file(file_pathname.c_str(), ErrMsg); - file << "hello\n"; - } - - SmallString<0> res; - ASSERT_NO_ERROR(fs::canonicalize(Twine(TestDirectory) - + "/cAnOnIcAlIzE/A0/aA1/fIlE.TxT", res)); - // Only check if we actually found the file. As we won't find it on case - // sensitive file systems. - if (fs::exists(res.str())) { - ASSERT_TRUE(res.str().find("canonicalize") != StringRef::npos); - ASSERT_TRUE(res.str().find("a0") != StringRef::npos); - ASSERT_TRUE(res.str().find("aa1") != StringRef::npos); - ASSERT_TRUE(res.str().find("file.txt") != StringRef::npos); - } -} - } // anonymous namespace |