ucx/string.c

changeset 81
8e186185422c
parent 70
88092b88ec00
child 110
53895e9a4bbb
--- a/ucx/string.c	Tue Mar 31 09:43:42 2015 +0200
+++ b/ucx/string.c	Tue Mar 31 10:18:55 2015 +0200
@@ -29,6 +29,7 @@
 #include <stdlib.h>
 #include <string.h>
 #include <stdarg.h>
+#include <ctype.h>
 
 #include "string.h"
 #include "allocator.h"
@@ -296,38 +297,15 @@
 
 sstr_t sstrtrim(sstr_t string) {
     sstr_t newstr = string;
-    if (string.length == 0) {
-        return newstr;
-    }
     
-    size_t i;
-    for(i=0;i<string.length;i++) {
-        char c = string.ptr[i];
-        if(c > 32) {
-            break;
-        }
+    while (newstr.length > 0 && isspace(*newstr.ptr)) {
+        newstr.ptr++;
+        newstr.length--;
     }
-    newstr.ptr = &string.ptr[i];
-    newstr.length = string.length - i;
-    
-    if(newstr.length == 0) {
-        return newstr;
+    while (newstr.length > 0 && isspace(newstr.ptr[newstr.length-1])) {
+        newstr.length--;
     }
     
-    i = newstr.length - 1;
-    for(;;) {
-        char c = newstr.ptr[i];
-        if(c > 32) {
-            break;
-        }
-        if(i > 0) {
-            i--;
-        } else {
-            break;
-        }
-    }
-    newstr.length = i + 1;
-    
     return newstr;
 }
 

mercurial