summaryrefslogtreecommitdiff
path: root/lib/Support/PathV2.cpp
diff options
context:
space:
mode:
authorMichael J. Spencer <bigcheesegs@gmail.com>2010-12-07 03:57:48 +0000
committerMichael J. Spencer <bigcheesegs@gmail.com>2010-12-07 03:57:48 +0000
commitca3a339d767882ef726d898d29f06bc94568c701 (patch)
treeccd77c55487e3af42bebeee6b7add40fda0228ca /lib/Support/PathV2.cpp
parent936671b2eaa0a6b27903f8d85a8f4b28fcf8ee84 (diff)
downloadllvm-ca3a339d767882ef726d898d29f06bc94568c701.tar.gz
llvm-ca3a339d767882ef726d898d29f06bc94568c701.tar.bz2
llvm-ca3a339d767882ef726d898d29f06bc94568c701.tar.xz
Support/PathV2: Cleanup separator handling.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@121110 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Support/PathV2.cpp')
-rw-r--r--lib/Support/PathV2.cpp17
1 files changed, 10 insertions, 7 deletions
diff --git a/lib/Support/PathV2.cpp b/lib/Support/PathV2.cpp
index cd9ff21d6e..728f036023 100644
--- a/lib/Support/PathV2.cpp
+++ b/lib/Support/PathV2.cpp
@@ -31,7 +31,7 @@ namespace {
#ifdef LLVM_ON_WIN32
const StringRef separators = "\\/";
- const char prefered_separator = '\\';
+ const char prefered_separator = '\\';
#else
const StringRef separators = "/";
const char prefered_separator = '/';
@@ -50,16 +50,19 @@ namespace {
if (path.empty())
return path;
+#ifdef LLVM_ON_WIN32
// C:
if (path.size() >= 2 && std::isalpha(path[0]) && path[1] == ':')
return StringRef(path.begin(), 2);
+#endif
// //net
if ((path.size() > 2) &&
- (path.startswith("\\\\") || path.startswith("//")) &&
- (path[2] != '\\' && path[2] != '/')) {
+ is_separator(path[0]) &&
+ path[0] == path[1] &&
+ !is_separator(path[2])) {
// Find the next directory separator.
- size_t end = path.find_first_of("\\/", 2);
+ size_t end = path.find_first_of(separators, 2);
if (end == StringRef::npos)
return path;
else
@@ -67,7 +70,7 @@ namespace {
}
// {/,\}
- if (path[0] == '\\' || path[0] == '/')
+ if (is_separator(path[0]))
return StringRef(path.begin(), 1);
if (path.startswith(".."))
@@ -77,7 +80,7 @@ namespace {
return StringRef(path.begin(), 1);
// * {file,directory}name
- size_t end = path.find_first_of("\\/", 2);
+ size_t end = path.find_first_of(separators, 2);
if (end == StringRef::npos)
return path;
else
@@ -89,7 +92,7 @@ namespace {
size_t filename_pos(const StringRef &str) {
if (str.size() == 2 &&
is_separator(str[0]) &&
- is_separator(str[1]))
+ str[0] == str[1])
return 0;
if (str.size() > 0 && is_separator(str[str.size() - 1]))