diff options
author | Michael Niedermayer <michaelni@gmx.at> | 2014-08-14 02:29:06 +0400 |
---|---|---|
committer | Michael Niedermayer <michaelni@gmx.at> | 2014-08-14 02:29:06 +0400 |
commit | c8571c61ec4c352e7eac7147b7c1644d2406189e (patch) | |
tree | 7b30d14ae332d5b9d5b79ba257cc2833d28e3855 /libavutil/mem.c | |
parent | 097bf149c92aeae8af7f3559878e046a047e892d (diff) | |
parent | 8ddc32629a6d6be77256694c9e322dde134609f3 (diff) |
Merge commit '8ddc32629a6d6be77256694c9e322dde134609f3'
* commit '8ddc32629a6d6be77256694c9e322dde134609f3':
mem: add av_strndup() for duplicating substrings
Conflicts:
libavutil/mem.c
libavutil/mem.h
libavutil/version.h
Merged-by: Michael Niedermayer <michaelni@gmx.at>
Diffstat (limited to 'libavutil/mem.c')
-rw-r--r-- | libavutil/mem.c | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/libavutil/mem.c b/libavutil/mem.c index 8226168eed..35a82e8a2d 100644 --- a/libavutil/mem.c +++ b/libavutil/mem.c @@ -267,6 +267,26 @@ char *av_strdup(const char *s) return ptr; } +char *av_strndup(const char *s, size_t len) +{ + char *ret = NULL, *end; + + if (!s) + return NULL; + + end = memchr(s, 0, len); + if (end) + len = end - s; + + ret = av_realloc(NULL, len + 1); + if (!ret) + return NULL; + + memcpy(ret, s, len); + ret[len] = 0; + return ret; +} + void *av_memdup(const void *p, size_t size) { void *ptr = NULL; |