src/string.c

branch
constsstr
changeset 288
6af5798342e8
parent 276
f1b2146d4805
child 300
d1f814633049
     1.1 --- a/src/string.c	Sun Apr 01 09:51:01 2018 +0200
     1.2 +++ b/src/string.c	Tue May 08 12:49:56 2018 +0200
     1.3 @@ -65,13 +65,14 @@
     1.4  }
     1.5  
     1.6  
     1.7 -size_t sstrnlen(size_t n, sstr_t s, ...) {
     1.8 +size_t ucx_strnlen(size_t n, ...) {
     1.9      va_list ap;
    1.10 -    size_t size = s.length;
    1.11 -    va_start(ap, s);
    1.12 +    va_start(ap, n);
    1.13 +    
    1.14 +    size_t size = 0;
    1.15  
    1.16 -    for (size_t i = 1 ; i < n ; i++) {
    1.17 -        sstr_t str = va_arg(ap, sstr_t);
    1.18 +    for (size_t i = 0 ; i < n ; i++) {
    1.19 +        scstr_t str = va_arg(ap, scstr_t);
    1.20          if(((size_t)-1) - str.length < size) {
    1.21              size = 0;
    1.22              break;
    1.23 @@ -86,8 +87,7 @@
    1.24  static sstr_t sstrvcat_a(
    1.25          UcxAllocator *a,
    1.26          size_t count,
    1.27 -        sstr_t s1,
    1.28 -        sstr_t s2,
    1.29 +        scstr_t s1,
    1.30          va_list ap) {
    1.31      sstr_t str;
    1.32      str.ptr = NULL;
    1.33 @@ -96,11 +96,13 @@
    1.34          return str;
    1.35      }
    1.36      
    1.37 +    scstr_t s2 = va_arg (ap, scstr_t);
    1.38 +    
    1.39      if(((size_t)-1) - s1.length < s2.length) {
    1.40          return str;
    1.41      }
    1.42      
    1.43 -    sstr_t *strings = (sstr_t*) calloc(count, sizeof(sstr_t));
    1.44 +    scstr_t *strings = (scstr_t*) calloc(count, sizeof(scstr_t));
    1.45      if(!strings) {
    1.46          return str;
    1.47      }
    1.48 @@ -111,7 +113,7 @@
    1.49      size_t slen = s1.length + s2.length;
    1.50      int error = 0;
    1.51      for (size_t i=2;i<count;i++) {
    1.52 -        sstr_t s = va_arg (ap, sstr_t);
    1.53 +        scstr_t s = va_arg (ap, scstr_t);
    1.54          strings[i] = s;
    1.55          if(((size_t)-1) - s.length < slen) {
    1.56              error = 1;
    1.57 @@ -136,7 +138,7 @@
    1.58      // concatenate strings
    1.59      size_t pos = 0;
    1.60      for (size_t i=0;i<count;i++) {
    1.61 -        sstr_t s = strings[i];
    1.62 +        scstr_t s = strings[i];
    1.63          memcpy(str.ptr + pos, s.ptr, s.length);
    1.64          pos += s.length;
    1.65      }
    1.66 @@ -148,18 +150,18 @@
    1.67      return str;
    1.68  }
    1.69  
    1.70 -sstr_t sstrcat(size_t count, sstr_t s1, sstr_t s2, ...) {
    1.71 +sstr_t ucx_strcat(size_t count, scstr_t s1, ...) {
    1.72      va_list ap;
    1.73 -    va_start(ap, s2);
    1.74 -    sstr_t s = sstrvcat_a(ucx_default_allocator(), count, s1, s2, ap);
    1.75 +    va_start(ap, s1);
    1.76 +    sstr_t s = sstrvcat_a(ucx_default_allocator(), count, s1, ap);
    1.77      va_end(ap);
    1.78      return s;
    1.79  }
    1.80  
    1.81 -sstr_t sstrcat_a(UcxAllocator *a, size_t count, sstr_t s1, sstr_t s2, ...) {
    1.82 +sstr_t ucx_strcat_a(UcxAllocator *a, size_t count, scstr_t s1, ...) {
    1.83      va_list ap;
    1.84 -    va_start(ap, s2);
    1.85 -    sstr_t s = sstrvcat_a(a, count, s1, s2, ap);
    1.86 +    va_start(ap, s1);
    1.87 +    sstr_t s = sstrvcat_a(a, count, s1, ap);
    1.88      va_end(ap);
    1.89      return s;
    1.90  }

mercurial