From 7ae606a2a891707ad2e184b0e3baac0dce1b6c0f Mon Sep 17 00:00:00 2001 From: Chad Rosier Date: Mon, 12 Dec 2011 17:58:31 +0000 Subject: [PATCH] Revert r146363 to allow buildbots to make forward progress. Original commit message: Support/FileSystem: Implement canonicalize. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@146378 91177308-0d34-0410-b5e6-96231b3b80d8 --- include/llvm/Support/FileSystem.h | 8 ++----- lib/Support/Unix/PathV2.inc | 7 ------ lib/Support/Windows/PathV2.inc | 38 ------------------------------- lib/Support/Windows/Windows.h | 20 ---------------- 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 2abbc48b2e7..264ec49aaa9 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 2a21c1497fd..272109d03d7 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 &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 dd367e5baa8..7ca33c0bc96 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 &result) { - assert(path::is_absolute(path) && "path must be absolute!"); - SmallString<128> path_storage; - StringRef p = path.toStringRef(path_storage); - SmallVector 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 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 &result) { SmallString<128> path_storage; diff --git a/lib/Support/Windows/Windows.h b/lib/Support/Windows/Windows.h index 27540750355..5c1da0d617a 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 ScopedCommonHandle; @@ -153,8 +135,6 @@ typedef ScopedHandle ScopedFileHandle; typedef ScopedHandle ScopedCryptContext; typedef ScopedHandle ScopedFindHandle; typedef ScopedHandle ScopedJobHandle; -typedef ScopedHandle ScopedFileMappingHandle; -typedef ScopedHandle ScopedMappedViewOfFileHandle; namespace llvm { template diff --git a/unittests/Support/Path.cpp b/unittests/Support/Path.cpp index 456b171dfce..358dad0f838 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 -- 2.34.1