bug 100214 - Remove string dependency on XPCOM routines that depend on unicharutil, r=jag sr=scc

git-svn-id: svn://10.0.0.236/trunk@106596 18797224-902f-48f8-a5cc-f745e15eee43
This commit is contained in:
alecf%netscape.com
2001-10-29 23:16:23 +00:00
parent 7beecfbd9e
commit 345e7b6e33
10 changed files with 74 additions and 148 deletions

View File

@@ -357,15 +357,6 @@ class ConvertToUpperCase
}
};
NS_COM
void
ToUpperCase( nsAString& aString )
{
nsAString::iterator fromBegin, fromEnd;
ConvertToUpperCase<PRUnichar> converter;
copy_string(aString.BeginWriting(fromBegin), aString.EndWriting(fromEnd), converter);
}
NS_COM
void
ToUpperCase( nsACString& aCString )
@@ -394,15 +385,6 @@ class ConvertToLowerCase
}
};
NS_COM
void
ToLowerCase( nsAString& aString )
{
nsAString::iterator fromBegin, fromEnd;
ConvertToLowerCase<PRUnichar> converter;
copy_string(aString.BeginWriting(fromBegin), aString.EndWriting(fromEnd), converter);
}
NS_COM
void
ToLowerCase( nsACString& aCString )
@@ -429,7 +411,8 @@ FindInReadable_Impl( const StringT& aPattern, IteratorT& aSearchStart, IteratorT
while ( !found_it )
{
// fast inner loop (that's what it's called, not what it is) looks for a potential match
while ( aSearchStart != aSearchEnd && !compare(*aPatternStart, *aSearchStart) )
while ( aSearchStart != aSearchEnd &&
compare(*aPatternStart, *aSearchStart) )
++aSearchStart;
// if we broke out of the `fast' loop because we're out of string ... we're done: no match
@@ -466,7 +449,7 @@ FindInReadable_Impl( const StringT& aPattern, IteratorT& aSearchStart, IteratorT
// else if we mismatched ... it's time to advance to the next search position
// and get back into the `fast' loop
if ( !compare(*testPattern, *testSearch) )
if ( compare(*testPattern, *testSearch) )
{
++aSearchStart;
break;
@@ -479,56 +462,25 @@ FindInReadable_Impl( const StringT& aPattern, IteratorT& aSearchStart, IteratorT
}
class CaseSensitivePRUnicharComparator
{
public:
PRBool operator()( PRUnichar lhs, PRUnichar rhs ) const { return lhs == rhs; }
};
class CaseSensitiveCharComparator
{
public:
PRBool operator()( char lhs, char rhs ) const { return lhs == rhs; }
};
class CaseInsensitivePRUnicharComparator
{
public:
PRBool operator()( PRUnichar lhs, PRUnichar rhs ) const { return nsCRT::ToUpper(lhs) == nsCRT::ToUpper(rhs); }
};
class CaseInsensitiveCharComparator
{
public:
PRBool operator()( char lhs, char rhs ) const { return nsCRT::ToUpper(lhs) == nsCRT::ToUpper(rhs); }
};
NS_COM
PRBool
FindInReadable( const nsAString& aPattern, nsAString::const_iterator& aSearchStart, nsAString::const_iterator& aSearchEnd )
FindInReadable( const nsAString& aPattern, nsAString::const_iterator& aSearchStart, nsAString::const_iterator& aSearchEnd, const nsStringComparator& aComparator )
{
return FindInReadable_Impl(aPattern, aSearchStart, aSearchEnd, CaseSensitivePRUnicharComparator());
return FindInReadable_Impl(aPattern, aSearchStart, aSearchEnd, aComparator);
}
NS_COM
PRBool
FindInReadable( const nsACString& aPattern, nsACString::const_iterator& aSearchStart, nsACString::const_iterator& aSearchEnd )
FindInReadable( const nsACString& aPattern, nsACString::const_iterator& aSearchStart, nsACString::const_iterator& aSearchEnd, const nsCStringComparator& aComparator)
{
return FindInReadable_Impl(aPattern, aSearchStart, aSearchEnd, CaseSensitiveCharComparator());
}
NS_COM
PRBool
CaseInsensitiveFindInReadable( const nsAString& aPattern, nsAString::const_iterator& aSearchStart, nsAString::const_iterator& aSearchEnd )
{
return FindInReadable_Impl(aPattern, aSearchStart, aSearchEnd, CaseInsensitivePRUnicharComparator());
return FindInReadable_Impl(aPattern, aSearchStart, aSearchEnd, aComparator);
}
NS_COM
PRBool
CaseInsensitiveFindInReadable( const nsACString& aPattern, nsACString::const_iterator& aSearchStart, nsACString::const_iterator& aSearchEnd )
{
return FindInReadable_Impl(aPattern, aSearchStart, aSearchEnd, CaseInsensitiveCharComparator());
return FindInReadable_Impl(aPattern, aSearchStart, aSearchEnd, nsCaseInsensitiveCStringComparator());
}
/**