| ... | ... |
@@ -9,16 +9,19 @@ |
| 9 | 9 |
|
| 10 | 10 |
#include "config.h" |
| 11 | 11 |
|
| 12 |
+char *strcasechr(const char *s, char c){
|
|
| 13 |
+ const char accept[3] = {c, toupper(c), 0};
|
|
| 14 |
+ return strpbrk(s, accept); |
|
| 15 |
+} |
|
| 16 |
+ |
|
| 12 | 17 |
int has_match(const char *needle, const char *haystack){
|
| 13 | 18 |
while(*needle){
|
| 14 |
- char nch = tolower(*needle++); |
|
| 15 |
- for(;;){
|
|
| 16 |
- char ch = *haystack++; |
|
| 17 |
- if(!ch) |
|
| 18 |
- return 0; |
|
| 19 |
- else if(nch == tolower(ch)) |
|
| 20 |
- break; |
|
| 19 |
+ char nch = *needle++; |
|
| 20 |
+ |
|
| 21 |
+ if(!(haystack = strcasechr(haystack, nch))){
|
|
| 22 |
+ return 0; |
|
| 21 | 23 |
} |
| 24 |
+ haystack++; |
|
| 22 | 25 |
} |
| 23 | 26 |
return 1; |
| 24 | 27 |
} |