chiark / gitweb /
util: optimize strstrip() a bit
authorLennart Poettering <lennart@poettering.net>
Sun, 31 Jul 2011 23:18:33 +0000 (01:18 +0200)
committerLennart Poettering <lennart@poettering.net>
Sun, 31 Jul 2011 23:18:33 +0000 (01:18 +0200)
src/util.c

index cbfac6ec3b3b22c1bebfa0ba6406497d14465d10..1a61a26046b8413abb4028906c9becc441feb58d 100644 (file)
@@ -1411,21 +1411,18 @@ int reset_all_signal_handlers(void) {
 }
 
 char *strstrip(char *s) {
-        char *e, *l = NULL;
+        char *e;
 
         /* Drops trailing whitespace. Modifies the string in
          * place. Returns pointer to first non-space character */
 
         s += strspn(s, WHITESPACE);
 
-        for (e = s; *e; e++)
-                if (!strchr(WHITESPACE, *e))
-                        l = e;
+        for (e = strchr(s, 0); e > s; e --)
+                if (!strchr(WHITESPACE, e[-1]))
+                        break;
 
-        if (l)
-                *(l+1) = 0;
-        else
-                *s = 0;
+        *e = 0;
 
         return s;
 }