diff --git a/convert/text.h b/convert/text.h index b2930b6..911c690 100644 --- a/convert/text.h +++ b/convert/text.h @@ -198,6 +198,71 @@ bool EqualNoCase(const StringType1 * str1_begin, const StringType1 * str1_end, c + + +template +bool IsSubStringp(const StringType1 * short_str, const StringType2 * long_str) +{ + while( *short_str && *long_str && wchar_t(*short_str) == wchar_t(*long_str) ) + { + ++short_str; + ++long_str; + } + + if( *short_str == 0 ) + return true; + +return false; +} + + +template +bool IsSubString(const StringType1 * short_str, const StringType2 * long_str) +{ + return IsSubStringp(short_str, long_str); +} + + +template +bool IsSubString(const StringType1 & short_str, const StringType2 & long_str) +{ + return IsSubStringp(short_str.c_str(), long_str.c_str()); +} + + +template +bool IsSubStringNoCasep(const StringType1 * short_str, const StringType2 * long_str) +{ + while( *short_str && *long_str && ToLower(*short_str) == ToLower(*long_str) ) + { + ++short_str; + ++long_str; + } + + if( *short_str == 0 ) + return true; + +return false; +} + + +template +bool IsSubStringNoCase(const StringType1 * short_str, const StringType2 * long_str) +{ + return IsSubStringNoCasep(short_str, long_str); +} + + +template +bool IsSubStringNoCase(const StringType1 & short_str, const StringType2 & long_str) +{ + return IsSubStringNoCasep(short_str.c_str(), long_str.c_str()); +} + + + + + }