diff options
author | Vladimir Pantelic <vladoman@gmail.com> | 2013-01-24 14:09:48 +0000 |
---|---|---|
committer | Luca Barbato <lu_zero@gentoo.org> | 2013-01-25 10:47:51 +0100 |
commit | b85a5e87af4254b80913fe33591d96361f30832b (patch) | |
tree | c455a00d43d40bfb52080ab6f4ad8da3d2cdb4fb | |
parent | a84fb6e06f7f13e61b5dad0224fa392ebe65e294 (diff) | |
download | ffmpeg-b85a5e87af4254b80913fe33591d96361f30832b.tar.gz |
lavu: Add av_strnstr()
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>
-rw-r--r-- | Changelog | 4 | ||||
-rw-r--r-- | doc/APIchanges | 3 | ||||
-rw-r--r-- | libavutil/avstring.c | 14 | ||||
-rw-r--r-- | libavutil/avstring.h | 15 | ||||
-rw-r--r-- | libavutil/version.h | 2 |
5 files changed, 37 insertions, 1 deletions
@@ -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 3120f7ee6a..79e3cb79a0 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 a16adcb3fe..625f723686 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 acd6610d38..e0e6ed26f5 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 68f5752f05..4c9651fae2 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, \ |