From 65ee447a029b37484a22272082fbdf876915c7ec Mon Sep 17 00:00:00 2001 From: Corinna Vinschen Date: Tue, 6 Apr 2010 14:46:31 +0000 Subject: * libc/stdlib/btowc.c (btowc): Reorganize EOF check. Fix incorrect return value if input byte is ASCII NUL. --- newlib/libc/stdlib/btowc.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) (limited to 'newlib/libc/stdlib') diff --git a/newlib/libc/stdlib/btowc.c b/newlib/libc/stdlib/btowc.c index f5ef4624a..ec6c29152 100644 --- a/newlib/libc/stdlib/btowc.c +++ b/newlib/libc/stdlib/btowc.c @@ -13,6 +13,9 @@ btowc (int c) wchar_t pwc; unsigned char b; + if (c == EOF) + return WEOF; + b = (unsigned char)c; /* Put mbs in initial state. */ @@ -22,8 +25,8 @@ btowc (int c) retval = __mbtowc (_REENT, &pwc, &b, 1, __locale_charset (), &mbs); - if (c == EOF || retval != 1) + if (retval != 0 && retval != 1) return WEOF; - else - return (wint_t)pwc; + + return (wint_t)pwc; } -- cgit v1.2.3