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
