Author: labath Date: Wed Nov 30 10:08:45 2016 New Revision: 288247 URL: http://llvm.org/viewvc/llvm-project?rev=288247&view=rev Log: Fix handling of consecutive slashes in FileSpec::GetNormalizedPath()
The core of the function was actually handling them correctly. However, the early exit was being too optimistic and did not give the function a chance to fire if the path did not contain dots as well. Fix that and add a couple of unit tests. Modified: lldb/trunk/source/Host/common/FileSpec.cpp lldb/trunk/unittests/Host/FileSpecTest.cpp Modified: lldb/trunk/source/Host/common/FileSpec.cpp URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Host/common/FileSpec.cpp?rev=288247&r1=288246&r2=288247&view=diff ============================================================================== --- lldb/trunk/source/Host/common/FileSpec.cpp (original) +++ lldb/trunk/source/Host/common/FileSpec.cpp Wed Nov 30 10:08:45 2016 @@ -544,7 +544,8 @@ bool FileSpec::Equal(const FileSpec &a, FileSpec FileSpec::GetNormalizedPath() const { // Fast path. Do nothing if the path is not interesting. if (!m_directory.GetStringRef().contains(".") && - (m_filename.GetStringRef() != ".." && m_filename.GetStringRef() != ".")) + !m_directory.GetStringRef().contains("//") && + m_filename.GetStringRef() != ".." && m_filename.GetStringRef() != ".") return *this; llvm::SmallString<64> path, result; Modified: lldb/trunk/unittests/Host/FileSpecTest.cpp URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/unittests/Host/FileSpecTest.cpp?rev=288247&r1=288246&r2=288247&view=diff ============================================================================== --- lldb/trunk/unittests/Host/FileSpecTest.cpp (original) +++ lldb/trunk/unittests/Host/FileSpecTest.cpp Wed Nov 30 10:08:45 2016 @@ -206,6 +206,9 @@ TEST(FileSpecTest, GetNormalizedPath) { {"/foo/./bar", "/foo/bar"}, {"/foo/..", "/"}, {"/foo/.", "/foo"}, + {"/foo//bar", "/foo/bar"}, + {"/foo//bar/baz", "/foo/bar/baz"}, + {"/foo//bar/./baz", "/foo/bar/baz"}, {"/./foo", "/foo"}, {"/", "/"}, {"//", "//"}, _______________________________________________ lldb-commits mailing list lldb-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits