1.1 --- a/ucx/string.c Thu Feb 28 08:50:24 2013 +0100 1.2 +++ b/ucx/string.c Fri Jun 21 10:27:03 2013 +0200 1.3 @@ -95,7 +95,7 @@ 1.4 1.5 sstr_t sstrsubsl(sstr_t s, size_t start, size_t length) { 1.6 sstr_t new_sstr; 1.7 - if (start < 0 || start >= s.length || length < 0) { 1.8 + if (start >= s.length) { 1.9 return s; 1.10 } 1.11 if (length > s.length-start) { 1.12 @@ -197,11 +197,21 @@ 1.13 newstr.ptr = &string.ptr[i]; 1.14 newstr.length = string.length - i; 1.15 1.16 - for(i=newstr.length-1;i>=0;i--) { 1.17 + if(newstr.length == 0) { 1.18 + return newstr; 1.19 + } 1.20 + 1.21 + i = newstr.length - 1; 1.22 + for(;;) { 1.23 char c = newstr.ptr[i]; 1.24 if(c > 32) { 1.25 break; 1.26 } 1.27 + if(i > 0) { 1.28 + i--; 1.29 + } else { 1.30 + break; 1.31 + } 1.32 } 1.33 newstr.length = i + 1; 1.34