Re: The isspace(3) man page is badly out of date (newlib)
Brian Inglis via Cygwin <[email protected]>
| Newsgroups | gmane.os.cygwin |
|---|---|
| Organization | Systematic Software |
| Message-ID | <[email protected]> |
On 2026-08-07 16:06, Keith Thompson via Cygwin wrote: > On Fri, Aug 7, 2026 at 1:28 PM Keith Thompson > <[email protected]> wrote: >> >> The `isspace(3)` man page is badly out of date. >> >> "isspace is a macro which classifies singlebyte charset values by >> table lookup. It is a predicate returning non-zero for whitespace >> characters, and 0 for other characters. It is defined only when >> isascii(c) is true or c is EOF." >> >> In fact, the ISO C standard, since C89/C90, requires that isspace(c) >> is defined when c either representable as an unsigned char or equal to >> EOF; the behavior is undefined for any other value. >> >> And the actual implementation of isspace() satisfies this requirement. >> Only the man page is out of date. >> >> The man page is generated from newlib/libc/ctype/isspace.c in the >> newlib git repo, <https://sourceware.org/git/newlib-cygwin.git>. >> >> This only affects the isspace(3) man page. The other is*(3) man pages >> are correct. >> >> A couple of minor points affecting all the <ctype.h> functions/macros: >> >> There are two occurrences of "#include <ctype.h>" in the SYNOPSIS >> section. The second occurrence is indented too far: >> >> SYNOPSIS >> #include <ctype.h> >> >> int isspace(int c); >> >> #include <ctype.h> >> >> int isspace_l(int c, locale_t locale); >> >> A lot of library man pages refer to "ANSI C". "ISO C" would be >> more accurate. The term "ANSI C" is ambiguous. Since 1990, the >> C standard is controlled by ISO; ANSI adopts each ISO C standard >> after it's published. > > I've reported this, with a proposed patch, to the > [email protected] mailing list. > > https://sourceware.org/pipermail/newlib/2026/022575.html The correct wording appears in the isspace(3p) man page when Cygwin package man-pages-posix is installed (this is the 2018 SUSv4 release, as POSIX has not yet publicly released the SUSv5 2024 man pages, although isspace(3p) has not changed since SUSv3 Issue 6 2001, but isspace_l(3p) was added in SUSv4 Issue 7 2018). -- Take care. Thanks, Brian Inglis Calgary, Alberta, Canada La perfection est atteinte Perfection is achieved non pas lorsqu'il n'y a plus rien à ajouter not when there is no more to add mais lorsqu'il n'y a plus rien à retrancher but when there is no more to cut -- Antoine de Saint-Exupéry -- Problem reports: https://cygwin.com/problems.html FAQ: https://cygwin.com/faq/ Documentation: https://cygwin.com/docs.html Unsubscribe info: https://cygwin.com/ml/#unsubscribe-simple