1 #include "stdio_impl.h"
13 static size_t sw_write(FILE *f
, const unsigned char *s
, size_t l
)
17 struct cookie
*c
= f
->cookie
;
18 if (s
!=f
->wbase
&& sw_write(f
, f
->wbase
, f
->wpos
-f
->wbase
)==-1)
20 while (c
->l
&& l
&& (i
=mbtowc(c
->ws
, (void *)s
, l
))>=0) {
29 f
->wpos
= f
->wbase
= f
->wend
= 0;
33 f
->wend
= f
->buf
+ f
->buf_size
;
34 f
->wpos
= f
->wbase
= f
->buf
;
38 int vswprintf(wchar_t *restrict s
, size_t n
, const wchar_t *restrict fmt
, va_list ap
)
41 unsigned char buf
[256];
42 struct cookie c
= { s
, n
-1 };
48 .buf_size
= sizeof buf
,
55 r
= vfwprintf(&f
, fmt
, ap
);