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

Reply via email to