mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-12-26 21:32:10 +00:00
Support/PathV2: Add is_{absolute,relative} implementation.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120560 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
ae18008584
commit
ce2b68fb54
@ -642,6 +642,30 @@ error_code has_extension(const Twine &path, bool &result) {
|
||||
return make_error_code(errc::success);
|
||||
}
|
||||
|
||||
error_code is_absolute(const Twine &path, bool &result) {
|
||||
SmallString<128> path_storage;
|
||||
StringRef p = path.toStringRef(path_storage);
|
||||
|
||||
bool rootDir = false,
|
||||
rootName = false;
|
||||
if (error_code ec = has_root_directory(p, rootDir)) return ec;
|
||||
#ifdef LLVM_ON_WIN32
|
||||
if (error_code ec = has_root_name(p, rootName)) return ec;
|
||||
#else
|
||||
rootName = true;
|
||||
#endif
|
||||
|
||||
result = rootDir && rootName;
|
||||
return make_error_code(errc::success);
|
||||
}
|
||||
|
||||
error_code is_relative(const Twine &path, bool &result) {
|
||||
bool res;
|
||||
error_code ec = is_absolute(path, res);
|
||||
result = !res;
|
||||
return ec;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -112,6 +112,8 @@ TEST(Support, Path) {
|
||||
TEST_PATH(stem, *i, sfres);
|
||||
TEST_PATH(has_extension, *i, bres);
|
||||
TEST_PATH(extension, *i, sfres);
|
||||
TEST_PATH(is_absolute, *i, bres);
|
||||
TEST_PATH(is_relative, *i, bres);
|
||||
|
||||
SmallString<16> temp_store;
|
||||
TEST_PATH_SMALLVEC(make_absolute, *i, temp_store);
|
||||
|
Loading…
Reference in New Issue
Block a user