diff options
| -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) { | 
