freebsd-dev/include
Andrey A. Chernov 367ed4e13d The problem is: currently our single byte ctype(3) functions are broken
for wide characters locales in the argument range >= 0x80 - they may
return false positives.

Example 1: for UTF-8 locale we currently have:
iswspace(0xA0)==1 and isspace(0xA0)==1
(because iswspace() and isspace() are the same code)
but must have
iswspace(0xA0)==1 and isspace(0xA0)==0
(because there is no such character and all others in the range
0x80..0xff for the UTF-8 locale, it keeps ASCII only in the single byte
range because our internal wchar_t representation for UTF-8 is UCS-4).

Example 2: for all wide character locales isalpha(arg) when arg > 0xFF may
return false positives (must be 0).
(because iswalpha() and isalpha() are the same code)

This change address this issue separating single byte and wide ctype
and also fix iswascii() (currently iswascii() is broken for
arguments > 0xFF).
This change is 100% binary compatible with old binaries.

Reviewied by: i18n@
2007-10-13 16:28:22 +00:00
..
arpa Remove old prototypes for addr2ascii() and ascii2addr(), functions which no 2007-08-24 20:25:52 +00:00
gssapi Add a new extensible GSS-API layer which can support GSS-API plugins, 2005-12-29 14:40:22 +00:00
protocols Update the dump program to save extended attributes. Update 2007-02-26 08:15:56 +00:00
rpc Move rpc/types.h under sys/, as this is used by ZFS kernel module. 2007-04-10 22:10:16 +00:00
rpcsvc Fix ypwhich -m. This should be MFC'ed back at least as far as RELENG_5. 2005-12-06 02:01:06 +00:00
_ctype.h The problem is: currently our single byte ctype(3) functions are broken 2007-10-13 16:28:22 +00:00
a.out.h Adjust the system endian and a.out headers to be more MI and cross-building 2004-06-22 17:05:39 +00:00
ar.h Attempt to improve application portability by marking `struct ar_hdr' 2006-11-13 04:28:29 +00:00
assert.h Breath deep and take __P out of the system include files. 2002-03-23 17:24:55 +00:00
bitstring.h Finish the repocopy of bitstring.h to sys so it can be used 2003-06-13 19:40:13 +00:00
complex.h Stop defining '_Complex' in a C99 environment, it is supposed to be a keyword. 2004-08-14 18:03:21 +00:00
cpio.h Implement the POSIX.1-2001 (XSI) header, <cpio.h>. 2002-08-01 07:18:38 +00:00
ctype.h The problem is: currently our single byte ctype(3) functions are broken 2007-10-13 16:28:22 +00:00
db.h Fixed some style bugs in the removal of __P(()). Some function parameter 2002-03-26 01:35:05 +00:00
dirent.h Change the definition of NULL on ia64 (for LP64 compilations) from 2003-12-07 21:10:06 +00:00
dlfcn.h Implement ELF symbol versioning using GNU semantics. This code aims 2005-12-18 19:43:33 +00:00
elf-hints.h
elf.h Include the Solaris compatibility definions iff _SOLARIS_C_SOURCE is defined. 2006-10-04 07:25:55 +00:00
err.h o Merge <machine/ansi.h> and <machine/types.h> into a new header 2002-08-21 16:20:02 +00:00
fmtmsg.h Fix some style bugs. 2002-08-05 16:37:05 +00:00
fnmatch.h Now I understand what Bruce was getting at - -1 can be parsed as two 2003-12-18 10:41:39 +00:00
fstab.h - Add setfstab() and getfstab(). 2003-04-07 12:55:00 +00:00
fts.h Introduce new field 'fts_bignum' which is 64bit long and will allow to 2005-01-07 00:06:20 +00:00
ftw.h Replace the current implementations of ftw() and nftw() with the OpenBSD 2004-08-24 13:00:55 +00:00
getopt.h Add getopt_long_only() 2004-02-24 08:09:20 +00:00
glob.h Add size_t declaration 2006-05-22 05:57:39 +00:00
grp.h = Implement thread-safe versions of the getpwent(3) and getgrent(3) 2003-04-17 14:15:26 +00:00
gssapi.h Add a new extensible GSS-API layer which can support GSS-API plugins, 2005-12-29 14:40:22 +00:00
hesiod.h Breath deep and take __P out of the system include files. 2002-03-23 17:24:55 +00:00
histedit.h Use tabs after #define. 2007-06-11 06:25:19 +00:00
ieeefp.h o Move the contents of <machine/floatingpoint.h> over to 2003-01-19 06:01:33 +00:00
ifaddrs.h Add the userland part of the NET_RT_IFMALIST sysctl MIB. A new function, 2003-11-14 18:53:22 +00:00
inttypes.h Add the remaining C99 wide character string to integer conversion functions. 2002-09-22 08:06:45 +00:00
iso646.h style(9): tab after #define. 2002-09-18 22:23:59 +00:00
kenv.h Fix prototype to match the code and documentation. 2005-11-24 07:20:26 +00:00
langinfo.h o Don't include <nl_types.h>, instead provide a typedef for nl_item. 2002-09-18 05:54:25 +00:00
libgen.h Breath deep and take __P out of the system include files. 2002-03-23 17:24:55 +00:00
limits.h Deprecate machine/limits.h in favor of new sys/limits.h. 2003-04-29 13:36:06 +00:00
link.h Initiate deorbit burn for the i386-only a.out related support. Moves are 2002-09-17 01:49:00 +00:00
locale.h Change the definition of NULL on ia64 (for LP64 compilations) from 2003-12-07 21:10:06 +00:00
Makefile Install the forgotten /usr/include/geom/multipath/ header. 2007-10-01 18:07:29 +00:00
malloc_np.h Add __{BEGIN,END}_DECLS macros, so that function prototypes remain 2006-06-30 20:57:41 +00:00
malloc.h
memory.h
monetary.h Fix an error which prevented ssize_t from becoming defined. Add 2002-09-20 08:22:48 +00:00
mpool.h Breath deep and take __P out of the system include files. 2002-03-23 17:24:55 +00:00
mqueue.h Add function __mq_oshandle() to get file handle of a mqueue. 2007-01-06 11:30:04 +00:00
ndbm.h Breath deep and take __P out of the system include files. 2002-03-23 17:24:55 +00:00
netconfig.h Breath deep and take __P out of the system include files. 2002-03-23 17:24:55 +00:00
netdb.h Fix gethostbyaddr() prototype to conform to IEEE Std 1003.1 on 64 bit 2006-05-21 11:27:28 +00:00
nl_types.h Analogous to __printflike and __scanflike, add the macro __format_arg which 2006-01-26 20:53:40 +00:00
nlist.h Use sys/nlist_aout.h for shared-with-kernel definitions. 2002-08-22 20:37:57 +00:00
nss.h It was reported that when using nss_ldap, getgrent(3) would behave 2004-01-09 13:43:49 +00:00
nsswitch.h - Extend the nsswitch to support Services, Protocols and Rpc 2006-04-28 12:03:38 +00:00
paths.h Add _PATH_FWMEM for libkvm. 2007-06-11 02:21:18 +00:00
printf.h Add nested include of <wchar.h> 2006-03-02 10:01:52 +00:00
proc_service.h Introduce a new proc service routine ps_linfo() to get LWP info. 2006-02-07 02:29:55 +00:00
pthread_np.h Add pthread_timedjoin_np prototype. 2005-10-04 07:23:56 +00:00
pthread.h Add prototype for following functions, plus tab fixes. 2005-10-24 05:53:54 +00:00
pwd.h Correct a typo in the definition of _PW_VERSION_MASK. This macro is 2005-01-26 17:26:54 +00:00
ranlib.h
readpassphrase.h
regex.h Add a new error code, REG_ILLSEQ, to indicate that a regular expression 2004-07-12 06:07:26 +00:00
regexp.h Breath deep and take __P out of the system include files. 2002-03-23 17:24:55 +00:00
res_update.h Merge BIND 9.4.1 into main chunk. 2007-06-03 17:20:27 +00:00
resolv.h Merge BIND 9.4.1 into main chunk. 2007-06-03 17:20:27 +00:00
runetype.h Prefix the names of members of _RuneLocale and its sub-structures 2004-06-23 07:01:44 +00:00
search.h - Remove the lsearch() and lfind() functions and their manpage from 2002-10-16 14:29:23 +00:00
setjmp.h Fix namespace issues by using visibility conditionals from 2002-10-05 05:48:50 +00:00
sgtty.h
signal.h Use __pid_t instead of pid_t for sigqueue as other functions. 2005-10-16 22:23:03 +00:00
stab.h
stdbool.h The Intel C/C++ compiler doesn't require a typedef for _Bool when compiling 2005-02-19 13:47:33 +00:00
stddef.h Change the definition of NULL on ia64 (for LP64 compilations) from 2003-12-07 21:10:06 +00:00
stdio.h - Remove SEEK_DATA and SEEK_HOLE from stdio.h, they don't belong here. 2007-04-07 16:02:30 +00:00
stdlib.h Significantly reduce the memory leak as noted in BUGS section for 2007-07-04 00:00:41 +00:00
string.h Revert last revision, strmode() should be moved to <unistd.h> to be 2005-11-24 08:30:44 +00:00
stringlist.h Sync with NetBSD -- sl_add() now returns an int. 2003-01-19 01:16:01 +00:00
strings.h Add __pure and __pure2 where appropriate. 2004-07-23 07:13:35 +00:00
sysexits.h
tar.h
tgmath.h Properly parenthesize the __tg_is_complex() macro by moving a closing 2007-02-02 18:30:23 +00:00
time.h Copy the new CLOCK_ defines from sys/time.h for SUSv3 compatibility. 2006-04-15 03:08:55 +00:00
timeconv.h o Merge <machine/ansi.h> and <machine/types.h> into a new header 2002-08-21 16:20:02 +00:00
timers.h
ttyent.h Breath deep and take __P out of the system include files. 2002-03-23 17:24:55 +00:00
ulimit.h No need to support UL_GETSIZE and UL_SETSIZE anymore; they are about to be 2003-01-08 01:18:13 +00:00
unistd.h Forgot to commit this file: add definition for _SC_PHYS_PAGES. 2006-12-14 21:42:03 +00:00
utime.h Add time_t typedef for POSIX compatibility, move an include. 2002-08-24 00:11:52 +00:00
utmp.h
uuid.h Constify arguments. 2005-01-03 02:56:15 +00:00
varargs.h Add a new machine independent varargs.h and use it as a central place 2003-09-01 03:28:25 +00:00
vis.h Add a new flag to vis(3): VIS_GLOB which encodes the glob(3) magic 2003-10-30 10:40:49 +00:00
wchar.h Add an implementation of the semi-standard wcsdup() function, as found 2005-08-13 05:54:33 +00:00
wctype.h The problem is: currently our single byte ctype(3) functions are broken 2007-10-13 16:28:22 +00:00
wordexp.h Fix typo: WRDE_DOOFS -> WRDE_DOOFFS. 2004-06-30 13:55:08 +00:00