bool ON_WildCardMatchNoCase(const wchar_t* s, const wchar_t* pattern) { if ( !pattern || !pattern[0] ) { return ( !s || !s[0] ) ? true : false; } if ( *pattern == '*' ) { pattern++; while ( *pattern == '*' ) pattern++; if ( !pattern[0] ) return true; while (*s) { if ( ON_WildCardMatchNoCase(s,pattern) ) return true; s++; } return false; } while ( *pattern != '*' ) { if ( *pattern == '?' ) { if ( *s) { pattern++; s++; continue; } return false; } if ( *pattern == '\\' ) { switch( pattern[1] ) { case '*': case '?': pattern++; break; } } if ( towupper(*pattern) != towupper(*s) ) { return false; } if ( *s == 0 ) return true; pattern++; s++; } return ON_WildCardMatchNoCase(s,pattern); }
bool ON_String::WildCardMatchNoCase( const unsigned char* pattern ) const { return ON_WildCardMatchNoCase(m_s,(const char*)pattern); }
bool ON_wString::WildCardMatchNoCase( const wchar_t* pattern ) const { return ON_WildCardMatchNoCase(m_s,pattern); }