# HG changeset patch # User mru # Date 1267904482 0 # Node ID 536c2e94defa161ad0a2c2a377a9ed7641c24393 # Parent d0230d2b1696e106959ef3f460bdb11451ca238b Add av_stristr() function This is a case-insensitive version of strstr(). diff -r d0230d2b1696 -r 536c2e94defa avstring.c --- a/avstring.c Sat Mar 06 14:24:59 2010 +0000 +++ b/avstring.c Sat Mar 06 19:41:22 2010 +0000 @@ -48,6 +48,19 @@ return !*pfx; } +char *av_stristr(const char *s1, const char *s2) +{ + if (!*s2) + return s1; + + do { + if (av_stristart(s1, s2, NULL)) + return s1; + } while (*s1++); + + return NULL; +} + size_t av_strlcpy(char *dst, const char *src, size_t size) { size_t len = 0; diff -r d0230d2b1696 -r 536c2e94defa avstring.h --- a/avstring.h Sat Mar 06 14:24:59 2010 +0000 +++ b/avstring.h Sat Mar 06 19:41:22 2010 +0000 @@ -47,6 +47,19 @@ int av_stristart(const char *str, const char *pfx, const char **ptr); /** + * Locate the first case-independent occurrence in the string s1 of + * the string s2. A zero-length string s2 is considered to match at + * the start of s1. + * + * This function is a case-insensitive version of the standard strstr(). + * + * @param s1 string to search in + * @param s2 string to search for + * @return pointer to the located match within s1 or a null pointer if no match + */ +char *av_stristr(const char *s1, const char *s2); + +/** * Copy the string src to dst, but no more than size - 1 bytes, and * null-terminate dst. *