forked from OSchip/llvm-project
Adds llvm::sys::path::is_separator() to test whether a char is a path separator
on the host OS. Reviewed by dgregor. llvm-svn: 125406
This commit is contained in:
parent
c6ca7bb67a
commit
606bb1a2dc
|
@ -258,6 +258,12 @@ const StringRef stem(StringRef path);
|
|||
/// @result The extension of \a path.
|
||||
const StringRef extension(StringRef path);
|
||||
|
||||
/// @brief Check whether the given char is a path separator on the host OS.
|
||||
///
|
||||
/// @param value a character
|
||||
/// @result true if \a value is a path separator character on the host OS
|
||||
bool is_separator(char value);
|
||||
|
||||
/// @brief Has root name?
|
||||
///
|
||||
/// root_name != ""
|
||||
|
|
|
@ -20,16 +20,7 @@
|
|||
|
||||
namespace {
|
||||
using llvm::StringRef;
|
||||
|
||||
bool is_separator(const char value) {
|
||||
switch(value) {
|
||||
#ifdef LLVM_ON_WIN32
|
||||
case '\\': // fall through
|
||||
#endif
|
||||
case '/': return true;
|
||||
default: return false;
|
||||
}
|
||||
}
|
||||
using llvm::sys::path::is_separator;
|
||||
|
||||
#ifdef LLVM_ON_WIN32
|
||||
const StringRef separators = "\\/";
|
||||
|
@ -154,7 +145,7 @@ namespace {
|
|||
|
||||
return end_pos;
|
||||
}
|
||||
}
|
||||
} // end unnamed namespace
|
||||
|
||||
namespace llvm {
|
||||
namespace sys {
|
||||
|
@ -483,6 +474,16 @@ const StringRef extension(StringRef path) {
|
|||
return fname.substr(pos);
|
||||
}
|
||||
|
||||
bool is_separator(char value) {
|
||||
switch(value) {
|
||||
#ifdef LLVM_ON_WIN32
|
||||
case '\\': // fall through
|
||||
#endif
|
||||
case '/': return true;
|
||||
default: return false;
|
||||
}
|
||||
}
|
||||
|
||||
bool has_root_name(const Twine &path) {
|
||||
SmallString<128> path_storage;
|
||||
StringRef p = path.toStringRef(path_storage);
|
||||
|
@ -737,7 +738,7 @@ error_code remove_all_r(StringRef path, file_type ft, uint32_t &count) {
|
|||
|
||||
return success;
|
||||
}
|
||||
}
|
||||
} // end unnamed namespace
|
||||
|
||||
error_code remove_all(const Twine &path, uint32_t &num_removed) {
|
||||
SmallString<128> path_storage;
|
||||
|
|
|
@ -29,6 +29,19 @@ using namespace llvm::sys;
|
|||
|
||||
namespace {
|
||||
|
||||
TEST(is_separator, Works) {
|
||||
EXPECT_TRUE(path::is_separator('/'));
|
||||
EXPECT_FALSE(path::is_separator('\0'));
|
||||
EXPECT_FALSE(path::is_separator('-'));
|
||||
EXPECT_FALSE(path::is_separator(' '));
|
||||
|
||||
#ifdef LLVM_ON_WIN32
|
||||
EXPECT_TRUE(path::is_separator('\\'));
|
||||
#else
|
||||
EXPECT_FALSE(path::is_separator('\\'));
|
||||
#endif
|
||||
}
|
||||
|
||||
TEST(Support, Path) {
|
||||
SmallVector<StringRef, 40> paths;
|
||||
paths.push_back("");
|
||||
|
|
Loading…
Reference in New Issue