From 2984df91002fe3e3db0d38f364e9842024a8ab2e Mon Sep 17 00:00:00 2001 From: Marc Chevrier Date: Sun, 15 Aug 2021 15:27:47 +0200 Subject: [PATCH] Refactor: cmHasPrefix and cmHasSuffix accept now cmProp --- Source/cmStringAlgorithms.h | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/Source/cmStringAlgorithms.h b/Source/cmStringAlgorithms.h index 531678ad22..20061e9af1 100644 --- a/Source/cmStringAlgorithms.h +++ b/Source/cmStringAlgorithms.h @@ -290,6 +290,16 @@ inline bool cmHasPrefix(cm::string_view str, cm::string_view prefix) return str.compare(0, prefix.size(), prefix) == 0; } +/** Returns true if string @a str starts with string @a prefix. */ +inline bool cmHasPrefix(cm::string_view str, cmProp prefix) +{ + if (!prefix) { + return false; + } + + return str.compare(0, prefix->size(), prefix) == 0; +} + /** Returns true if string @a str starts with string @a prefix. */ template inline bool cmHasLiteralPrefix(cm::string_view str, const char (&prefix)[N]) @@ -310,6 +320,17 @@ inline bool cmHasSuffix(cm::string_view str, cm::string_view suffix) str.compare(str.size() - suffix.size(), suffix.size(), suffix) == 0; } +/** Returns true if string @a str ends with string @a suffix. */ +inline bool cmHasSuffix(cm::string_view str, cmProp suffix) +{ + if (!suffix) { + return false; + } + + return str.size() >= suffix->size() && + str.compare(str.size() - suffix->size(), suffix->size(), suffix) == 0; +} + /** Returns true if string @a str ends with string @a suffix. */ template inline bool cmHasLiteralSuffix(cm::string_view str, const char (&suffix)[N])