diff --git a/include/znc/ZNCString.h b/include/znc/ZNCString.h index 03fd91bb30..bf27f5d75c 100644 --- a/include/znc/ZNCString.h +++ b/include/znc/ZNCString.h @@ -478,6 +478,17 @@ class CString : public std::string { */ CString TrimSuffix_n(const CString& sSuffix) const; + /** Check whether the string starts with a given prefix. + * @param sPrefix The prefix. + * @return True if the string starts with prefix, false otherwise. + */ + bool StartsWith(const CString& sPrefix) const; + /** Check whether the string ends with a given suffix. + * @param sSuffix The suffix. + * @return True if the string ends with suffix, false otherwise. + */ + bool EndsWith(const CString& sSuffix) const; + /** Remove characters from the beginning of this string. * @param uLen The number of characters to remove. * @return true if this string was modified. diff --git a/src/ZNCString.cpp b/src/ZNCString.cpp index 506a3a244a..9287eeca61 100644 --- a/src/ZNCString.cpp +++ b/src/ZNCString.cpp @@ -1092,6 +1092,14 @@ bool CString::TrimSuffix(const CString& sSuffix) { } } +bool CString::StartsWith(const CString& sPrefix) const { + return Left(sPrefix.length()).Equals(sPrefix); +} + +bool CString::EndsWith(const CString& sSuffix) const { + return Right(sSuffix.length()).Equals(sSuffix); +} + CString CString::TrimPrefix_n(const CString& sPrefix) const { CString sRet = *this;