see $subject
>From 28417b86f12b8cac79090a7b341b606e59635bbe Mon Sep 17 00:00:00 2001
From: Vladimir Pantelic <[email protected]>
Date: Wed, 23 Jan 2013 14:16:10 +0100
Subject: [PATCH] Add av_strnstr() function

This is a length limited version of strstr()

Signed-off-by: Vladimir Pantelic <[email protected]>
---
 libavutil/avstring.c |   16 ++++++++++++++++
 libavutil/avstring.h |   15 +++++++++++++++
 2 files changed, 31 insertions(+), 0 deletions(-)

diff --git a/libavutil/avstring.c b/libavutil/avstring.c
index 2c88bd3..db9eee2 100644
--- a/libavutil/avstring.c
+++ b/libavutil/avstring.c
@@ -64,6 +64,22 @@ char *av_stristr(const char *s1, const char *s2)
     return NULL;
 }
 
+char *av_strnstr(const char *s1, const char *s2, size_t len)
+{
+        size_t l2;
+
+        l2 = strlen(s2);
+        if (!l2)
+                return s1;
+        while (len >= l2) {
+                len--;
+                if (!memcmp(s1, s2, l2))
+                        return s1;
+                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 acd6610..da34105 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 in the string haystack of the string needle
+ * where not more than 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 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 haystack_size);
+
+/**
  * Copy the string src to dst, but no more than size - 1 bytes, and
  * null-terminate dst.
  *
-- 
1.7.6.rc1.1.g2c162b

_______________________________________________
libav-devel mailing list
[email protected]
https://lists.libav.org/mailman/listinfo/libav-devel

Reply via email to