mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-03-04 05:31:51 +00:00
Support/PathV2: Add remove_filename implementation.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120513 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
a5a42d9b3c
commit
dbfb56bebd
@ -140,7 +140,7 @@ error_code make_absolute(SmallVectorImpl<char> &path);
|
|||||||
/// @brief Remove the last component from \a path if it exists.
|
/// @brief Remove the last component from \a path if it exists.
|
||||||
///
|
///
|
||||||
/// directory/filename.cpp => directory/
|
/// directory/filename.cpp => directory/
|
||||||
/// directory/ => directory/
|
/// directory/ => directory
|
||||||
///
|
///
|
||||||
/// @param path A path that is modified to not have a file component.
|
/// @param path A path that is modified to not have a file component.
|
||||||
/// @returns errc::success if \a path's file name has been removed (or there was
|
/// @returns errc::success if \a path's file name has been removed (or there was
|
||||||
|
@ -503,6 +503,14 @@ error_code parent_path(const StringRef &path, StringRef &result) {
|
|||||||
return make_error_code(errc::success);
|
return make_error_code(errc::success);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
error_code remove_filename(SmallVectorImpl<char> &path) {
|
||||||
|
size_t end_pos = parent_path_end(StringRef(path.begin(), path.size()));
|
||||||
|
if (end_pos == StringRef::npos)
|
||||||
|
return make_error_code(errc::success);
|
||||||
|
path.set_size(end_pos);
|
||||||
|
return make_error_code(errc::success);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -99,6 +99,10 @@ TEST(Support, Path) {
|
|||||||
if (error_code ec = sys::path::make_absolute(temp_store))
|
if (error_code ec = sys::path::make_absolute(temp_store))
|
||||||
ASSERT_FALSE(ec.message().c_str());
|
ASSERT_FALSE(ec.message().c_str());
|
||||||
outs() << " make_absolute: " << temp_store << '\n';
|
outs() << " make_absolute: " << temp_store << '\n';
|
||||||
|
temp_store = *i;
|
||||||
|
if (error_code ec = sys::path::remove_filename(temp_store))
|
||||||
|
ASSERT_FALSE(ec.message().c_str());
|
||||||
|
outs() << " remove_filename: " << temp_store << '\n';
|
||||||
|
|
||||||
outs().flush();
|
outs().flush();
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user