ucx/string.c

changeset 43
03076907b58a
parent 39
3e55bed345f9
child 70
88092b88ec00
equal deleted inserted replaced
42:6518b035a9df 43:03076907b58a
95 } 95 }
96 96
97 sstr_t sstrsubsl(sstr_t s, size_t start, size_t length) { 97 sstr_t sstrsubsl(sstr_t s, size_t start, size_t length) {
98 sstr_t new_sstr; 98 sstr_t new_sstr;
99 if (start >= s.length) { 99 if (start >= s.length) {
100 return s; 100 //return s;
101 new_sstr.ptr = NULL;
102 new_sstr.length = 0;
103 return new_sstr;
101 } 104 }
102 if (length > s.length-start) { 105 if (length > s.length-start) {
103 length = s.length-start; 106 length = s.length-start;
104 } 107 }
105 new_sstr.ptr = &s.ptr[start]; 108 new_sstr.ptr = &s.ptr[start];
137 return sstrsplit_a(ucx_default_allocator(), s, d, n); 140 return sstrsplit_a(ucx_default_allocator(), s, d, n);
138 } 141 }
139 142
140 sstr_t* sstrsplit_a(UcxAllocator *allocator, sstr_t s, sstr_t d, size_t *n) { 143 sstr_t* sstrsplit_a(UcxAllocator *allocator, sstr_t s, sstr_t d, size_t *n) {
141 if (s.length == 0 || d.length == 0) { 144 if (s.length == 0 || d.length == 0) {
142 *n = -1; 145 *n = 0;
143 return NULL; 146 return NULL;
144 } 147 }
145 148
146 sstr_t* result; 149 sstr_t* result;
147 size_t nmax = *n; 150 size_t nmax = *n;

mercurial