diff options
author | jkeil <jkeil@b3059339-0415-0410-9bf9-f77b7e298cf2> | 2002-03-29 21:24:36 +0000 |
---|---|---|
committer | jkeil <jkeil@b3059339-0415-0410-9bf9-f77b7e298cf2> | 2002-03-29 21:24:36 +0000 |
commit | de4701d8bba611b0eacfde9cd75a935665a6528d (patch) | |
tree | 3a60f4d5b7a58e98c14e8bf9fd78897e9626e22e /linux | |
parent | d40f8f30c206e8fc75dd9badb1f3cadd8dd21e48 (diff) | |
download | mpv-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/Makefile | 2 | ||||
-rw-r--r-- | linux/strsep.c | 42 |
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 |