#include "stdio_impl.h" | |
wint_t __fgetwc_unlocked(FILE *); | |
wchar_t *fgetws(wchar_t *s, int n, FILE *f) | |
{ | |
wchar_t *p = s; | |
if (!n--) return s; | |
FLOCK(f); | |
for (; n; n--) { | |
wint_t c = __fgetwc_unlocked(f); | |
if (c == WEOF) break; | |
*p++ = c; | |
if (c == '\n') break; | |
} | |
*p = 0; | |
if (ferror(f)) p = s; | |
FUNLOCK(f); | |
return (p == s) ? NULL : s; | |
} | |
weak_alias(fgetws, fgetws_unlocked); |