mirror of
https://gitlab.freedesktop.org/pulseaudio/pulseaudio.git
synced 2025-11-07 13:30:03 -05:00
add our own implementation for pa_snprintf() because NUL termination is apparently not guaranteed on windows and a couple of other libcs
git-svn-id: file:///home/lennart/svn/public/pulseaudio/branches/lennart@1531 fefdeb5f-60dc-0310-8127-8f9354f1896f
This commit is contained in:
parent
9e9dc0b14d
commit
2380ad9254
2 changed files with 21 additions and 1 deletions
|
|
@ -31,7 +31,6 @@
|
|||
#include <stdlib.h>
|
||||
#include <signal.h>
|
||||
#include <errno.h>
|
||||
#include <assert.h>
|
||||
#include <string.h>
|
||||
#include <stdio.h>
|
||||
#include <fcntl.h>
|
||||
|
|
@ -83,6 +82,7 @@
|
|||
#include <pulsecore/core-error.h>
|
||||
#include <pulsecore/winsock.h>
|
||||
#include <pulsecore/log.h>
|
||||
#include <pulsecore/macro.h>
|
||||
|
||||
#include "core-util.h"
|
||||
|
||||
|
|
@ -1202,3 +1202,21 @@ int pa_atou(const char *s, uint32_t *ret_u) {
|
|||
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* Same as snprintf, but guarantees NUL-termination on every platform */
|
||||
int pa_snprintf(char *str, size_t size, const char *format, ...) {
|
||||
int ret;
|
||||
va_list ap;
|
||||
|
||||
pa_assert(str);
|
||||
pa_assert(size > 0);
|
||||
pa_assert(format);
|
||||
|
||||
va_start(ap, format);
|
||||
ret = vsnprintf(str, size, format, ap);
|
||||
va_end(ap);
|
||||
|
||||
str[size-1] = 0;
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -92,4 +92,6 @@ char *pa_runtime_path(const char *fn, char *s, size_t l);
|
|||
int pa_atoi(const char *s, int32_t *ret_i);
|
||||
int pa_atou(const char *s, uint32_t *ret_u);
|
||||
|
||||
int pa_snprintf(char *str, size_t size, const char *format, ...);
|
||||
|
||||
#endif
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue