159 } |
159 } |
160 |
160 |
161 sstr_t sstrdup(sstr_t s) { |
161 sstr_t sstrdup(sstr_t s) { |
162 sstr_t newstring; |
162 sstr_t newstring; |
163 newstring.ptr = (char*) malloc(s.length + 1); |
163 newstring.ptr = (char*) malloc(s.length + 1); |
|
164 newstring.length = 0; |
164 if (newstring.ptr) { |
165 if (newstring.ptr) { |
165 newstring.length = s.length; |
166 newstring.length = s.length; |
166 newstring.ptr[newstring.length] = 0; |
167 newstring.ptr[newstring.length] = 0; |
167 |
168 |
168 memcpy(newstring.ptr, s.ptr, s.length); |
169 memcpy(newstring.ptr, s.ptr, s.length); |
170 newstring.length = 0; |
171 newstring.length = 0; |
171 } |
172 } |
172 |
173 |
173 return newstring; |
174 return newstring; |
174 } |
175 } |
|
176 |
|
177 sstr_t sstrtrim(sstr_t string) { |
|
178 sstr_t newstr = string; |
|
179 int i; |
|
180 for(i=0;i<string.length;i++) { |
|
181 char c = string.ptr[i]; |
|
182 if(c > 32) { |
|
183 break; |
|
184 } |
|
185 } |
|
186 newstr.ptr = &string.ptr[i]; |
|
187 newstr.length = string.length - i; |
|
188 |
|
189 for(i=newstr.length-1;i>=0;i--) { |
|
190 char c = newstr.ptr[i]; |
|
191 if(c > 32) { |
|
192 break; |
|
193 } |
|
194 } |
|
195 newstr.length = i + 1; |
|
196 |
|
197 return newstr; |
|
198 } |