#include "stdio_impl.h" #include int fputws(const wchar_t *restrict ws, FILE *restrict f) { unsigned char buf[BUFSIZ]; size_t l=0; FLOCK(f); #if 0 // XXX EMSCRIPTEN f->mode |= f->mode+1; #endif while (ws && (l = wcsrtombs((void *)buf, (void*)&ws, sizeof buf, 0))+1 > 1) #if 0 // XXX EMSCRIPTEN if (__fwritex(buf, l, f) < l) { #else if (fwrite(buf, 1, l, f) < l) { #endif FUNLOCK(f); return -1; } FUNLOCK(f); return l; /* 0 or -1 */ } weak_alias(fputws, fputws_unlocked);