[FFmpeg-cvslog] lavu: Add av_strnstr()

Vladimir Pantelic git at videolan.org
Fri Jan 25 14:45:16 CET 2013


ffmpeg | branch: master | Vladimir Pantelic <vladoman at gmail.com> | Thu Jan 24 14:09:48 2013 +0000| [b85a5e87af4254b80913fe33591d96361f30832b] | committer: Luca Barbato

lavu: Add av_strnstr()

This is a length limited version of strstr()

Signed-off-by: Vladimir Pantelic <vladoman at gmail.com>
Signed-off-by: Luca Barbato <lu_zero at gentoo.org>

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=b85a5e87af4254b80913fe33591d96361f30832b
---

 Changelog            |    4 ++++
 doc/APIchanges       |    3 +++
 libavutil/avstring.c |   14 ++++++++++++++
 libavutil/avstring.h |   15 +++++++++++++++
 libavutil/version.h  |    2 +-
 5 files changed, 37 insertions(+), 1 deletion(-)

diff --git a/Changelog b/Changelog
index 24f0791..c235727 100644
--- 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.
 
+version 10:
+- av_strnstr
+
+
 version 9:
 - av_basename and av_dirname
 - adobe and limelight publisher authentication in RTMP
diff --git a/doc/APIchanges b/doc/APIchanges
index 3120f7e..79e3cb7 100644
--- a/doc/APIchanges
+++ b/doc/APIchanges
@@ -13,6 +13,9 @@ libavutil:     2012-10-22
 
 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.
 
diff --git a/libavutil/avstring.c b/libavutil/avstring.c
index a16adcb..625f723 100644
--- a/libavutil/avstring.c
+++ b/libavutil/avstring.c
@@ -65,6 +65,20 @@ char *av_stristr(const char *s1, const char *s2)
     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;
diff --git a/libavutil/avstring.h b/libavutil/avstring.h
index acd6610..e0e6ed2 100644
--- a/libavutil/avstring.h
+++ b/libavutil/avstring.h
@@ -67,6 +67,21 @@ int av_stristart(const char *str, const char *pfx, const char **ptr);
 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.
  *
diff --git a/libavutil/version.h b/libavutil/version.h
index 68f5752..4c9651f 100644
--- a/libavutil/version.h
+++ b/libavutil/version.h
@@ -37,7 +37,7 @@
  */
 
 #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, \



More information about the ffmpeg-cvslog mailing list