add 2nd operator() to prepare for future FindInReadable work in bug 100214

not part of build
This commit is contained in:
alecf@netscape.com
2001-10-09 23:41:57 +00:00
parent 8d3f6f2ece
commit e24784b3a2
2 changed files with 16 additions and 25 deletions

View File

@@ -83,34 +83,12 @@ ToUpperCase( nsAString& aString )
copy_string(aString.BeginWriting(fromBegin), aString.EndWriting(fromEnd), converter);
}
class CaseInsensitivePRUnicharComparator
{
public:
PRBool operator()( PRUnichar lhs, PRUnichar rhs ) const {
NS_InitCaseConversion();
PRUnichar lhsUpper; PRUnichar rhsUpper;
gCaseConv->ToUpper(lhs, &lhsUpper);
gCaseConv->ToUpper(rhs, &rhsUpper);
return lhsUpper = rhsUpper;
}
};
PRBool
CaseInsensitiveFindInReadable( const nsAString& aPattern, nsAString::const_iterator& aSearchStart, nsAString::const_iterator& aSearchEnd )
{
nsAutoString lowerPattern(aPattern);
ToLowerCase(lowerPattern);
{
return FindInReadable(aPattern, aStart, aEnd, nsCaseInsensitiveStringComparator());
}
nsAutoString lowerString;
CopyUnicodeTo(aSearchStart, aSearchEnd, lowerString);
nsAString::const_iterator match_start, match_end;
return FindInReadable(lowerPattern,
lowerString.BeginReading(match_start),
lowerString.EndReading(match_end));
}
int
nsCaseInsensitiveStringComparator::operator()( const PRUnichar* lhs, const PRUnichar* rhs, PRUint32 aLength ) const
@@ -121,4 +99,16 @@ nsCaseInsensitiveStringComparator::operator()( const PRUnichar* lhs, const PRUni
return result;
}
PRBool
nsCaseInsensitiveStringComparator::operator()( PRUnichar lhs, PRUnichar rhs ) const
{
if (lhs == rhs) return PR_TRUE;
NS_InitCaseConversion();
gCaseConv->ToUpper(lhs, &lhs);
gCaseConv->ToUpper(rhs, &rhs);
return lhs == rhs;
}
#endif