From e08b8fcc74d6ef7b2b5d0197256422c222450f90 Mon Sep 17 00:00:00 2001 From: Roman Artiukhin Date: Sat, 10 May 2025 16:12:31 +0300 Subject: [PATCH] strcasecmp: Optimize size and speed Applies changes similar to strncasecmp in 64c0cfb0. Change-Id: I5f80b0031dd12c58d982578f5c5224c7f59cd915 --- firmware/common/strcasecmp.c | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/firmware/common/strcasecmp.c b/firmware/common/strcasecmp.c index cdfbe2f81a..24a9def904 100644 --- a/firmware/common/strcasecmp.c +++ b/firmware/common/strcasecmp.c @@ -5,12 +5,14 @@ #ifndef strcasecmp int strcasecmp(const char *s1, const char *s2) { - while (*s1 != '\0' && tolower(*s1) == tolower(*s2)) { - s1++; - s2++; + int d, c1, c2; + do + { + c1 = tolower(*s1++); + c2 = tolower(*s2++); } - - return tolower(*(unsigned char *) s1) - tolower(*(unsigned char *) s2); + while ((d = c1 - c2) == 0 && c1 && c2); + return d; } #endif