btowc is required to interpret its argument by conversion to unsigned char, unless the argument is equal to EOF. since the conversion to produces a non-character value anyway, we can just unconditionally convert, for now.
@@ -3,5 +3,6 @@
wint_t btowc(int c)
{
+ c = (unsigned char)c;
return c<128U ? c : EOF;
}