lineedit: do not hang on error, but return error indicator.
[oweals/busybox.git] / libbb / trim.c
index d3639154022576cf1b1eec58b29218a9cae00f6c..16cb4fbb07f256794e1047041d710d3b923dd816 100644 (file)
@@ -5,27 +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 <stdio.h>
-#include <string.h>
-#include <ctype.h>
 #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);
+       if (len) {
+               char *nws = skip_whitespace(s);
+               if ((nws - s) != 0) {
+                       len -= (nws - s);
+                       memmove(s, nws, len);
+               }
        }
-       s[len] = 0;
+       s[len] = '\0';
 }