source:
azure_iot_hub/trunk/musl-1.1.18/src/stdio/fputws.c
Last change on this file was 389, checked in by , 5 years ago | |
---|---|
|
|
File size: 519 bytes |
Line | |
---|---|
1 | #include "stdio_impl.h" |
2 | #include "locale_impl.h" |
3 | #include <wchar.h> |
4 | |
5 | int fputws(const wchar_t *restrict ws, FILE *restrict f) |
6 | { |
7 | unsigned char buf[BUFSIZ]; |
8 | size_t l=0; |
9 | locale_t *ploc = &CURRENT_LOCALE, loc = *ploc; |
10 | |
11 | FLOCK(f); |
12 | |
13 | fwide(f, 1); |
14 | *ploc = f->locale; |
15 | |
16 | while (ws && (l = wcsrtombs((void *)buf, (void*)&ws, sizeof buf, 0))+1 > 1) |
17 | if (__fwritex(buf, l, f) < l) { |
18 | FUNLOCK(f); |
19 | *ploc = loc; |
20 | return -1; |
21 | } |
22 | |
23 | FUNLOCK(f); |
24 | |
25 | *ploc = loc; |
26 | return l; /* 0 or -1 */ |
27 | } |
28 | |
29 | weak_alias(fputws, fputws_unlocked); |
Note:
See TracBrowser
for help on using the repository browser.