ucx/string.c

changeset 146
aa376dba1ba8
parent 125
fca8efb122de
child 148
c27c2425c0b1
     1.1 --- a/ucx/string.c	Wed Aug 14 16:07:49 2013 +0200
     1.2 +++ b/ucx/string.c	Fri Aug 16 13:40:10 2013 +0200
     1.3 @@ -252,3 +252,34 @@
     1.4      
     1.5      return newstr;
     1.6  }
     1.7 +
     1.8 +int sstrprefix(sstr_t string, sstr_t prefix) {
     1.9 +    if (string.length == 0) {
    1.10 +        return prefix.length == 0;
    1.11 +    }
    1.12 +    if (prefix.length == 0) {
    1.13 +        return 1;
    1.14 +    }
    1.15 +    
    1.16 +    if (prefix.length > string.length) {
    1.17 +        return 0;
    1.18 +    } else {
    1.19 +        return memcmp(string.ptr, prefix.ptr, prefix.length) == 0;
    1.20 +    }
    1.21 +}
    1.22 +
    1.23 +int sstrsuffix(sstr_t string, sstr_t suffix) {
    1.24 +    if (string.length == 0) {
    1.25 +        return suffix.length == 0;
    1.26 +    }
    1.27 +    if (suffix.length == 0) {
    1.28 +        return 1;
    1.29 +    }
    1.30 +    
    1.31 +    if (suffix.length > string.length) {
    1.32 +        return 0;
    1.33 +    } else {
    1.34 +        return memcmp(string.ptr+string.length-suffix.length,
    1.35 +            suffix.ptr, suffix.length) == 0;
    1.36 +    }
    1.37 +}

mercurial