diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/stdio/vswprintf.c | 17 |
1 files changed, 8 insertions, 9 deletions
diff --git a/src/stdio/vswprintf.c b/src/stdio/vswprintf.c index 6eb2f6ac..38efed65 100644 --- a/src/stdio/vswprintf.c +++ b/src/stdio/vswprintf.c @@ -1,6 +1,5 @@ #include "stdio_impl.h" #include <limits.h> -#include <string.h> #include <errno.h> #include <stdint.h> #include <wchar.h> @@ -37,17 +36,17 @@ static size_t sw_write(FILE *f, const unsigned char *s, size_t l) int vswprintf(wchar_t *restrict s, size_t n, const wchar_t *restrict fmt, va_list ap) { int r; - FILE f; unsigned char buf[256]; struct cookie c = { s, n-1 }; + FILE f = { + .lbf = EOF, + .write = sw_write, + .lock = -1, + .buf = buf, + .buf_size = sizeof buf, + .cookie = &c, + }; - memset(&f, 0, sizeof(FILE)); - f.lbf = EOF; - f.write = sw_write; - f.buf_size = sizeof buf; - f.buf = buf; - f.lock = -1; - f.cookie = &c; if (!n) { return -1; } else if (n > INT_MAX) { |