Home | History | Annotate | Download | only in include
History log of /src/include/ctype.h
RevisionDateAuthorComments
 1.35  20-Mar-2020  joerg Fix visibility of various C99 features, esp. for C++11.
 1.34  28-Apr-2013  joerg branches: 1.34.28;
Include at least ctype_bits.h, even when not providing the macros.
 1.33  26-Apr-2013  joerg Do not define the ctype(3) interface via macros for C++.
 1.32  16-Apr-2013  joerg Add isalpha_l and friends.
 1.31  01-Jun-2010  tnozaki branches: 1.31.6; 1.31.12;
more split ctype.h -> sys/ctype_inline.h, sys/ctype_bits.h
 1.30  22-May-2010  tnozaki 1. hide _CTYPE_PRIVATE section in ctype.h, move them to private header ctype_local.h.
2. do not use _CTYPE_NUM_CHARS macro to read data from LC_CTYPE(old BSDCTYPE style) database.
because 1<<CHAR_BIT is MD, so i added MI macro _CTYPE_CACHE_SIZE(1<<8).
3. remove _NB_CACHED_RUNE macro, use _CTYPE_CACHE_SIZE instead.
 1.29  26-Dec-2005  perry branches: 1.29.38;
u_intN_t -> uintN_t
 1.28  15-Apr-2005  rillig Replaced the macro name "notyet" with a 0. There's always the possibility
that a strictly conforming C program uses that name itself, so it had to
be removed. Also put the long comment above the #if 0, because it describes
the #if, not the isblank() macro. Added two blank lines to make the grouping
clear. Approved by kleink.
 1.27  03-Feb-2005  perry branches: 1.27.2;
de-__P -- the hack is long since useless. Discussed with christos,
matt, kleink, others. Approved by christos.
 1.26  05-Nov-2004  dsl Remove the (int) cast from the array subscript of the ctype #defines.
The cast just stops gcc detecting places where the functions are
passed a 'char' variable - and will index off the array for byte values
0x80 to 0xff.
All (I hope) of the places in the netbsd sources where this was a
potential problem have had an (unsigned char) cast applied.
Christos said he'll fix any fallout I've missed.
 1.25  22-Oct-2003  kleink branches: 1.25.4;
_ISO_C99_SOURCE -> _ISOC99_SOURCE
 1.24  07-Aug-2003  agc Move UCB-licensed code from 4-clause to 3-clause licence.

Patches provided by Joel Baker in PR 22270, verified by myself.
 1.23  29-Apr-2003  bjh21 Header file cleanup:
* Sort includes.
* isblank() is in C99, POSIX 2001 and XSH6. Update ifdefs accordingly.
 1.22  28-Apr-2003  bjh21 Add a new feature-test macro, _NETBSD_SOURCE. If this is defined
by the application, all NetBSD interfaces are made visible, even
if some other feature-test macro (like _POSIX_C_SOURCE) is defined.
<sys/featuretest.h> defined _NETBSD_SOURCE if none of _ANSI_SOURCE,
_POSIX_C_SOURCE and _XOPEN_SOURCE is defined, so as to preserve
existing behaviour.

This has two major advantages:
+ Programs that require non-POSIX facilities but define _POSIX_C_SOURCE
can trivially be overruled by putting -D_NETBSD_SOURCE in their CFLAGS.
+ It makes most of the #ifs simpler, in that they're all now ORs of the
various macros, rather than having checks for (!defined(_ANSI_SOURCE) ||
!defined(_POSIX_C_SOURCE) || !defined(_XOPEN_SOURCE)) all over the place.

I've tried not to change the semantics of the headers in any case where
_NETBSD_SOURCE wasn't defined, but there were some places where the
current semantics were clearly mad, and retaining them was harder than
correcting them. In particular, I've mostly normalised things so that
_ANSI_SOURCE gets you the smallest set of stuff, then _POSIX_C_SOURCE,
_XOPEN_SOURCE and _NETBSD_SOURCE in that order.

Tested by building for vax, encouraged by thorpej, and uncontested in
tech-userlevel for a week.
 1.21  18-Apr-2001  thorpej If _CTYPE_PRIVATE, need to include <machine/limits.h> for CHAR_BIT.
 1.20  17-Apr-2001  kleink Replace (sizeof (char) << 3) with a less silly-looking CHAR_BIT;
from Peter Seebach in PR standards/9333.
 1.19  21-Jan-2001  itojun branches: 1.19.2;
have comment about strange use of _B
 1.18  13-Jun-2000  simonb Remove 'extern' from function declarations.
 1.17  10-May-1998  kleink branches: 1.17.8;
