mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2025-02-09 14:14:39 +02:00
Implement av_strlcatf(): a strlcat which adds a printf style formatted string
Originally committed as revision 9753 to svn://svn.ffmpeg.org/ffmpeg/trunk
This commit is contained in:
parent
614e9b2424
commit
1e7f363804
@ -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;
|
||||||
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user