Changes in uspace/lib/posix/source/string.c [12b29f3:fdf97f6] in mainline
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/lib/posix/source/string.c
r12b29f3 rfdf97f6 508 508 509 509 return NULL; 510 }511 512 /** Split string by delimiters.513 *514 * @param s String to be tokenized. May not be NULL.515 * @param delim String with the delimiters.516 * @return Pointer to the prefix of @a s before the first517 * delimiter character. NULL if no such prefix518 * exists.519 */520 char *posix_strtok(char *s, const char *delim)521 {522 static char *next;523 524 return posix_strtok_r(s, delim, &next);525 }526 527 528 /** Split string by delimiters.529 *530 * @param s String to be tokenized. May not be NULL.531 * @param delim String with the delimiters.532 * @param next Variable which will receive the pointer to the533 * continuation of the string following the first534 * occurrence of any of the delimiter characters.535 * May be NULL.536 * @return Pointer to the prefix of @a s before the first537 * delimiter character. NULL if no such prefix538 * exists.539 */540 char *posix_strtok_r(char *s, const char *delim, char **next)541 {542 char *start, *end;543 544 if (s == NULL)545 s = *next;546 547 /* Skip over leading delimiters. */548 while (*s && (posix_strchr(delim, *s) != NULL)) ++s;549 start = s;550 551 /* Skip over token characters. */552 while (*s && (posix_strchr(delim, *s) == NULL)) ++s;553 end = s;554 *next = (*s ? s + 1 : s);555 556 if (start == end) {557 return NULL; /* No more tokens. */558 }559 560 /* Overwrite delimiter with NULL terminator. */561 *end = '\0';562 return start;563 510 } 564 511
Note:
See TracChangeset
for help on using the changeset viewer.