TQString KStringHandler::obscure( const TQString &str ) { TQString result; const TQChar *unicode = str.unicode(); for ( uint i = 0; i < str.length(); ++i ) result += ( unicode[ i ].unicode() < 0x21 ) ? unicode[ i ] : TQChar( 0x1001F - unicode[ i ].unicode() ); return result; }
bool KStringHandler::matchFileName( const TQString& filename, const TQString& pattern ) { int len = filename.length(); int pattern_len = pattern.length(); if (!pattern_len) return false; // Patterns like "Makefile*" if ( pattern[ pattern_len - 1 ] == (QChar)'*' && len + 1 >= pattern_len ) { if ( pattern[ 0 ] == (QChar)'*' ) { return filename.find(pattern.mid(1, pattern_len - 2)) != -1; } const TQChar *c1 = pattern.unicode(); const TQChar *c2 = filename.unicode(); int cnt = 1; while ( cnt < pattern_len && *c1++ == *c2++ ) ++cnt; return cnt == pattern_len; } // Patterns like "*~", "*.extension" if ( pattern[ 0 ] == (QChar)'*' && len + 1 >= pattern_len ) { const TQChar *c1 = pattern.unicode() + pattern_len - 1; const TQChar *c2 = filename.unicode() + len - 1; int cnt = 1; while ( cnt < pattern_len && *c1-- == *c2-- ) ++cnt; return cnt == pattern_len; } // Patterns like "Makefile" return ( filename == pattern ); }