X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=libavutil%2Favstring.c;h=247cd71745d63b07ec8561213bd7d103e18232ff;hb=f955fdc7c6a8c651c9e67fb1f79d3f0b2f72df11;hp=4cebbe04a6cb0962cbd5b0c3788af34124c6d40e;hpb=86602d1c79929caa1b88b942f0074b1481b52235;p=ffmpeg diff --git a/libavutil/avstring.c b/libavutil/avstring.c index 4cebbe04a6c..247cd71745d 100644 --- a/libavutil/avstring.c +++ b/libavutil/avstring.c @@ -51,11 +51,11 @@ int av_stristart(const char *str, const char *pfx, const char **ptr) char *av_stristr(const char *s1, const char *s2) { if (!*s2) - return s1; + return (char*)(intptr_t)s1; do { if (av_stristart(s1, s2, NULL)) - return s1; + return (char*)(intptr_t)s1; } while (*s1++); return NULL; @@ -160,6 +160,35 @@ char *av_get_token(const char **buf, const char *term) return ret; } +char *av_strtok(char *s, const char *delim, char **saveptr) +{ + char *tok; + + if (!s && !(s = *saveptr)) + return NULL; + + /* skip leading delimiters */ + s += strspn(s, delim); + + /* s now points to the first non delimiter char, or to the end of the string */ + if (!*s) { + *saveptr = NULL; + return NULL; + } + tok = s++; + + /* skip non delimiters */ + s += strcspn(s, delim); + if (*s) { + *s = 0; + *saveptr = s+1; + } else { + *saveptr = NULL; + } + + return tok; +} + #ifdef TEST #undef printf