diff -r 4d39adda7a38 -r b28cf69f42e8 src/server/ucx/string.c --- a/src/server/ucx/string.c Sat Jan 19 21:52:21 2013 +0100 +++ b/src/server/ucx/string.c Thu Feb 28 20:00:05 2013 +0100 @@ -173,27 +173,37 @@ } // webserver extension + +int sstr_startswith(sstr_t string, sstr_t cmp) { + sstr_t sub = sstrsubsl(string, 0, cmp.length); + if(!sstrcmp(sub, cmp)) { + return 1; + } else { + return 0; + } +} + sstr_t sstrtrim(sstr_t string) { sstr_t newstr = string; - int nsoff = 0; - int l = 1; - for(int i=0;i 32) { - l = 0; - nsoff = i; - newstr.ptr = &string.ptr[i]; - newstr.length = string.length - nsoff; - } - } else { - /* trailing whitespace */ - if(c > 32) { - newstr.length = (i - nsoff) + 1; - } + if(c > 32) { + break; } } + + newstr.ptr = &string.ptr[i]; + newstr.length = string.length - i; + + for(i=newstr.length-1;i>=0;i--) { + char c = newstr.ptr[i]; + if(c > 32) { + break; + } + } + newstr.length = i + 1; + return newstr; }