219 tmp =
rtalloc(
sizeof(
char) * (strlen(
str) + 1));
221 rterror(
_(
"strsplit: Not enough memory"));
226 if (!strlen(tmp) || !delimiter || !strlen(delimiter)) {
228 rtn = (
char **)
rtalloc(*n *
sizeof(
char *));
230 rterror(
_(
"strsplit: Not enough memory"));
233 rtn[0] = (
char *)
rtalloc(
sizeof(
char) * (strlen(tmp) + 1));
234 if (NULL == rtn[0]) {
235 rterror(
_(
"strsplit: Not enough memory"));
243 token = strtok(tmp, delimiter);
244 while (token != NULL) {
246 rtn = (
char **)
rtalloc(
sizeof(
char *));
249 rtn = (
char **)
rtrealloc(rtn, (*n + 1) *
sizeof(
char *));
252 rterror(
_(
"strsplit: Not enough memory"));
257 rtn[*n] = (
char *)
rtalloc(
sizeof(
char) * (strlen(token) + 1));
258 if (NULL == rtn[*n]) {
259 rterror(
_(
"strsplit: Not enough memory"));
263 strcpy(rtn[*n], token);
266 token = strtok(NULL, delimiter);
void rterror(const char *fmt,...) __attribute__((format(printf
Wrappers used for reporting errors and info.
void * rtalloc(size_t size)
Wrappers used for managing memory.
void * rtrealloc(void *mem, size_t size)
void rtdealloc(void *mem)