summaryrefslogtreecommitdiffstats
path: root/osdep/strsep.c
diff options
context:
space:
mode:
authorarpi <arpi@b3059339-0415-0410-9bf9-f77b7e298cf2>2003-02-09 20:18:23 +0000
committerarpi <arpi@b3059339-0415-0410-9bf9-f77b7e298cf2>2003-02-09 20:18:23 +0000
commit7ff83a71810233276517bc497e93ac15267bc830 (patch)
tree23e697fbbe48eae893b8c28c383199bc6ca000ad /osdep/strsep.c
parentc98692a0bf56e79781ae7ca2a1e358f518838dac (diff)
downloadmpv-7ff83a71810233276517bc497e93ac15267bc830.tar.bz2
mpv-7ff83a71810233276517bc497e93ac15267bc830.tar.xz
linux->osdep
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@9381 b3059339-0415-0410-9bf9-f77b7e298cf2
Diffstat (limited to 'osdep/strsep.c')
-rw-r--r--osdep/strsep.c42
1 files changed, 42 insertions, 0 deletions
diff --git a/osdep/strsep.c b/osdep/strsep.c
new file mode 100644
index 0000000000..863a39cc70
--- /dev/null
+++ b/osdep/strsep.c
@@ -0,0 +1,42 @@
+/* strsep implementation for systems that do not have it in libc */
+
+#include <stdio.h>
+#include <string.h>
+
+#include "../config.h"
+
+#ifndef HAVE_STRSEP
+char *strsep(char **stringp, const char *delim) {
+ char *begin, *end;
+
+ begin = *stringp;
+ if(begin == NULL)
+ return NULL;
+
+ if(delim[0] == '\0' || delim[1] == '\0') {
+ char ch = delim[0];
+
+ if(ch == '\0')
+ end = NULL;
+ else {
+ if(*begin == ch)
+ end = begin;
+ else if(*begin == '\0')
+ end = NULL;
+ else
+ end = strchr(begin + 1, ch);
+ }
+ }
+ else
+ end = strpbrk(begin, delim);
+
+ if(end) {
+ *end++ = '\0';
+ *stringp = end;
+ }
+ else
+ *stringp = NULL;
+
+ return begin;
+}
+#endif