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

-- 
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