add pa_vsnprintf()

git-svn-id: file:///home/lennart/svn/public/pulseaudio/branches/glitch-free@2434 fefdeb5f-60dc-0310-8127-8f9354f1896f
This commit is contained in:
Lennart Poettering 2008-05-15 22:14:45 +00:00
parent 1a2e5a8a80
commit b57c520149
2 changed files with 19 additions and 2 deletions

View file

@ -1592,12 +1592,28 @@ int pa_snprintf(char *str, size_t size, const char *format, ...) {
pa_assert(format); pa_assert(format);
va_start(ap, format); va_start(ap, format);
ret = vsnprintf(str, size, format, ap); ret = pa_vsnprintf(str, size, format, ap);
va_end(ap); va_end(ap);
return ret;
}
/* Same as vsnprintf, but guarantees NUL-termination on every platform */
int pa_vsnprintf(char *str, size_t size, const char *format, va_list ap) {
int ret;
pa_assert(str);
pa_assert(size > 0);
pa_assert(format);
ret = vsnprintf(str, size, format, ap);
str[size-1] = 0; str[size-1] = 0;
return ret; if (ret < 0)
ret = strlen(str);
return PA_MIN((int) size-1, ret);
} }
/* Truncate the specified string, but guarantee that the string /* Truncate the specified string, but guarantee that the string

View file

@ -128,6 +128,7 @@ int pa_atou(const char *s, uint32_t *ret_u);
int pa_atof(const char *s, float *ret_f); int pa_atof(const char *s, float *ret_f);
int pa_snprintf(char *str, size_t size, const char *format, ...); int pa_snprintf(char *str, size_t size, const char *format, ...);
int pa_vsnprintf(char *str, size_t size, const char *format, va_list ap);
char *pa_truncate_utf8(char *c, size_t l); char *pa_truncate_utf8(char *c, size_t l);