aboutsummaryrefslogtreecommitdiffstats
path: root/sdk/other/token.c
diff options
context:
space:
mode:
authorWilliam Harrington <kb0iic@berzerkula.org>2025-01-14 16:06:02 -0600
committerWilliam Harrington <kb0iic@berzerkula.org>2025-01-14 16:06:02 -0600
commit0cc9b20c15460213e488bf5e70963b941482f628 (patch)
treebb0143245583ec846630f39bfa2258dba640ccd7 /sdk/other/token.c
parent0e084ade5069756d487b5c948c48b777e37c00c9 (diff)
Add source.
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;
+}