Mercurial > mplayer.hg
diff linux/strsep.c @ 5393:cbf0fed4d211
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.
author | jkeil |
---|---|
date | Fri, 29 Mar 2002 21:24:36 +0000 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/linux/strsep.c Fri Mar 29 21:24:36 2002 +0000 @@ -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