From 64c0cfb0bda0a9d75be6965c2defadfa28c429c9 Mon Sep 17 00:00:00 2001 From: Amaury Pouly Date: Sun, 7 Feb 2010 00:37:47 +0000 Subject: Optimize (size and speed) strncasecmp (based on a newlib patch). git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24542 a1c6a512-1295-4272-9138-f99709370657 --- firmware/common/strcasecmp.c | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) (limited to 'firmware/common') diff --git a/firmware/common/strcasecmp.c b/firmware/common/strcasecmp.c index 7bd0d61dd5..b9dd6c13c4 100644 --- a/firmware/common/strcasecmp.c +++ b/firmware/common/strcasecmp.c @@ -14,15 +14,15 @@ int strcasecmp(const char *s1, const char *s2) int strncasecmp(const char *s1, const char *s2, size_t n) { - if(!n) - return 0; - - while (n-- != 0 && tolower(*s1) == tolower(*s2)) { - if(n == 0 || *s1 == '\0') - break; - s1++; - s2++; + int d = 0; + + for(; n != 0; n--) + { + int c1 = tolower(*s1++); + int c2 = tolower(*s2++); + if((d = c1 - c2) != 0 || c2 == '\0') + break; } - - return tolower(*(unsigned char *) s1) - tolower(*(unsigned char *) s2); + + return d; } -- cgit v1.2.3