diff options
Diffstat (limited to 'sdk/other/token.c')
-rw-r--r-- | sdk/other/token.c | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/sdk/other/token.c b/sdk/other/token.c new file mode 100644 index 0000000..c9846ed --- /dev/null +++ b/sdk/other/token.c @@ -0,0 +1,50 @@ +/* + * Alternate thread-safe string token parsing. + * $Id$ + * Copyright (c) 1997 by Tycho Softworks. + * For conditions of distribution and reuse see product license. + */ + +#include <other/string.h> + +char *token(char **ptr, const char *tok) +{ + char *p; + char *brk; + + if(strblank(*ptr)) + return NULL; + + p = strltrim(*ptr, tok); + brk = strpbrk(p, tok); + if(brk) + { + *brk = 0; + *ptr = strltrim(++brk, tok); + if(!(**ptr)) + *ptr = NULL; + } + else + *ptr = NULL; + return p; +} + +char *field(char **ptr, const char *tok) +{ + char *p = *ptr; + char *brk; + + if(strblank(p)) + return NULL; + + brk = strpbrk(p, tok); + if(brk) + { + *brk = 0; + *ptr = ++brk; + } + else + *ptr = NULL; + + return p; +} |