aboutsummaryrefslogtreecommitdiffstats
path: root/sdk/other/token.c
diff options
context:
space:
mode:
Diffstat (limited to 'sdk/other/token.c')
-rw-r--r--sdk/other/token.c50
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;
+}