Add av_stristr() function
authorMåns Rullgård <mans@mansr.com>
Sat, 6 Mar 2010 19:41:22 +0000 (19:41 +0000)
committerMåns Rullgård <mans@mansr.com>
Sat, 6 Mar 2010 19:41:22 +0000 (19:41 +0000)
This is a case-insensitive version of strstr().

Originally committed as revision 22251 to svn://svn.ffmpeg.org/ffmpeg/trunk

libavutil/avstring.c
libavutil/avstring.h

index 6d45a95..4844e28 100644 (file)
@@ -48,6 +48,19 @@ int av_stristart(const char *str, const char *pfx, const char **ptr)
     return !*pfx;
 }
 
     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;
 size_t av_strlcpy(char *dst, const char *src, size_t size)
 {
     size_t len = 0;
index 4e3f5df..d9f6a0f 100644 (file)
@@ -47,6 +47,19 @@ int av_strstart(const char *str, const char *pfx, const char **ptr);
 int av_stristart(const char *str, const char *pfx, const char **ptr);
 
 /**
 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.
  *
  * Copy the string src to dst, but no more than size - 1 bytes, and
  * null-terminate dst.
  *