diff -r 08018864fb91 -r 9d3dea320d8e ucx/string.c --- a/ucx/string.c Thu Feb 28 08:50:24 2013 +0100 +++ b/ucx/string.c Fri Jun 21 10:27:03 2013 +0200 @@ -95,7 +95,7 @@ sstr_t sstrsubsl(sstr_t s, size_t start, size_t length) { sstr_t new_sstr; - if (start < 0 || start >= s.length || length < 0) { + if (start >= s.length) { return s; } if (length > s.length-start) { @@ -197,11 +197,21 @@ newstr.ptr = &string.ptr[i]; newstr.length = string.length - i; - for(i=newstr.length-1;i>=0;i--) { + if(newstr.length == 0) { + return newstr; + } + + i = newstr.length - 1; + for(;;) { char c = newstr.ptr[i]; if(c > 32) { break; } + if(i > 0) { + i--; + } else { + break; + } } newstr.length = i + 1;