[FFmpeg-devel] [PATCH] Add av_stristr() function

Mans Rullgard mans
Sat Mar 6 14:29:57 CET 2010


This is a case-insensitive version of strstr().
---
 libavutil/avstring.c |   13 +++++++++++++
 libavutil/avstring.h |   13 +++++++++++++
 2 files changed, 26 insertions(+), 0 deletions(-)

diff --git a/libavutil/avstring.c b/libavutil/avstring.c
index 6d45a95..4844e28 100644
--- a/libavutil/avstring.c
+++ b/libavutil/avstring.c
@@ -48,6 +48,19 @@ int av_stristart(const char *str, const char *pfx, const char **ptr)
     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 --git a/libavutil/avstring.h b/libavutil/avstring.h
index 4e3f5df..d9f6a0f 100644
--- a/libavutil/avstring.h
+++ b/libavutil/avstring.h
@@ -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);
 
 /**
+ * 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.
  *
-- 
1.7.0




More information about the ffmpeg-devel mailing list