From 4d15db01346a4c1e7b2c25b9c36f40a27783851e Mon Sep 17 00:00:00 2001 From: Max Kellermann Date: Fri, 6 Nov 2015 09:30:54 +0100 Subject: util/StringCompare: use StringView to simplify inline implementations --- src/util/StringCompare.hxx | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) (limited to 'src/util/StringCompare.hxx') diff --git a/src/util/StringCompare.hxx b/src/util/StringCompare.hxx index a29892bc9..6d7b3474e 100644 --- a/src/util/StringCompare.hxx +++ b/src/util/StringCompare.hxx @@ -30,6 +30,7 @@ #ifndef STRING_COMPARE_HXX #define STRING_COMPARE_HXX +#include "StringView.hxx" #include "Compiler.h" #ifdef _UNICODE @@ -42,9 +43,12 @@ StringIsEmpty(const char *string) return *string == 0; } -gcc_pure -bool -StringStartsWith(const char *haystack, const char *needle); +gcc_pure gcc_nonnull_all +static inline bool +StringStartsWith(const char *haystack, StringView needle) +{ + return strncmp(haystack, needle.data, needle.size) == 0; +} gcc_pure bool @@ -56,8 +60,13 @@ StringEndsWith(const char *haystack, const char *needle); * nullptr. */ gcc_pure gcc_nonnull_all -const char * -StringAfterPrefix(const char *string, const char *prefix); +static inline const char * +StringAfterPrefix(const char *haystack, StringView needle) +{ + return StringStartsWith(haystack, needle) + ? haystack + needle.size + : nullptr; +} /** * Check if the given string ends with the specified suffix. If yes, -- cgit v1.2.3