Patch from Neil H.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@14058 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Robin Dunn
2002-02-07 23:15:28 +00:00
parent 574c939ef1
commit 177b62bf4d
2 changed files with 58 additions and 76 deletions

View File

@@ -32,49 +32,40 @@ static inline bool IsLetter(char ch) {
int CompareCaseInsensitive(const char *a, const char *b) { int CompareCaseInsensitive(const char *a, const char *b) {
while (*a && *b) { while (*a && *b) {
if (*a != *b) { if (*a != *b) {
if (IsLetter(*a) && IsLetter(*b)) { char upperA = MakeUpperCase(*a);
char upperA = MakeUpperCase(*a); char upperB = MakeUpperCase(*b);
char upperB = MakeUpperCase(*b); if (upperA != upperB)
if (upperA != upperB) return upperA - upperB;
return upperA - upperB; }
} a++;
else { b++;
return *a - *b; }
} // Either *a or *b is nul
} return *a - *b;
a++;
b++;
}
// Either *a or *b is nul
return *a - *b;
} }
int CompareNCaseInsensitive(const char *a, const char *b, int len) { int CompareNCaseInsensitive(const char *a, const char *b, int len) {
while (*a && *b && len) { while (*a && *b && len) {
if (*a != *b) { if (*a != *b) {
if (IsLetter(*a) && IsLetter(*b)) { char upperA = MakeUpperCase(*a);
char upperA = MakeUpperCase(*a); char upperB = MakeUpperCase(*b);
char upperB = MakeUpperCase(*b); if (upperA != upperB)
if (upperA != upperB) return upperA - upperB;
return upperA - upperB; }
} a++;
else { b++;
return *a - *b; len--;
} }
} if (len == 0)
a++; return 0;
b++; else
len--; // Either *a or *b is nul
} return *a - *b;
if (len == 0)
return 0;
else
// Either *a or *b is nul
return *a - *b;
} }
bool EqualCaseInsensitive(const char *a, const char *b) { bool EqualCaseInsensitive(const char *a, const char *b) {
return 0 == CompareCaseInsensitive(a, b); return 0 == CompareCaseInsensitive(a, b);
} }

View File

@@ -32,49 +32,40 @@ static inline bool IsLetter(char ch) {
int CompareCaseInsensitive(const char *a, const char *b) { int CompareCaseInsensitive(const char *a, const char *b) {
while (*a && *b) { while (*a && *b) {
if (*a != *b) { if (*a != *b) {
if (IsLetter(*a) && IsLetter(*b)) { char upperA = MakeUpperCase(*a);
char upperA = MakeUpperCase(*a); char upperB = MakeUpperCase(*b);
char upperB = MakeUpperCase(*b); if (upperA != upperB)
if (upperA != upperB) return upperA - upperB;
return upperA - upperB; }
} a++;
else { b++;
return *a - *b; }
} // Either *a or *b is nul
} return *a - *b;
a++;
b++;
}
// Either *a or *b is nul
return *a - *b;
} }
int CompareNCaseInsensitive(const char *a, const char *b, int len) { int CompareNCaseInsensitive(const char *a, const char *b, int len) {
while (*a && *b && len) { while (*a && *b && len) {
if (*a != *b) { if (*a != *b) {
if (IsLetter(*a) && IsLetter(*b)) { char upperA = MakeUpperCase(*a);
char upperA = MakeUpperCase(*a); char upperB = MakeUpperCase(*b);
char upperB = MakeUpperCase(*b); if (upperA != upperB)
if (upperA != upperB) return upperA - upperB;
return upperA - upperB; }
} a++;
else { b++;
return *a - *b; len--;
} }
} if (len == 0)
a++; return 0;
b++; else
len--; // Either *a or *b is nul
} return *a - *b;
if (len == 0)
return 0;
else
// Either *a or *b is nul
return *a - *b;
} }
bool EqualCaseInsensitive(const char *a, const char *b) { bool EqualCaseInsensitive(const char *a, const char *b) {
return 0 == CompareCaseInsensitive(a, b); return 0 == CompareCaseInsensitive(a, b);
} }