From: Joey Adams Date: Thu, 16 Jul 2009 21:32:38 +0000 (-0400) Subject: Rusty's cleanup to ciniparser.c's strstrip and strlwc X-Git-Url: https://git.ozlabs.org/?p=ccan;a=commitdiff_plain;h=33480b45899ab1095bf95717d26f86244ca6d8e9;ds=inline Rusty's cleanup to ciniparser.c's strstrip and strlwc --- diff --git a/ccan/ciniparser/ciniparser.c b/ccan/ciniparser/ciniparser.c index 1e647c1d..dceb22f5 100644 --- a/ccan/ciniparser/ciniparser.c +++ b/ccan/ciniparser/ciniparser.c @@ -69,16 +69,9 @@ static char *strlwc(const char *s) if (s == NULL) return NULL; - memset(l, 0, ASCIILINESZ+1); - i=0; - - while (s[i] && i < ASCIILINESZ) { - l[i] = (char)tolower((int)s[i]); - i++; - } - - l[ASCIILINESZ] = (char) 0; - + for (i = 0; s[i] && i < ASCIILINESZ; i++) + l[i] = tolower(s[i]); + l[i] = '\0'; return l; } @@ -94,30 +87,26 @@ static char *strlwc(const char *s) * is statically allocated, it will be modified at each function call * (not re-entrant). */ -static char *strstrip(char *s) +static char *strstrip(const char *s) { static char l[ASCIILINESZ+1]; - char *last; + unsigned int i, numspc; if (s == NULL) return NULL; - while (isspace((int)*s) && *s) + while (isspace(*s)) s++; - memset(l, 0, ASCIILINESZ+1); - strcpy(l, s); - last = l + strlen(l); - - while (last > l) { - if (!isspace((int)*(last-1))) - break; - last --; + for (i = numspc = 0; s[i] && i < ASCIILINESZ; i++) { + l[i] = s[i]; + if (isspace(l[i])) + numspc++; + else + numspc = 0; } - - *last = (char) 0; - - return (char *) l; + l[i - numspc] = '\0'; + return l; } /**