Browse code

Rewrite has_match using strpbrk

John Hawthorn authored on 22/09/2014 06:13:09
Showing 1 changed files

  • match.c index 5551e13..f915110 100644
... ...
@@ -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
 }