summaryrefslogtreecommitdiff
path: root/src/util
diff options
context:
space:
mode:
Diffstat (limited to 'src/util')
-rw-r--r--src/util/StringCompare.hxx18
1 files changed, 18 insertions, 0 deletions
diff --git a/src/util/StringCompare.hxx b/src/util/StringCompare.hxx
index 8ae7b0de2..b13f1623c 100644
--- a/src/util/StringCompare.hxx
+++ b/src/util/StringCompare.hxx
@@ -81,6 +81,14 @@ StringStartsWithIgnoreCase(const char *haystack, StringView needle) noexcept
return StringIsEqualIgnoreCase(haystack, needle.data, needle.size);
}
+gcc_pure
+static inline bool
+StringStartsWithIgnoreCase(StringView haystack, StringView needle) noexcept
+{
+ return haystack.size >= needle.size &&
+ StringIsEqualIgnoreCase(haystack.data, needle.data, needle.size);
+}
+
gcc_pure gcc_nonnull_all
static inline const char *
StringAfterPrefixIgnoreCase(const char *haystack, StringView needle) noexcept
@@ -90,6 +98,16 @@ StringAfterPrefixIgnoreCase(const char *haystack, StringView needle) noexcept
: nullptr;
}
+gcc_pure
+static inline StringView
+StringAfterPrefixIgnoreCase(StringView haystack,
+ StringView needle) noexcept
+{
+ return StringStartsWithIgnoreCase(haystack, needle)
+ ? haystack.substr(needle.size)
+ : nullptr;
+}
+
/**
* Check if the given string ends with the specified suffix. If yes,
* returns the position of the suffix, and nullptr otherwise.