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; |