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:
@@ -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);
|
||||||
}
|
}
|
||||||
|
@@ -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);
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user