Browse code

optimize cli_strcasestr()

git-svn: trunk@3472

Török Edvin authored on 2007/12/30 21:31:55
Showing 2 changed files
... ...
@@ -1,3 +1,7 @@
1
+Sun Dec 30 13:57:45 EET 2007 (edwin)
2
+-----------------------------------
3
+ * libclamav/str.c: optimize cli_strcasestr()
4
+
1 5
 Sat Dec 29 20:18:40 GMT 2007 (njh)
2 6
 ----------------------------------
3 7
   * libclamav/mbox.c:	Bug 693
... ...
@@ -406,10 +406,14 @@ const char* cli_strcasestr(const char* a, const char *b)
406 406
 	 */
407 407
 	size_t l;
408 408
 	char f[3];
409
-
410
-	snprintf(f, sizeof(f), "%c%c", tolower(*b), toupper(*b));
411
-	for (l = strcspn(a, f); l != strlen(a); l += strcspn(a + l + 1, f) + 1)
412
-		if (strncasecmp(a + l, b, strlen(b)) == 0)
409
+	const size_t strlen_a = strlen(a);
410
+	const size_t strlen_b = strlen(b);
411
+
412
+	f[0] = tolower(*b);
413
+	f[1] = toupper(*b);
414
+	f[2] = '\0';
415
+	for (l = strcspn(a, f); l != strlen_a; l += strcspn(a + l + 1, f) + 1)
416
+		if (strncasecmp(a + l, b, strlen_b) == 0)
413 417
 			return(a + l);
414 418
 	return(NULL);
415 419
 }