Reorganize name space protection.
 1.16  23-Mar-1998  mrg cast the argument of ctype macros to (int).
 1.15  02-Jun-1997  kleink branches: 1.15.2;
Add support for localized character sets (a.k.a. LC_CTYPE).

Thanks go to Matthias Scheler <tron@lyssa.owl.de> for contributing his initial
work in PR/3592, and to Christos Zoulas for refining it!
 1.14  26-Oct-1994  cgd new RCS ID format.
 1.13  16-May-1994  cgd update all but ctype.h, dumprestore.h, time.h to 4.4-Lite versions.
USL copyright additions on those. Kill varargs.h, because it can simply
be a link to the machine-dependent version.
 1.12  05-Oct-1993  jtc #ifdef out the isblank macro. Programs that use it will still work, as
they will link in the isblank function.
 1.11  14-Sep-1993  jtc Added isblank() used by 4.4 and POSIX utilities like tr.
 1.10  05-Sep-1993  mycroft ANSI_SOURCE --> _ANSI_SOURCE
 1.9  23-Aug-1993  cgd use "_to*_tab_" rather than "_to*_table_" -- table is defined as the former
 1.8  21-Aug-1993  jtc _ctype_, _tolower_tab_, and _toupper_tab_ are now pointers to the tables.
The tables have been renamed to _C_ctype_, _C_tolower_, and _C_toupper_
as they are tables for the C locale. When switching to a new locale, the
pointers will be set to point to tables specific to the new locale.
 1.7  09-Aug-1993  deraadt zapped extra ; at end of two #define lines
 1.6  06-Aug-1993  jtc Declare translation tables for toupper and tolower. To be replaced by
pointers to the tables to the current locale.
Reintroduce toupper and tolower macros that use the translation tables.
 1.5  06-Aug-1993  jtc Use const qualifier with _ctype_ table. Smart compilers can then store it
in the text segment. When we implement locales, the isctype macros/functions
will reference this table (or a locale specific table) through a pointer, but
for right now, it continues to reference the _ctype_ table directly.
 1.4  06-Aug-1993  jtc Rename tolower & toupper macros to _tolower and _toupper.
Standard C requires tolower to return a character that is !isupper unchanged
which was not being done with the macro. The function version does the
right thing, so the loss of the macro is no great deal.

I didn't eliminate the macros entirely, since X/Open's XPG3 requires _tolower
and _toupper with the same semantics. But, like isascii/toascii, they are
removed from the namespace if either ANSI_SOURCE or _POSIX_SOURCE is defined.
 1.3  06-Aug-1993  jtc Declare function versions of is* and to* functions -- discovered by
P.J. Plauger's ANSI Library regression test.
Don't export isascii & toascii in strict ansi mode.
 1.2  01-Aug-1993  mycroft Add RCS identifiers.
 1.1  21-Mar-1993  cgd branches: 1.1.1;
Initial revision
 1.1.1.2  02-Feb-1998  perry import lite-2
 1.1.1.1  21-Mar-1993  cgd branches: 1.1.1.1.2;
initial import of 386bsd-0.1 sources
 1.1.1.1.2.1  27-Jul-1993  cgd get rid of the toupper and tolower macros; they're broken and aren't
necessary to have as macros.
 1.15.2.1  27-Sep-1998  cgd pull up rev 1.16 from trunk (tv).
 1.17.8.2  23-Jun-2000  minoura Import of most recent XPG4DL dated 2000.06.23.
 1.17.8.1  28-May-2000  minoura Citrus Project XPG4DL, an implementation of I18N (locale) framework,
is imported.
 1.19.2.1  08-Oct-2001  nathanw Catch up to -current.
 1.25.4.1  16-Apr-2005  tron Pull up revision 1.28 via patch (requested by rillig in ticket #1427):
Replaced the macro name "notyet" with a 0. There's always the possibility
that a strictly conforming C program uses that name itself, so it had to
be removed. Also put the long comment above the #if 0, because it describes
the #if, not the isblank() macro. Added two blank lines to make the grouping
clear. Approved by kleink.
 1.27.2.1  16-Apr-2005  tron Pull up revision 1.28 (requested by rillig in ticket #158):
Replaced the macro name "notyet" with a 0. There's always the possibility
that a strictly conforming C program uses that name itself, so it had to
be removed. Also put the long comment above the #if 0, because it describes
the #if, not the isblank() macro. Added two blank lines to make the grouping
clear. Approved by kleink.
 1.29.38.1  17-Aug-2010  uebayasi Sync with HEAD.
 1.31.12.1  23-Jun-2013  tls resync from head
 1.31.6.1  22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.34.28.1  08-Apr-2020  martin Merge changes from current as of 20200406

RSS XML Feed