ucx/string.c

changeset 104
9d3dea320d8e
parent 103
08018864fb91
child 108
d2b1e67b2b48
     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      

mercurial