summaryrefslogtreecommitdiffstats
path: root/linux
diff options
context:
space:
mode:
authorjkeil <jkeil@b3059339-0415-0410-9bf9-f77b7e298cf2>2002-03-29 21:24:36 +0000
committerjkeil <jkeil@b3059339-0415-0410-9bf9-f77b7e298cf2>2002-03-29 21:24:36 +0000
commitde4701d8bba611b0eacfde9cd75a935665a6528d (patch)
tree3a60f4d5b7a58e98c14e8bf9fd78897e9626e22e /linux
parentd40f8f30c206e8fc75dd9badb1f3cadd8dd21e48 (diff)
downloadmpv-de4701d8bba611b0eacfde9cd75a935665a6528d.tar.bz2
mpv-de4701d8bba611b0eacfde9cd75a935665a6528d.tar.xz
Add a configure test for the strsep function (it's missing on solaris)
Provide an implementation of strsep in libosdep.a, if it's missing in the system's libc library. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@5394 b3059339-0415-0410-9bf9-f77b7e298cf2
Diffstat (limited to 'linux')
-rw-r--r--linux/Makefile2
-rw-r--r--linux/strsep.c42
2 files changed, 43 insertions, 1 deletions
diff --git a/linux/Makefile b/linux/Makefile
index ec02fb2acd..4e7ec994ee 100644
--- a/linux/Makefile
+++ b/linux/Makefile
@@ -3,7 +3,7 @@ include ../config.mak
LIBNAME = libosdep.a
-SRCS=getch2.c timer-lx.c shmem.c # timer.c
+SRCS=getch2.c timer-lx.c shmem.c strsep.c # timer.c
OBJS=$(SRCS:.c=.o)
ifeq ($(TARGET_ARCH_X86),yes)
diff --git a/linux/strsep.c b/linux/strsep.c
new file mode 100644
index 0000000000..863a39cc70
--- /dev/null
+++ b/linux/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