diff options
author | tjr <tjr@FreeBSD.org> | 2004-04-07 09:55:05 +0000 |
---|---|---|
committer | tjr <tjr@FreeBSD.org> | 2004-04-07 09:55:05 +0000 |
commit | 1c584f59a55cb440f0487854db33b28a08898f82 (patch) | |
tree | 12c84b3433d9dfe7221d8772b9282c58a3f99811 /lib/libc/stdio/fgetwc.c | |
parent | 226e976dd71faa4ff636611c2de2ce44dcce5ba9 (diff) | |
download | FreeBSD-src-1c584f59a55cb440f0487854db33b28a08898f82.zip FreeBSD-src-1c584f59a55cb440f0487854db33b28a08898f82.tar.gz |
Prepare to handle trivial state-dependent encodings. Full support for
state-dependent encodings with locking shifts will come later if there
is demand for it.
Diffstat (limited to 'lib/libc/stdio/fgetwc.c')
-rw-r--r-- | lib/libc/stdio/fgetwc.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/lib/libc/stdio/fgetwc.c b/lib/libc/stdio/fgetwc.c index 3a6e6e1..0b83441 100644 --- a/lib/libc/stdio/fgetwc.c +++ b/lib/libc/stdio/fgetwc.c @@ -77,6 +77,8 @@ fgetwc(FILE *fp) static __inline wint_t __fgetwc_nbf(FILE *fp) { + static const mbstate_t initial; + mbstate_t mbs; char buf[MB_LEN_MAX]; size_t n, nconv; int c; @@ -90,7 +92,8 @@ __fgetwc_nbf(FILE *fp) break; } buf[n++] = (char)c; - nconv = mbrtowc(&wc, buf, n, NULL); + mbs = initial; + nconv = mbrtowc(&wc, buf, n, &mbs); if (nconv == n) return (wc); else if (nconv == 0) |