lavu: Add av_strnstr()
authorVladimir Pantelic <vladoman@gmail.com>
Thu, 24 Jan 2013 14:09:48 +0000 (14:09 +0000)
committerLuca Barbato <lu_zero@gentoo.org>
Fri, 25 Jan 2013 09:47:51 +0000 (10:47 +0100)
This is a length limited version of strstr()

Signed-off-by: Vladimir Pantelic <vladoman@gmail.com>
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
Changelog
doc/APIchanges
libavutil/avstring.c
libavutil/avstring.h
libavutil/version.h

index 24f0791..c235727 100644 (file)
--- a/Changelog
+++ b/Changelog
@@ -1,6 +1,10 @@
 Entries are sorted chronologically from oldest to youngest within each release,
 releases are sorted from youngest to oldest.
 
 Entries are sorted chronologically from oldest to youngest within each release,
 releases are sorted from youngest to oldest.
 
+version 10:
+- av_strnstr
+
+
 version 9:
 - av_basename and av_dirname
 - adobe and limelight publisher authentication in RTMP
 version 9:
 - av_basename and av_dirname
 - adobe and limelight publisher authentication in RTMP
index 3120f7e..79e3cb7 100644 (file)
@@ -13,6 +13,9 @@ libavutil:     2012-10-22
 
 API changes, most recent first:
 
 
 API changes, most recent first:
 
+2013-01-xx - xxxxxxx - lavu 52.6.0 - avstring.h
+  Add av_strnstr()
+
 2013-01-xx - xxxxxxx - lavu 52.5.0 - hmac.h
   Add AVHMAC.
 
 2013-01-xx - xxxxxxx - lavu 52.5.0 - hmac.h
   Add AVHMAC.
 
index a16adcb..625f723 100644 (file)
@@ -65,6 +65,20 @@ char *av_stristr(const char *s1, const char *s2)
     return NULL;
 }
 
     return NULL;
 }
 
+char *av_strnstr(const char *haystack, const char *needle, size_t hay_length)
+{
+    size_t needle_len = strlen(needle);
+    if (!needle_len)
+        return haystack;
+    while (hay_length >= needle_len) {
+        hay_length--;
+        if (!memcmp(haystack, needle, needle_len))
+            return haystack;
+        haystack++;
+    }
+    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 acd6610..e0e6ed2 100644 (file)
@@ -66,6 +66,21 @@ int av_stristart(const char *str, const char *pfx, const char **ptr);
  */
 char *av_stristr(const char *haystack, const char *needle);
 
  */
 char *av_stristr(const char *haystack, const char *needle);
 
+/**
+ * Locate the first occurrence of the string needle in the string haystack
+ * where not more than hay_length characters are searched. A zero-length
+ * string needle is considered to match at the start of haystack.
+ *
+ * This function is a length-limited version of the standard strstr().
+ *
+ * @param haystack   string to search in
+ * @param needle     string to search for
+ * @param hay_length length of string to search in
+ * @return           pointer to the located match within haystack
+ *                   or a null pointer if no match
+ */
+char *av_strnstr(const char *haystack, const char *needle, size_t hay_length);
+
 /**
  * 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.
index 68f5752..4c9651f 100644 (file)
@@ -37,7 +37,7 @@
  */
 
 #define LIBAVUTIL_VERSION_MAJOR 52
  */
 
 #define LIBAVUTIL_VERSION_MAJOR 52
-#define LIBAVUTIL_VERSION_MINOR  5
+#define LIBAVUTIL_VERSION_MINOR  6
 #define LIBAVUTIL_VERSION_MICRO  0
 
 #define LIBAVUTIL_VERSION_INT   AV_VERSION_INT(LIBAVUTIL_VERSION_MAJOR, \
 #define LIBAVUTIL_VERSION_MICRO  0
 
 #define LIBAVUTIL_VERSION_INT   AV_VERSION_INT(LIBAVUTIL_VERSION_MAJOR, \