Originally committed as revision 9753 to svn://svn.ffmpeg.org/ffmpeg/trunktags/v0.5
| @@ -73,4 +73,18 @@ size_t av_strlcpy(char *dst, const char *src, size_t size); | |||||
| */ | */ | ||||
| size_t av_strlcat(char *dst, const char *src, size_t size); | size_t av_strlcat(char *dst, const char *src, size_t size); | ||||
| /** | |||||
| * Append output to a string, according to a format. Never write out of | |||||
| * the destination buffer, and and always put a terminating 0 within | |||||
| * the buffer. | |||||
| * @param dst destination buffer (string to which the output is | |||||
| * appended) | |||||
| * @param size total size of the destination buffer | |||||
| * @param fmt printf-compatible format string, specifying how the | |||||
| * following parameters are used | |||||
| * @return the length of the string that would have been generated | |||||
| * if enough space had been available | |||||
| */ | |||||
| size_t av_strlcatf(char *dst, size_t size, const char *fmt, ...); | |||||
| #endif /* AVUTIL_STRING_H */ | #endif /* AVUTIL_STRING_H */ | ||||
| @@ -19,6 +19,8 @@ | |||||
| * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA | ||||
| */ | */ | ||||
| #include <stdarg.h> | |||||
| #include <stdio.h> | |||||
| #include <string.h> | #include <string.h> | ||||
| #include <ctype.h> | #include <ctype.h> | ||||
| #include "avstring.h" | #include "avstring.h" | ||||
| @@ -62,3 +64,15 @@ size_t av_strlcat(char *dst, const char *src, size_t size) | |||||
| return len + strlen(src); | return len + strlen(src); | ||||
| return len + av_strlcpy(dst + len, src, size - len); | return len + av_strlcpy(dst + len, src, size - len); | ||||
| } | } | ||||
| size_t av_strlcatf(char *dst, size_t size, const char *fmt, ...) | |||||
| { | |||||
| int len = strlen(dst); | |||||
| va_list vl; | |||||
| va_start(vl, fmt); | |||||
| len += vsnprintf(dst + len, size > len ? size - len : 0, fmt, vl); | |||||
| va_end(vl); | |||||
| return len; | |||||
| } | |||||