Subject: isprint() and isblank()
To: None <firstname.lastname@example.org>
From: Jun-ichiro itojun Hagino <email@example.com>
Date: 01/21/2001 02:15:40
related to PR 11993.
ISO/IEC 9899:1999(E) tells us the following.
The current NetBSD declaration of C locale (lib/libc/gen/ctype_.c)
is incorrect about isblank('\t'). i think we should correct it.
it is very easy, just make isblank('\t') from false to true.
next, if you look at /usr/include/ctype.h, it says like this:
>#define isprint(c) ((int)((_ctype_ + 1)[(int)(c)] & (_P|_U|_L|_N|_B)))
_B is the flag bit for isblank. so any value "x" that makes isblank(x)
to true, will make isprint(x) to true. so isprint('\t') becomes true.
is it correct? if not, i intend to correct it too.
(blah blah) The standard blank characters are the following:
space (' '), and horizontal tab ('\t'). In the "C" locale, isblank
returns true only for the standard blank characters.
The isprint function tests for any printing character including space