c1 = tolower(char(c1)); c2 = tolower(char(c2));
c1 = nsCRT::ToLower(char(c1)); c2 = nsCRT::ToLower(char(c2));
PRInt32 Compare2To1(const PRUnichar* aStr1,const char* aStr2,PRUint32 aCount,PRBool aIgnoreCase){  const PRUnichar* s1 = aStr1;  const char *s2 = aStr2;    if (aStr1 && aStr2) {    if (aCount != 0) {      do {        PRUnichar c1 = *s1++;        PRUnichar c2 = PRUnichar((unsigned char)*s2++);                if (c1 != c2) {#ifdef NS_DEBUG          // we won't warn on c1>=128 (the 2-byte value) because often          // it is just fine to compare an constant, ascii value (i.e. "body")          // against some non-ascii value (i.e. a unicode string that          // was downloaded from a web page)          if (aIgnoreCase && c2>=128)            NS_WARNING("got a non-ASCII string, but we can't do an accurate case conversion!");#endif          // can't do case conversion on characters out of our range          if (aIgnoreCase && c1<128 && c2<128) {              c1 = tolower(char(c1));              c2 = tolower(char(c2));                          if (c1 == c2) continue;          }          if (c1 < c2) return -1;          return 1;        }      } while (--aCount);    }  }  return 0;}