iswcntrl() regression

Bruno Haible bruno@clisp.org
Wed Dec 19 21:46:00 GMT 2018


Hello Thomas,

Oops 1: I forgot to add the reference to POSIX:
http://pubs.opengroup.org/onlinepubs/9699919799/functions/iswcntrl.html

Oops 2:
The relevant expression is iswcntrl (WEOF), not iswcntrl (EOF).

> > Are there any other special requirements concerning EOF?

WEOF is a special value. The difference between wint_t and wchar_t is
essentially that WEOF fits into wint_t but is not guaranteed to fit in wchar_t.
(Like EOF fits into 'int' but usually does not fit in 'unsigned char'.)

WEOF is special for all functions declared in <wctype.h>, see

http://pubs.opengroup.org/onlinepubs/9699919799/functions/iswalnum.html
http://pubs.opengroup.org/onlinepubs/9699919799/functions/iswalpha.html
http://pubs.opengroup.org/onlinepubs/9699919799/functions/iswblank.html
http://pubs.opengroup.org/onlinepubs/9699919799/functions/iswcntrl.html
http://pubs.opengroup.org/onlinepubs/9699919799/functions/iswdigit.html
http://pubs.opengroup.org/onlinepubs/9699919799/functions/iswgraph.html
http://pubs.opengroup.org/onlinepubs/9699919799/functions/iswlower.html
http://pubs.opengroup.org/onlinepubs/9699919799/functions/iswprint.html
http://pubs.opengroup.org/onlinepubs/9699919799/functions/iswpunct.html
http://pubs.opengroup.org/onlinepubs/9699919799/functions/iswspace.html
http://pubs.opengroup.org/onlinepubs/9699919799/functions/iswupper.html
http://pubs.opengroup.org/onlinepubs/9699919799/functions/iswxdigit.html
http://pubs.opengroup.org/onlinepubs/9699919799/functions/iswctype.html

http://pubs.opengroup.org/onlinepubs/9699919799/functions/towlower.html
http://pubs.opengroup.org/onlinepubs/9699919799/functions/towupper.html
http://pubs.opengroup.org/onlinepubs/9699919799/functions/towctrans.html

> this could be fixed in iswcntrl_l.c as a special condition, or
> injected as a special case in the categories.t table.

Probably, yes.

Bruno


--
Problem reports:       http://cygwin.com/problems.html
FAQ:                   http://cygwin.com/faq/
Documentation:         http://cygwin.com/docs.html
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple



More information about the Cygwin mailing list