AK: Add FileSystemPath::is_absolute()

This commit is contained in:
Linus Groh 2020-04-27 13:09:08 +01:00 committed by Andreas Kling
parent 6fd7966d81
commit cd81aa41f0
Notes: sideshowbarker 2024-07-19 07:14:38 +09:00
2 changed files with 7 additions and 5 deletions

View file

@ -45,10 +45,10 @@ void FileSystemPath::canonicalize()
return;
}
bool is_absolute_path = m_string[0] == '/';
m_is_absolute = m_string[0] == '/';
auto parts = m_string.split_view('/');
if (!is_absolute_path)
if (!m_is_absolute)
parts.prepend(".");
size_t approximate_canonical_length = 0;
@ -56,7 +56,7 @@ void FileSystemPath::canonicalize()
for (size_t i = 0; i < parts.size(); ++i) {
auto& part = parts[i];
if (is_absolute_path || i != 0) {
if (m_is_absolute || i != 0) {
if (part == ".")
continue;
}
@ -78,7 +78,7 @@ void FileSystemPath::canonicalize()
StringBuilder dirname_builder(approximate_canonical_length);
for (size_t i = 0; i < canonical_parts.size() - 1; ++i) {
auto& canonical_part = canonical_parts[i];
if (is_absolute_path || i != 0)
if (m_is_absolute || i != 0)
dirname_builder.append('/');
dirname_builder.append(canonical_part);
}
@ -93,7 +93,7 @@ void FileSystemPath::canonicalize()
StringBuilder builder(approximate_canonical_length);
for (size_t i = 0; i < canonical_parts.size(); ++i) {
auto& canonical_part = canonical_parts[i];
if (is_absolute_path || i != 0)
if (m_is_absolute || i != 0)
builder.append('/');
builder.append(canonical_part);
}

View file

@ -37,6 +37,7 @@ public:
explicit FileSystemPath(const StringView&);
bool is_valid() const { return m_is_valid; }
bool is_absolute() const { return m_is_absolute; }
const String& string() const { return m_string; }
const String& dirname() const { return m_dirname; }
@ -58,6 +59,7 @@ private:
String m_title;
String m_extension;
bool m_is_valid { false };
bool m_is_absolute { false };
};
String canonicalized_path(const StringView&);