lineedit: do not hang on error, but return error indicator.
[oweals/busybox.git] / libbb / trim.c
index 4957d7276c62244badf144b6198ff60286bf4a06..16cb4fbb07f256794e1047041d710d3b923dd816 100644 (file)
@@ -5,23 +5,26 @@
  * Copyright (C) many different people.
  * If you wrote this, please acknowledge your work.
  *
- * Licensed under GPLv2 or later, see file LICENSE in this tarball for details.
+ * Licensed under GPLv2 or later, see file LICENSE in this source tree.
  */
 
 #include "libbb.h"
 
-void trim(char *s)
+void FAST_FUNC trim(char *s)
 {
        size_t len = strlen(s);
-       size_t lws;
 
        /* trim trailing whitespace */
-       while (len && isspace(s[len-1])) --len;
+       while (len && isspace(s[len-1]))
+               --len;
 
        /* trim leading whitespace */
        if (len) {
-               lws = strspn(s, " \n\r\t\v");
-               memmove(s, s + lws, len -= lws);
+               char *nws = skip_whitespace(s);
+               if ((nws - s) != 0) {
+                       len -= (nws - s);
+                       memmove(s, nws, len);
+               }
        }
        s[len] = '\0';
 }