[PATCH/RFA] Distinguish between EOF and character with value 0xff

Jeff Johnston jjohnstn@redhat.com
Tue Apr 21 20:09:00 GMT 2009


Corinna Vinschen wrote:
> Hi,
>
>
> There's a bug in the new character class tables for Windows and ISO
> charsets.
>
> To support signed chars, the tables for the negative values -128..-1 are
> identical to the values of the positive values 128..255.  Many of these
> character sets have a valid character at the position 255.  So some
> functions return a non-0 value not only for the unsigned char value 255,
> but also for the equivalent signed char value -1.  Unfortunately this
> potentially breaks applications which use the EOF value as argument to
> the ctype functions.  They expect that the functions always return 0,
> but in the current implementation they don't.
>
> The below patch fixes that.  It splits off the value for char 255 from the
> rest of the definition, so that the actual character class tables can
> return another value for the unsigned char value 255 than for -1.
>
> For instance, the former definition for the ISO-8859-1 table looked
> like this:
>
>     { _CTYPE_ISO_8859_1_128_256,
>       _CTYPE_DATA_0_127,
>       _CTYPE_ISO_8859_1_128_256
>     },
>
> The new definition now looks like this:
>
>     { _CTYPE_ISO_8859_1_128_254,
>       0,
>       _CTYPE_DATA_0_127,
>       _CTYPE_ISO_8859_1_128_254,
>       _CTYPE_ISO_8859_1_255
>     },
>
> While I was at it I also took the liberty to rename _CTYPE_DATA_128_256
> to _CTYPE_DATA_128_255, which is more correct since the definitions contains
> the character values 128..255, not 128..256.
>
> Ok the apply?
>
>
>   
Yes, please go ahead.

-- Jeff J.
> Thanks,
> Corinna
>
>
> 	* libc/ctype/ctype_.c (_CTYPE_DATA_128_255): Rename from
> 	_CTYPE_DATA_128_256.
> 	* libc/ctype/ctype_cp.h: Split off all character class values for
> 	character 255 from the rest of the definitions.
> 	(__ctype_cp): Use the new definitions.  Make sure that the table
> 	always contains 0 for EOF (-1). 
> 	* libc/ctype/ctype_iso.h: Ditto.
>
>
> Index: libc/ctype/ctype_.c
> ===================================================================
> RCS file: /cvs/src/src/newlib/libc/ctype/ctype_.c,v
> retrieving revision 1.9
> diff -u -p -r1.9 ctype_.c
> --- libc/ctype/ctype_.c	9 Apr 2009 10:37:57 -0000	1.9
> +++ libc/ctype/ctype_.c	21 Apr 2009 18:00:07 -0000
> @@ -55,7 +55,7 @@ static char sccsid[] = "@(#)ctype_.c	5.6
>  	_L,	_L,	_L,	_L,	_L,	_L,	_L,	_L, \
>  	_L,	_L,	_L,	_P,	_P,	_P,	_P,	_C
>  
> -#define _CTYPE_DATA_128_256 \
> +#define _CTYPE_DATA_128_255 \
>  	0,	0,	0,	0,	0,	0,	0,	0, \
>  	0,	0,	0,	0,	0,	0,	0,	0, \
>  	0,	0,	0,	0,	0,	0,	0,	0, \
> @@ -93,9 +93,9 @@ static char sccsid[] = "@(#)ctype_.c	5.6
>  static _CONST
>  #endif
>  char _ctype_b[128 + 256] = {
> -	_CTYPE_DATA_128_256,
> +	_CTYPE_DATA_128_255,
>  	_CTYPE_DATA_0_127,
> -	_CTYPE_DATA_128_256
> +	_CTYPE_DATA_128_255
>  };
>  
>  #ifndef _MB_CAPABLE
> @@ -121,7 +121,7 @@ extern _CONST char _ctype_[1 + 256] __at
>  _CONST char _ctype_[1 + 256] = {
>  	0,
>  	_CTYPE_DATA_0_127,
> -	_CTYPE_DATA_128_256
> +	_CTYPE_DATA_128_255
>  };
>  #  endif /* !_HAVE_ARRAY_ALIASING */
>  
> @@ -130,7 +130,7 @@ _CONST char _ctype_[1 + 256] = {
>  _CONST char _ctype_[1 + 256] = {
>  	0,
>  	_CTYPE_DATA_0_127,
> -	_CTYPE_DATA_128_256
> +	_CTYPE_DATA_128_255
>  };
>  
>  #ifndef _MB_CAPABLE
> Index: libc/ctype/ctype_cp.h
> ===================================================================
> RCS file: /cvs/src/src/newlib/libc/ctype/ctype_cp.h,v
> retrieving revision 1.2
> diff -u -p -r1.2 ctype_cp.h
> --- libc/ctype/ctype_cp.h	9 Apr 2009 10:37:57 -0000	1.2
> +++ libc/ctype/ctype_cp.h	21 Apr 2009 18:00:07 -0000
> @@ -1,7 +1,7 @@
>  /* ctype table definitions for Windows codepage charsets. 
>     Included by ctype_.c. */
>  
> -#define _CTYPE_CP437_128_256 \
> +#define _CTYPE_CP437_128_254 \
>     	_U,	_L,	_L,	_L,	_L,	_L,	_L,	_L, \
>  	_L,	_L,	_L,	_L,	_L,	_L,	_U,	_U, \
>  	_U,	_L,	_U,	_L,	_L,	_L,	_L,	_L, \
> @@ -17,8 +17,9 @@
>  	_L,	_L,	_U,	_L,	_U,	_L,	_P,	_L, \
>  	_U,	_U,	_U,	_L,	_P,	_L,	_L,	_P, \
>  	_P,	_P,	_P,	_P,	_P,	_P,	_P,	_P, \
> -	_P,	_P,	_P,	_P,	_P,	_P,	_P,	_S|_B
> -#define _CTYPE_CP720_128_256 \
> +	_P,	_P,	_P,	_P,	_P,	_P,	_P
> +#define _CTYPE_CP437_255 _S|_B
> +#define _CTYPE_CP720_128_254 \
>     	0,	0,	_L,	_L,	0,	_L,	0,	_L, \
>  	_L,	_L,	_L,	_L,	_L,	0,	0,	0,  \
>  	0,	_P,	_P,	_L,	_P,	_P,	_L,	_L, \
> @@ -34,8 +35,9 @@
>  	_U|_L,	_U|_L,	_U|_L,	_U|_L,	_U|_L,	_U|_L,	_P,	_U|_L, \
>  	_U|_L,	_U|_L,	_U|_L,	_U|_L,	_U|_L,	_U|_L,	_U|_L,	_U|_L, \
>  	_P,	_P,	_P,	_P,	_P,	_P,	_P,	_P, \
> -	_P,	_P,	_P,	_P,	_P,	_P,	_P,	_S|_B
> -#define _CTYPE_CP737_128_256 \
> +	_P,	_P,	_P,	_P,	_P,	_P,	_P
> +#define _CTYPE_CP720_255 _S|_B
> +#define _CTYPE_CP737_128_254 \
>     	_U,	_U,	_U,	_U,	_U,	_U,	_U,	_U, \
>  	_U,	_U,	_U,	_U,	_U,	_U,	_U,	_U, \
>  	_U,	_U,	_U,	_U,	_U,	_U,	_U,	_U, \
> @@ -51,8 +53,9 @@
>  	_L,	_L,	_L,	_L,	_L,	_L,	_L,	_L, \
>  	_L,	_L,	_U,	_U,	_U,	_U,	_U,	_U, \
>  	_U,	_P,	_P,	_P,	_U,	_U,	_P,	_P, \
> -	_P,	_P,	_P,	_P,	_P,	_P,	_P,	_S|_B
> -#define _CTYPE_CP775_128_256 \
> +	_P,	_P,	_P,	_P,	_P,	_P,	_P
> +#define _CTYPE_CP737_255 _S|_B
> +#define _CTYPE_CP775_128_254 \
>     	_U,	_L,	_L,	_L,	_L,	_L,	_L,	_L, \
>  	_L,	_L,	_U,	_L,	_L,	_U,	_U,	_U, \
>  	_U,	_L,	_U,	_L,	_L,	_U,	_P,	_U, \
> @@ -68,8 +71,9 @@
>  	_U,	_L,	_U,	_U,	_L,	_U,	_P,	_L, \
>  	_U,	_L,	_U,	_L,	_L,	_U,	_U,	_P, \
>  	_P,	_P,	_P,	_P,	_P,	_P,	_P,	_P, \
> -	_P,	_P,	_P,	_P,	_P,	_P,	_P,	_S|_B
> -#define _CTYPE_CP850_128_256 \
> +	_P,	_P,	_P,	_P,	_P,	_P,	_P
> +#define _CTYPE_CP775_255 _S|_B
> +#define _CTYPE_CP850_128_254 \
>     	_U,	_L,	_L,	_L,	_L,	_L,	_L,	_L, \
>  	_L,	_L,	_L,	_L,	_L,	_L,	_U,	_U, \
>  	_U,	_L,	_U,	_L,	_L,	_L,	_L,	_L, \
> @@ -85,8 +89,9 @@
>  	_U,	_L,	_U,	_U,	_L,	_U,	_P,	_L, \
>  	_U,	_U,	_U,	_U,	_L,	_U,	_P,	_P, \
>  	_P,	_P,	_P,	_P,	_P,	_P,	_P,	_P, \
> -	_P,	_P,	_P,	_P,	_P,	_P,	_P,	_S|_B
> -#define _CTYPE_CP852_128_256 \
> +	_P,	_P,	_P,	_P,	_P,	_P,	_P
> +#define _CTYPE_CP850_255 _S|_B
> +#define _CTYPE_CP852_128_254 \
>     	_U,	_L,	_L,	_L,	_L,	_L,	_L,	_L, \
>  	_L,	_L,	_U,	_L,	_L,	_U,	_U,	_U, \
>  	_U,	_U,	_L,	_L,	_L,	_U,	_L,	_U, \
> @@ -102,8 +107,9 @@
>  	_U,	_L,	_U,	_U,	_L,	_L,	_U,	_L, \
>  	_U,	_U,	_L,	_U,	_L,	_U,	_L,	_P, \
>  	_P,	_P,	_P,	_P,	_P,	_P,	_P,	_P, \
> -	_P,	_P,	_P,	_L,	_U,	_L,	_P,	_S|_B
> -#define _CTYPE_CP855_128_256 \
> +	_P,	_P,	_P,	_L,	_U,	_L,	_P
> +#define _CTYPE_CP852_255 _S|_B
> +#define _CTYPE_CP855_128_254 \
>     	_L,	_U,	_L,	_U,	_L,	_U,	_L,	_U, \
>  	_L,	_U,	_L,	_U,	_L,	_U,	_L,	_U, \
>  	_L,	_U,	_L,	_U,	_L,	_U,	_L,	_U, \
> @@ -119,8 +125,9 @@
>  	_U,	_L,	_U,	_L,	_U,	_L,	_U,	_L, \
>  	_U,	_L,	_U,	_L,	_U,	_L,	_U,	_P, \
>  	_P,	_L,	_U,	_L,	_U,	_L,	_U,	_L, \
> -	_U,	_L,	_U,	_L,	_U,	_P,	_P,	_S|_B
> -#define _CTYPE_CP857_128_256 \
> +	_U,	_L,	_U,	_L,	_U,	_P,	_P
> +#define _CTYPE_CP855_255 _S|_B
> +#define _CTYPE_CP857_128_254 \
>     	_U,	_L,	_L,	_L,	_L,	_L,	_L,	_L, \
>  	_L,	_L,	_L,	_L,	_L,	_L,	_U,	_U, \
>  	_U,	_L,	_U,	_L,	_L,	_L,	_L,	_L, \
> @@ -136,8 +143,9 @@
>  	_U,	_L,	_U,	_U,	_L,	_U,	_P,	0, \
>  	_P,	_U,	_U,	_U,	_L,	_L,	_P,	_P, \
>  	_P,	_P,	0,	_P,	_P,	_P,	_P,	_P, \
> -	_P,	_P,	_P,	_P,	_P,	_P,	_P,	_S|_B
> -#define _CTYPE_CP858_128_256 \
> +	_P,	_P,	_P,	_P,	_P,	_P,	_P
> +#define _CTYPE_CP857_255 _S|_B
> +#define _CTYPE_CP858_128_254 \
>     	_U,	_L,	_L,	_L,	_L,	_L,	_L,	_L, \
>  	_L,	_L,	_L,	_L,	_L,	_L,	_U,	_U, \
>  	_U,	_L,	_U,	_L,	_L,	_L,	_L,	_L, \
> @@ -153,8 +161,9 @@
>  	_U,	_L,	_U,	_U,	_L,	_U,	_P,	_L, \
>  	_U,	_U,	_U,	_U,	_L,	_U,	_P,	_P, \
>  	_P,	_P,	_P,	_P,	_P,	_P,	_P,	_P, \
> -	_P,	_P,	_P,	_P,	_P,	_P,	_P,	_S|_B
> -#define _CTYPE_CP862_128_256 \
> +	_P,	_P,	_P,	_P,	_P,	_P,	_P
> +#define _CTYPE_CP858_255 _S|_B
> +#define _CTYPE_CP862_128_254 \
>     	_U|_L,	_U|_L,	_U|_L,	_U|_L,	_U|_L,	_U|_L,	_U|_L,	_U|_L, \
>  	_U|_L,	_U|_L,	_U|_L,	_U|_L,	_U|_L,	_U|_L,	_U|_L,	_U|_L, \
>  	_U|_L,	_U|_L,	_U|_L,	_U|_L,	_U|_L,	_U|_L,	_U|_L,	_U|_L, \
> @@ -170,8 +179,9 @@
>  	_L,	_L,	_U,	_L,	_U,	_L,	_P,	_L, \
>  	_U,	_U,	_U,	_L,	_P,	_L,	_L,	_P, \
>  	_P,	_P,	_P,	_P,	_P,	_P,	_P,	_P, \
> -	_P,	_P,	_P,	_P,	_P,	_P,	_P,	_S|_B
> -#define _CTYPE_CP866_128_256 \
> +	_P,	_P,	_P,	_P,	_P,	_P,	_P
> +#define _CTYPE_CP862_255 _S|_B
> +#define _CTYPE_CP866_128_254 \
>     	_U,	_U,	_U,	_U,	_U,	_U,	_U,	_U, \
>  	_U,	_U,	_U,	_U,	_U,	_U,	_U,	_U, \
>  	_U,	_U,	_U,	_U,	_U,	_U,	_U,	_U, \
> @@ -187,8 +197,9 @@
>  	_L,	_L,	_L,	_L,	_L,	_L,	_L,	_L, \
>  	_L,	_L,	_L,	_L,	_L,	_L,	_L,	_L, \
>  	_U,	_L,	_U,	_L,	_U,	_L,	_U,	_L, \
> -	_P,	_P,	_P,	_P,	_P,	_P,	_P,	_S|_B
> -#define _CTYPE_CP874_128_256 \
> +	_P,	_P,	_P,	_P,	_P,	_P,	_P
> +#define _CTYPE_CP866_255 _S|_B
> +#define _CTYPE_CP874_128_254 \
>     	_P,	0,	0,	0,	0,	_P,	0,	0,  \
>  	0,	0,	0,	0,	0,	0,	0,	0,  \
>  	0,	_P,	_P,	_P,	_P,	_P,	_P,	_P, \
> @@ -204,8 +215,9 @@
>  	_U|_L,	_U|_L,	_U|_L,	_U|_L,	_U|_L,	_U|_L,	_U|_L,	_U|_L, \
>  	_U|_L,	_U|_L,	_U|_L,	_U|_L,	_U|_L,	_U|_L,	_U|_L,	_U|_L, \
>  	_P,	_P,	_P,	_P,	_P,	_P,	_P,	_P, \
> -	_P,	_P,	_U|_L,	_U|_L,	0,	0,	0,	0
> -#define _CTYPE_CP1125_128_256 \
> +	_P,	_P,	_U|_L,	_U|_L,	0,	0,	0
> +#define _CTYPE_CP874_255 0
> +#define _CTYPE_CP1125_128_254 \
>     	_U,	_U,	_U,	_U,	_U,	_U,	_U,	_U, \
>  	_U,	_U,	_U,	_U,	_U,	_U,	_U,	_U, \
>  	_U,	_U,	_U,	_U,	_U,	_U,	_U,	_U, \
> @@ -221,8 +233,9 @@
>  	_L,	_L,	_L,	_L,	_L,	_L,	_L,	_L, \
>  	_L,	_L,	_L,	_L,	_L,	_L,	_L,	_L, \
>  	_U,	_L,	_U,	_L,	_U,	_L,	_U,	_L, \
> -	_U,	_L,	_P,	_P,	_P,	_P,	_P,	_S|_B
> -#define _CTYPE_CP1250_128_256 \
> +	_U,	_L,	_P,	_P,	_P,	_P,	_P
> +#define _CTYPE_CP1125_255 _S|_B
> +#define _CTYPE_CP1250_128_254 \
>     	_P,	0,	_P,	0,	_P,	_P,	_P,	_P, \
>  	0,	_P,	_U,	_P,	_U,	_U,	_U,	_U, \
>  	0,	_P,	_P,	_P,	_P,	_P,	_P,	_P, \
> @@ -238,8 +251,9 @@
>  	_L,	_L,	_L,	_L,	_L,	_L,	_L,	_L, \
>  	_L,	_L,	_L,	_L,	_L,	_L,	_L,	_L, \
>  	_L,	_L,	_L,	_L,	_L,	_L,	_L,	_P, \
> -	_L,	_L,	_L,	_L,	_L,	_L,	_L,	_P
> -#define _CTYPE_CP1251_128_256 \
> +	_L,	_L,	_L,	_L,	_L,	_L,	_L
> +#define _CTYPE_CP1250_255 _P
> +#define _CTYPE_CP1251_128_254 \
>     	_U,	_U,	_P,	_L,	_P,	_P,	_P,	_P, \
>  	_P,	_P,	_U,	_P,	_U,	_U,	_U,	_U, \
>  	_L,	_P,	_P,	_P,	_P,	_P,	_P,	_P, \
> @@ -255,8 +269,9 @@
>  	_L,	_L,	_L,	_L,	_L,	_L,	_L,	_L, \
>  	_L,	_L,	_L,	_L,	_L,	_L,	_L,	_L, \
>  	_L,	_L,	_L,	_L,	_L,	_L,	_L,	_L, \
> -	_L,	_L,	_L,	_L,	_L,	_L,	_L,	_L
> -#define _CTYPE_CP1252_128_256 \
> +	_L,	_L,	_L,	_L,	_L,	_L,	_L
> +#define _CTYPE_CP1251_255 _L
> +#define _CTYPE_CP1252_128_254 \
>     	_P,	0,	_P,	_L,	_P,	_P,	_P,	_P, \
>  	_P,	_P,	_U,	_P,	_U,	_U,	0,	0,  \
>  	0,	_P,	_P,	_P,	_P,	_P,	_P,	_P, \
> @@ -272,8 +287,9 @@
>  	_L,	_L,	_L,	_L,	_L,	_L,	_L,	_L, \
>  	_L,	_L,	_L,	_L,	_L,	_L,	_L,	_L, \
>  	_L,	_L,	_L,	_L,	_L,	_L,	_L,	_P, \
> -	_L,	_L,	_L,	_L,	_L,	_L,	_L,	_L
> -#define _CTYPE_CP1253_128_256 \
> +	_L,	_L,	_L,	_L,	_L,	_L,	_L
> +#define _CTYPE_CP1252_255 _L
> +#define _CTYPE_CP1253_128_254 \
>     	_P,	0,	_P,	_L,	_P,	_P,	_P,	_P, \
>  	0,	_P,	0,	_P,	0,	0,	0,	0,  \
>  	0,	_P,	_P,	_P,	_P,	_P,	_P,	_P, \
> @@ -289,8 +305,9 @@
>  	_L,	_L,	_L,	_L,	_L,	_L,	_L,	_L, \
>  	_L,	_L,	_L,	_L,	_L,	_L,	_L,	_L, \
>  	_L,	_L,	_L,	_L,	_L,	_L,	_L,	_L, \
> -	_L,	_L,	_L,	_L,	_L,	_L,	_L,	_L
> -#define _CTYPE_CP1254_128_256 \
> +	_L,	_L,	_L,	_L,	_L,	_L,	_L
> +#define _CTYPE_CP1253_255 _L
> +#define _CTYPE_CP1254_128_254 \
>     	_P,	0,	_P,	_L,	_P,	_P,	_P,	_P, \
>  	_P,	_P,	_U,	_P,	_U,	0,	0,	0,  \
>  	0,	_P,	_P,	_P,	_P,	_P,	_P,	_P, \
> @@ -306,8 +323,9 @@
>  	_L,	_L,	_L,	_L,	_L,	_L,	_L,	_L, \
>  	_L,	_L,	_L,	_L,	_L,	_L,	_L,	_L, \
>  	_L,	_L,	_L,	_L,	_L,	_L,	_L,	_P, \
> -	_L,	_L,	_L,	_L,	_L,	_L,	_L,	_L
> -#define _CTYPE_CP1255_128_256 \
> +	_L,	_L,	_L,	_L,	_L,	_L,	_L
> +#define _CTYPE_CP1254_255 _L
> +#define _CTYPE_CP1255_128_254 \
>     	_P,	0,	_P,	_L,	_P,	_P,	_P,	_P, \
>  	_P,	_P,	0,	_P,	0,	0,	0,	0,  \
>  	0,	_P,	_P,	_P,	_P,	_P,	_P,	_P, \
> @@ -323,8 +341,9 @@
>  	_U|_L,	_U|_L,	_U|_L,	_U|_L,	_U|_L,	_U|_L,	_U|_L,	_U|_L, \
>  	_U|_L,	_U|_L,	_U|_L,	_U|_L,	_U|_L,	_U|_L,	_U|_L,	_U|_L, \
>  	_U|_L,	_U|_L,	_U|_L,	_U|_L,	_U|_L,	_U|_L,	_U|_L,	_U|_L, \
> -	_U|_L,	_U|_L,	_U|_L,	0,	0,	_P,	_P,	0
> -#define _CTYPE_CP1256_128_256 \
> +	_U|_L,	_U|_L,	_U|_L,	0,	0,	_P,	_P
> +#define _CTYPE_CP1255_255 0
> +#define _CTYPE_CP1256_128_254 \
>     	_P,	_U|_L,	_P,	_L,	_P,	_P,	_P,	_P, \
>  	_P,	_P,	_U|_L,	_P,	_U,	_U|_L,	_U|_L,	_U|_L, \
>  	_U|_L,	_P,	_P,	_P,	_P,	_P,	_P,	_P, \
> @@ -340,8 +359,9 @@
>  	_L,	_U|_L,	_L,	_U|_L,	_U|_L,	_U|_L,	_U|_L,	_L, \
>  	_L,	_L,	_L,	_L,	_U|_L,	_U|_L,	_L,	_L, \
>  	_P,	_P,	_P,	_P,	_L,	_P,	_P,	_P, \
> -	_P,	_L,	_P,	_L,	_L,	_P,	_P,	_U|_L
> -#define _CTYPE_CP1257_128_256 \
> +	_P,	_L,	_P,	_L,	_L,	_P,	_P
> +#define _CTYPE_CP1256_255 _U|_L
> +#define _CTYPE_CP1257_128_254 \
>     	_P,	0,	_P,	0,	_P,	_P,	_P,	_P, \
>  	0,	_P,	0,	_P,	0,	_P,	_P,	_P, \
>  	0,	_P,	_P,	_P,	_P,	_P,	_P,	_P, \
> @@ -357,8 +377,9 @@
>  	_L,	_L,	_L,	_L,	_L,	_L,	_L,	_L, \
>  	_L,	_L,	_L,	_L,	_L,	_L,	_L,	_L, \
>  	_L,	_L,	_L,	_L,	_L,	_L,	_L,	_P, \
> -	_L,	_L,	_L,	_L,	_L,	_L,	_L,	_P
> -#define _CTYPE_CP1258_128_256 \
> +	_L,	_L,	_L,	_L,	_L,	_L,	_L
> +#define _CTYPE_CP1257_255 _P
> +#define _CTYPE_CP1258_128_254 \
>     	_P,	0,	_P,	_L,	_P,	_P,	_P,	_P, \
>  	_P,	_P,	0,	_P,	_U,	0,	0,	0,  \
>  	0,	_P,	_P,	_P,	_P,	_P,	_P,	_P, \
> @@ -374,7 +395,8 @@
>  	_L,	_L,	_L,	_L,	_L,	_L,	_L,	_L, \
>  	_L,	_L,	_L,	_L,	_P,	_L,	_L,	_L, \
>  	_L,	_L,	_P,	_L,	_L,	_L,	_L,	_P, \
> -	_L,	_L,	_L,	_L,	_L,	_L,	_P,	_L
> +	_L,	_L,	_L,	_L,	_L,	_L,	_P
> +#define _CTYPE_CP1258_255 _L
>  
>  extern int __cp_index (const char *charset_ext);
>  
> @@ -384,93 +406,137 @@ extern int __cp_index (const char *chars
>  static _CONST
>  #endif
>  char __ctype_cp[22][128 + 256] = {
> -  { _CTYPE_CP437_128_256,
> +  { _CTYPE_CP437_128_254,
> +    0,
>      _CTYPE_DATA_0_127,
> -    _CTYPE_CP437_128_256
> +    _CTYPE_CP437_128_254,
> +    _CTYPE_CP437_255
>    },
> -  { _CTYPE_CP720_128_256,
> +  { _CTYPE_CP720_128_254,
> +    0,
>      _CTYPE_DATA_0_127,
> -    _CTYPE_CP720_128_256
> +    _CTYPE_CP720_128_254,
> +    _CTYPE_CP720_255
>    },
> -  { _CTYPE_CP737_128_256,
> +  { _CTYPE_CP737_128_254,
> +    0,
>      _CTYPE_DATA_0_127,
> -    _CTYPE_CP737_128_256
> +    _CTYPE_CP737_128_254,
> +    _CTYPE_CP737_255
>    },
> -  { _CTYPE_CP775_128_256,
> +  { _CTYPE_CP775_128_254,
> +    0,
>      _CTYPE_DATA_0_127,
> -    _CTYPE_CP775_128_256
> +    _CTYPE_CP775_128_254,
> +    _CTYPE_CP775_255
>    },
> -  { _CTYPE_CP850_128_256,
> +  { _CTYPE_CP850_128_254,
> +    0,
>      _CTYPE_DATA_0_127,
> -    _CTYPE_CP850_128_256
> +    _CTYPE_CP850_128_254,
> +    _CTYPE_CP850_255
>    },
> -  { _CTYPE_CP852_128_256,
> +  { _CTYPE_CP852_128_254,
> +    0,
>      _CTYPE_DATA_0_127,
> -    _CTYPE_CP852_128_256
> +    _CTYPE_CP852_128_254,
> +    _CTYPE_CP852_255
>    },
> -  { _CTYPE_CP855_128_256,
> +  { _CTYPE_CP855_128_254,
> +    0,
>      _CTYPE_DATA_0_127,
> -    _CTYPE_CP855_128_256
> +    _CTYPE_CP855_128_254,
> +    _CTYPE_CP855_255
>    },
> -  { _CTYPE_CP857_128_256,
> +  { _CTYPE_CP857_128_254,
> +    0,
>      _CTYPE_DATA_0_127,
> -    _CTYPE_CP857_128_256
> +    _CTYPE_CP857_128_254,
> +    _CTYPE_CP857_255
>    },
> -  { _CTYPE_CP858_128_256,
> +  { _CTYPE_CP858_128_254,
> +    0,
>      _CTYPE_DATA_0_127,
> -    _CTYPE_CP858_128_256
> +    _CTYPE_CP858_128_254,
> +    _CTYPE_CP858_255
>    },
> -  { _CTYPE_CP862_128_256,
> +  { _CTYPE_CP862_128_254,
> +    0,
>      _CTYPE_DATA_0_127,
> -    _CTYPE_CP862_128_256
> +    _CTYPE_CP862_128_254,
> +    _CTYPE_CP862_255
>    },
> -  { _CTYPE_CP866_128_256,
> +  { _CTYPE_CP866_128_254,
> +    0,
>      _CTYPE_DATA_0_127,
> -    _CTYPE_CP866_128_256
> +    _CTYPE_CP866_128_254,
> +    _CTYPE_CP866_255
>    },
> -  { _CTYPE_CP874_128_256,
> +  { _CTYPE_CP874_128_254,
> +    0,
>      _CTYPE_DATA_0_127,
> -    _CTYPE_CP874_128_256
> +    _CTYPE_CP874_128_254,
> +    _CTYPE_CP874_255
>    },
> -  { _CTYPE_CP1125_128_256,
> +  { _CTYPE_CP1125_128_254,
> +    0,
>      _CTYPE_DATA_0_127,
> -    _CTYPE_CP1125_128_256
> +    _CTYPE_CP1125_128_254,
> +    _CTYPE_CP1125_255
>    },
> -  { _CTYPE_CP1250_128_256,
> +  { _CTYPE_CP1250_128_254,
> +    0,
>      _CTYPE_DATA_0_127,
> -    _CTYPE_CP1250_128_256
> +    _CTYPE_CP1250_128_254,
> +    _CTYPE_CP1250_255
>    },
> -  { _CTYPE_CP1251_128_256,
> +  { _CTYPE_CP1251_128_254,
> +    0,
>      _CTYPE_DATA_0_127,
> -    _CTYPE_CP1251_128_256
> +    _CTYPE_CP1251_128_254,
> +    _CTYPE_CP1251_255
>    },
> -  { _CTYPE_CP1252_128_256,
> +  { _CTYPE_CP1252_128_254,
> +    0,
>      _CTYPE_DATA_0_127,
> -    _CTYPE_CP1252_128_256
> +    _CTYPE_CP1252_128_254,
> +    _CTYPE_CP1252_255
>    },
> -  { _CTYPE_CP1253_128_256,
> +  { _CTYPE_CP1253_128_254,
> +    0,
>      _CTYPE_DATA_0_127,
> -    _CTYPE_CP1253_128_256
> +    _CTYPE_CP1253_128_254,
> +    _CTYPE_CP1253_255
>    },
> -  { _CTYPE_CP1254_128_256,
> +  { _CTYPE_CP1254_128_254,
> +    0,
>      _CTYPE_DATA_0_127,
> -    _CTYPE_CP1254_128_256
> +    _CTYPE_CP1254_128_254,
> +    _CTYPE_CP1254_255
>    },
> -  { _CTYPE_CP1255_128_256,
> +  { _CTYPE_CP1255_128_254,
> +    0,
>      _CTYPE_DATA_0_127,
> -    _CTYPE_CP1255_128_256
> +    _CTYPE_CP1255_128_254,
> +    _CTYPE_CP1255_255
>    },
> -  { _CTYPE_CP1256_128_256,
> +  { _CTYPE_CP1256_128_254,
> +    0,
>      _CTYPE_DATA_0_127,
> -    _CTYPE_CP1256_128_256
> +    _CTYPE_CP1256_128_254,
> +    _CTYPE_CP1256_255
>    },
> -  { _CTYPE_CP1257_128_256,
> +  { _CTYPE_CP1257_128_254,
> +    0,
>      _CTYPE_DATA_0_127,
> -    _CTYPE_CP1257_128_256
> +    _CTYPE_CP1257_128_254,
> +    _CTYPE_CP1257_255
>    },
> -  { _CTYPE_CP1258_128_256,
> +  { _CTYPE_CP1258_128_254,
> +    0,
>      _CTYPE_DATA_0_127,
> -    _CTYPE_CP1258_128_256
> +    _CTYPE_CP1258_128_254,
> +    _CTYPE_CP1258_255
>    },
>  };
>  
> @@ -479,91 +545,113 @@ char __ctype_cp[22][128 + 256] = {
>  static _CONST char __ctype_cp[22][1 + 256] = {
>    { 0,
>      _CTYPE_DATA_0_127,
> -    _CTYPE_CP437_128_256
> +    _CTYPE_CP437_128_254,
> +    _CTYPE_CP437_255
>    },
>    { 0,
>      _CTYPE_DATA_0_127,
> -    _CTYPE_CP720_128_256
> +    _CTYPE_CP720_128_254,
> +    _CTYPE_CP720_255
>    },
>    { 0,
>      _CTYPE_DATA_0_127,
> -    _CTYPE_CP737_128_256
> +    _CTYPE_CP737_128_254,
> +    _CTYPE_CP737_255
>    },
>    { 0,
>      _CTYPE_DATA_0_127,
> -    _CTYPE_CP775_128_256
> +    _CTYPE_CP775_128_254,
> +    _CTYPE_CP775_255
>    },
>    { 0,
>      _CTYPE_DATA_0_127,
> -    _CTYPE_CP850_128_256
> +    _CTYPE_CP850_128_254,
> +    _CTYPE_CP850_255
>    },
>    { 0,
>      _CTYPE_DATA_0_127,
> -    _CTYPE_CP852_128_256
> +    _CTYPE_CP852_128_254,
> +    _CTYPE_CP852_255
>    },
>    { 0,
>      _CTYPE_DATA_0_127,
> -    _CTYPE_CP855_128_256
> +    _CTYPE_CP855_128_254,
> +    _CTYPE_CP855_255
>    },
>    { 0,
>      _CTYPE_DATA_0_127,
> -    _CTYPE_CP857_128_256
> +    _CTYPE_CP857_128_254,
> +    _CTYPE_CP857_255
>    },
>    { 0,
>      _CTYPE_DATA_0_127,
> -    _CTYPE_CP858_128_256
> +    _CTYPE_CP858_128_254,
> +    _CTYPE_CP858_255
>    },
>    { 0,
>      _CTYPE_DATA_0_127,
> -    _CTYPE_CP862_128_256
> +    _CTYPE_CP862_128_254,
> +    _CTYPE_CP862_255
>    },
>    { 0,
>      _CTYPE_DATA_0_127,
> -    _CTYPE_CP866_128_256
> +    _CTYPE_CP866_128_254,
> +    _CTYPE_CP866_255
>    },
>    { 0,
>      _CTYPE_DATA_0_127,
> -    _CTYPE_CP874_128_256
> +    _CTYPE_CP874_128_254,
> +    _CTYPE_CP874_255
>    },
>    { 0,
>      _CTYPE_DATA_0_127,
> -    _CTYPE_CP1125_128_256
> +    _CTYPE_CP1125_128_254,
> +    _CTYPE_CP1125_255
>    },
>    { 0,
>      _CTYPE_DATA_0_127,
> -    _CTYPE_CP1250_128_256
> +    _CTYPE_CP1250_128_254,
> +    _CTYPE_CP1250_255
>    },
>    { 0,
>      _CTYPE_DATA_0_127,
> -    _CTYPE_CP1251_128_256
> +    _CTYPE_CP1251_128_254,
> +    _CTYPE_CP1251_255
>    },
>    { 0,
>      _CTYPE_DATA_0_127,
> -    _CTYPE_CP1252_128_256
> +    _CTYPE_CP1252_128_254,
> +    _CTYPE_CP1252_255
>    },
>    { 0,
>      _CTYPE_DATA_0_127,
> -    _CTYPE_CP1253_128_256
> +    _CTYPE_CP1253_128_254,
> +    _CTYPE_CP1253_255
>    },
>    { 0,
>      _CTYPE_DATA_0_127,
> -    _CTYPE_CP1254_128_256
> +    _CTYPE_CP1254_128_254,
> +    _CTYPE_CP1254_255
>    },
>    { 0,
>      _CTYPE_DATA_0_127,
> -    _CTYPE_CP1255_128_256
> +    _CTYPE_CP1255_128_254,
> +    _CTYPE_CP1255_255
>    },
>    { 0,
>      _CTYPE_DATA_0_127,
> -    _CTYPE_CP1256_128_256
> +    _CTYPE_CP1256_128_254,
> +    _CTYPE_CP1256_255
>    },
>    { 0,
>      _CTYPE_DATA_0_127,
> -    _CTYPE_CP1257_128_256
> +    _CTYPE_CP1257_128_254,
> +    _CTYPE_CP1257_255
>    },
>    { 0,
>      _CTYPE_DATA_0_127,
> -    _CTYPE_CP1258_128_256
> +    _CTYPE_CP1258_128_254,
> +    _CTYPE_CP1258_255
>    },
>  };
>  
> Index: libc/ctype/ctype_iso.h
> ===================================================================
> RCS file: /cvs/src/src/newlib/libc/ctype/ctype_iso.h,v
> retrieving revision 1.2
> diff -u -p -r1.2 ctype_iso.h
> --- libc/ctype/ctype_iso.h	9 Apr 2009 10:37:57 -0000	1.2
> +++ libc/ctype/ctype_iso.h	21 Apr 2009 18:00:07 -0000
> @@ -1,7 +1,7 @@
>  /* ctype table definitions for ISO-8859-x charsets. 
>     Included by ctype_.c. */
>  
> -#define _CTYPE_ISO_8859_1_128_256 \
> +#define _CTYPE_ISO_8859_1_128_254 \
>          _C,     _C,     _C,     _C,     _C,     _C,     _C,     _C, \
>          _C,     _C,     _C,     _C,     _C,     _C,     _C,     _C, \
>          _C,     _C,     _C,     _C,     _C,     _C,     _C,     _C, \
> @@ -17,8 +17,9 @@
>          _L,     _L,     _L,     _L,     _L,     _L,     _L,     _L, \
>          _L,     _L,     _L,     _L,     _L,     _L,     _L,     _L, \
>          _L,     _L,     _L,     _L,     _L,     _L,     _L,     _P, \
> -        _L,     _L,     _L,     _L,     _L,     _L,     _L,     _L
> -#define _CTYPE_ISO_8859_2_128_256 \
> +        _L,     _L,     _L,     _L,     _L,     _L,     _L
> +#define _CTYPE_ISO_8859_1_255 _L
> +#define _CTYPE_ISO_8859_2_128_254 \
>     	_C,     _C,     _C,     _C,     _C,     _C,     _C,     _C, \
>          _C,     _C,     _C,     _C,     _C,     _C,     _C,     _C, \
>          _C,     _C,     _C,     _C,     _C,     _C,     _C,     _C, \
> @@ -34,8 +35,9 @@
>          _L,     _L,     _L,     _L,     _L,     _L,     _L,     _L, \
>          _L,     _L,     _L,     _L,     _L,     _L,     _L,     _L, \
>          _L,     _L,     _L,     _L,     _L,     _L,     _L,     _P, \
> -        _L,     _L,     _L,     _L,     _L,     _L,     _L,     _P
> -#define _CTYPE_ISO_8859_3_128_256 \
> +        _L,     _L,     _L,     _L,     _L,     _L,     _L
> +#define _CTYPE_ISO_8859_2_255 _P
> +#define _CTYPE_ISO_8859_3_128_254 \
>     	_C,     _C,     _C,     _C,     _C,     _C,     _C,     _C, \
>          _C,     _C,     _C,     _C,     _C,     _C,     _C,     _C, \
>          _C,     _C,     _C,     _C,     _C,     _C,     _C,     _C, \
> @@ -51,8 +53,9 @@
>  	_L,	_L,	_L,	0,	_L,	_L,	_L,	_L, \
>  	_L,	_L,	_L,	_L,	_L,	_L,	_L,	_L, \
>  	0,	_L,	_L,	_L,	_L,	_L,	_L,	_P, \
> -	_L,	_L,	_L,	_L,	_L,	_L,	_L,	_P
> -#define _CTYPE_ISO_8859_4_128_256 \
> +	_L,	_L,	_L,	_L,	_L,	_L,	_L
> +#define _CTYPE_ISO_8859_3_255 _P
> +#define _CTYPE_ISO_8859_4_128_254 \
>     	_C,     _C,     _C,     _C,     _C,     _C,     _C,     _C, \
>          _C,     _C,     _C,     _C,     _C,     _C,     _C,     _C, \
>          _C,     _C,     _C,     _C,     _C,     _C,     _C,     _C, \
> @@ -68,8 +71,9 @@
>          _L,     _L,     _L,     _L,     _L,     _L,     _L,     _L, \
>          _L,     _L,     _L,     _L,     _L,     _L,     _L,     _L, \
>          _L,     _L,     _L,     _L,     _L,     _L,     _L,     _P, \
> -        _L,     _L,     _L,     _L,     _L,     _L,     _L,     _L
> -#define _CTYPE_ISO_8859_5_128_256 \
> +        _L,     _L,     _L,     _L,     _L,     _L,     _L
> +#define _CTYPE_ISO_8859_4_255 _L
> +#define _CTYPE_ISO_8859_5_128_254 \
>     	_C,     _C,     _C,     _C,     _C,     _C,     _C,     _C, \
>          _C,     _C,     _C,     _C,     _C,     _C,     _C,     _C, \
>          _C,     _C,     _C,     _C,     _C,     _C,     _C,     _C, \
> @@ -85,8 +89,9 @@
>          _L,     _L,     _L,     _L,     _L,     _L,     _L,     _L, \
>          _L,     _L,     _L,     _L,     _L,     _L,     _L,     _L, \
>          _P,     _L,     _L,     _L,     _L,     _L,     _L,     _L, \
> -        _L,     _L,     _L,     _L,     _L,     _P,     _L,     _L
> -#define _CTYPE_ISO_8859_6_128_256 \
> +        _L,     _L,     _L,     _L,     _L,     _P,     _L
> +#define _CTYPE_ISO_8859_5_255 _L
> +#define _CTYPE_ISO_8859_6_128_254 \
>     	_C,     _C,     _C,     _C,     _C,     _C,     _C,     _C, \
>          _C,     _C,     _C,     _C,     _C,     _C,     _C,     _C, \
>          _C,     _C,     _C,     _C,     _C,     _C,     _C,     _C, \
> @@ -102,8 +107,9 @@
>  	_P,	_U|_L,	_U|_L,	_U|_L,	_U|_L,	_U|_L,	_U|_L,	_U|_L, \
>  	_U|_L,	_U|_L,	_U|_L,	_P,	_P,	_P,	_P,	_P, \
>  	_P,	_P,	_P,	0,	0,	0,	0,	0,  \
> -	0,	0,	0,	0,	0,	0,	0,	0
> -#define _CTYPE_ISO_8859_7_128_256 \
> +	0,	0,	0,	0,	0,	0,	0
> +#define _CTYPE_ISO_8859_6_255 0
> +#define _CTYPE_ISO_8859_7_128_254 \
>     	_C,     _C,     _C,     _C,     _C,     _C,     _C,     _C, \
>          _C,     _C,     _C,     _C,     _C,     _C,     _C,     _C, \
>          _C,     _C,     _C,     _C,     _C,     _C,     _C,     _C, \
> @@ -119,8 +125,9 @@
>  	_L,	_L,	_L,	_L,	_L,	_L,	_L,	_L, \
>  	_L,	_L,	_L,	_L,	_L,	_L,	_L,	_L, \
>  	_L,	_L,	_L,	_L,	_L,	_L,	_L,	_L, \
> -	_L,	_L,	_L,	_L,	_L,	_L,	_L,	0
> -#define _CTYPE_ISO_8859_8_128_256 \
> +	_L,	_L,	_L,	_L,	_L,	_L,	_L
> +#define _CTYPE_ISO_8859_7_255 0
> +#define _CTYPE_ISO_8859_8_128_254 \
>     	_C,     _C,     _C,     _C,     _C,     _C,     _C,     _C, \
>          _C,     _C,     _C,     _C,     _C,     _C,     _C,     _C, \
>          _C,     _C,     _C,     _C,     _C,     _C,     _C,     _C, \
> @@ -136,8 +143,9 @@
>  	_U|_L,	_U|_L,	_U|_L,	_U|_L,	_U|_L,	_U|_L,	_U|_L,	_U|_L, \
>  	_U|_L,	_U|_L,	_U|_L,	_U|_L,	_U|_L,	_U|_L,	_U|_L,	_U|_L, \
>  	_U|_L,	_U|_L,	_U|_L,	_U|_L,	_U|_L,	_U|_L,	_U|_L,	_U|_L, \
> -	_U|_L,	_U|_L,	_U|_L,	0,	0,	_P,	_P,	0
> -#define _CTYPE_ISO_8859_9_128_256 \
> +	_U|_L,	_U|_L,	_U|_L,	0,	0,	_P,	_P
> +#define _CTYPE_ISO_8859_8_255 0
> +#define _CTYPE_ISO_8859_9_128_254 \
>     	_C,     _C,     _C,     _C,     _C,     _C,     _C,     _C, \
>          _C,     _C,     _C,     _C,     _C,     _C,     _C,     _C, \
>          _C,     _C,     _C,     _C,     _C,     _C,     _C,     _C, \
> @@ -153,8 +161,9 @@
>  	_L,	_L,	_L,	_L,	_L,	_L,	_L,	_L, \
>  	_L,	_L,	_L,	_L,	_L,	_L,	_L,	_L, \
>  	_L,	_L,	_L,	_L,	_L,	_L,	_L,	_P, \
> -	_L,	_L,	_L,	_L,	_L,	_L,	_L,	_L
> -#define _CTYPE_ISO_8859_10_128_256 \
> +	_L,	_L,	_L,	_L,	_L,	_L,	_L
> +#define _CTYPE_ISO_8859_9_255 _L
> +#define _CTYPE_ISO_8859_10_128_254 \
>     	_C,     _C,     _C,     _C,     _C,     _C,     _C,     _C, \
>          _C,     _C,     _C,     _C,     _C,     _C,     _C,     _C, \
>          _C,     _C,     _C,     _C,     _C,     _C,     _C,     _C, \
> @@ -170,8 +179,9 @@
>  	_L,	_L,	_L,	_L,	_L,	_L,	_L,	_L, \
>  	_L,	_L,	_L,	_L,	_L,	_L,	_L,	_L, \
>  	_L,	_L,	_L,	_L,	_L,	_L,	_L,	_L, \
> -	_L,	_L,	_L,	_L,	_L,	_L,	_L,	_L
> -#define _CTYPE_ISO_8859_11_128_256 \
> +	_L,	_L,	_L,	_L,	_L,	_L,	_L
> +#define _CTYPE_ISO_8859_10_255 _L
> +#define _CTYPE_ISO_8859_11_128_254 \
>     	_C,     _C,     _C,     _C,     _C,     _C,     _C,     _C, \
>          _C,     _C,     _C,     _C,     _C,     _C,     _C,     _C, \
>          _C,     _C,     _C,     _C,     _C,     _C,     _C,     _C, \
> @@ -187,8 +197,9 @@
>  	_U|_L,	_U|_L,	_U|_L,	_U|_L,	_U|_L,	_U|_L,	_U|_L,	_P, \
>  	_P,	_P,	_P,	_P,	_P,	_P,	_P,	_U|_L, \
>  	_U|_L,	_U|_L,	_U|_L,	_U|_L,	_U|_L,	_U|_L,	_U|_L,	_U|_L, \
> -	_U|_L,	_U|_L,	_U|_L,	_U|_L,	0,	0,	0,	0
> -#define _CTYPE_ISO_8859_13_128_256 \
> +	_U|_L,	_U|_L,	_U|_L,	_U|_L,	0,	0,	0
> +#define _CTYPE_ISO_8859_11_255 0
> +#define _CTYPE_ISO_8859_13_128_254 \
>     	_C,     _C,     _C,     _C,     _C,     _C,     _C,     _C, \
>          _C,     _C,     _C,     _C,     _C,     _C,     _C,     _C, \
>          _C,     _C,     _C,     _C,     _C,     _C,     _C,     _C, \
> @@ -204,8 +215,9 @@
>  	_L,	_L,	_L,	_L,	_L,	_L,	_L,	_L, \
>  	_L,	_L,	_L,	_L,	_L,	_L,	_L,	_L, \
>  	_L,	_L,	_L,	_L,	_L,	_L,	_L,	_P, \
> -	_L,	_L,	_L,	_L,	_L,	_L,	_L,	_P
> -#define _CTYPE_ISO_8859_14_128_256 \
> +	_L,	_L,	_L,	_L,	_L,	_L,	_L
> +#define _CTYPE_ISO_8859_13_255 _P
> +#define _CTYPE_ISO_8859_14_128_254 \
>     	_C,     _C,     _C,     _C,     _C,     _C,     _C,     _C, \
>          _C,     _C,     _C,     _C,     _C,     _C,     _C,     _C, \
>          _C,     _C,     _C,     _C,     _C,     _C,     _C,     _C, \
> @@ -221,8 +233,9 @@
>  	_L,	_L,	_L,	_L,	_L,	_L,	_L,	_L, \
>  	_L,	_L,	_L,	_L,	_L,	_L,	_L,	_L, \
>  	_L,	_L,	_L,	_L,	_L,	_L,	_L,	_L, \
> -	_L,	_L,	_L,	_L,	_L,	_L,	_L,	_L
> -#define _CTYPE_ISO_8859_15_128_256 \
> +	_L,	_L,	_L,	_L,	_L,	_L,	_L
> +#define _CTYPE_ISO_8859_14_255 _L
> +#define _CTYPE_ISO_8859_15_128_254 \
>     	_C,     _C,     _C,     _C,     _C,     _C,     _C,     _C, \
>          _C,     _C,     _C,     _C,     _C,     _C,     _C,     _C, \
>          _C,     _C,     _C,     _C,     _C,     _C,     _C,     _C, \
> @@ -238,8 +251,9 @@
>          _L,     _L,     _L,     _L,     _L,     _L,     _L,     _L, \
>          _L,     _L,     _L,     _L,     _L,     _L,     _L,     _L, \
>          _L,     _L,     _L,     _L,     _L,     _L,     _L,     _P, \
> -        _L,     _L,     _L,     _L,     _L,     _L,     _L,     _L
> -#define _CTYPE_ISO_8859_16_128_256 \
> +        _L,     _L,     _L,     _L,     _L,     _L,     _L
> +#define _CTYPE_ISO_8859_15_255 _L
> +#define _CTYPE_ISO_8859_16_128_254 \
>     	_C,     _C,     _C,     _C,     _C,     _C,     _C,     _C, \
>          _C,     _C,     _C,     _C,     _C,     _C,     _C,     _C, \
>          _C,     _C,     _C,     _C,     _C,     _C,     _C,     _C, \
> @@ -255,7 +269,8 @@
>  	_L,	_L,	_L,	_L,	_L,	_L,	_L,	_L, \
>  	_L,	_L,	_L,	_L,	_L,	_L,	_L,	_L, \
>  	_L,	_L,	_L,	_L,	_L,	_L,	_L,	_L, \
> -	_L,	_L,	_L,	_L,	_L,	_L,	_L,	_L
> +	_L,	_L,	_L,	_L,	_L,	_L,	_L
> +#define _CTYPE_ISO_8859_16_255 _L
>  
>  extern int __iso_8859_index (const char *charset_ext);
>  
> @@ -265,65 +280,95 @@ extern int __iso_8859_index (const char 
>  static _CONST
>  #endif
>  char __ctype_iso[15][128 + 256] = {
> -  { _CTYPE_ISO_8859_1_128_256,
> +  { _CTYPE_ISO_8859_1_128_254,
> +    0,
>      _CTYPE_DATA_0_127,
> -    _CTYPE_ISO_8859_1_128_256
> +    _CTYPE_ISO_8859_1_128_254,
> +    _CTYPE_ISO_8859_1_255
>    },
> -  { _CTYPE_ISO_8859_2_128_256,
> +  { _CTYPE_ISO_8859_2_128_254,
> +    0,
>      _CTYPE_DATA_0_127,
> -    _CTYPE_ISO_8859_2_128_256
> +    _CTYPE_ISO_8859_2_128_254,
> +    _CTYPE_ISO_8859_2_255
>    },
> -  { _CTYPE_ISO_8859_3_128_256,
> +  { _CTYPE_ISO_8859_3_128_254,
> +    0,
>      _CTYPE_DATA_0_127,
> -    _CTYPE_ISO_8859_3_128_256
> +    _CTYPE_ISO_8859_3_128_254,
> +    _CTYPE_ISO_8859_3_255
>    },
> -  { _CTYPE_ISO_8859_4_128_256,
> +  { _CTYPE_ISO_8859_4_128_254,
> +    0,
>      _CTYPE_DATA_0_127,
> -    _CTYPE_ISO_8859_4_128_256
> +    _CTYPE_ISO_8859_4_128_254,
> +    _CTYPE_ISO_8859_4_255
>    },
> -  { _CTYPE_ISO_8859_5_128_256,
> +  { _CTYPE_ISO_8859_5_128_254,
> +    0,
>      _CTYPE_DATA_0_127,
> -    _CTYPE_ISO_8859_5_128_256
> +    _CTYPE_ISO_8859_5_128_254,
> +    _CTYPE_ISO_8859_5_255
>    },
> -  { _CTYPE_ISO_8859_6_128_256,
> +  { _CTYPE_ISO_8859_6_128_254,
> +    0,
>      _CTYPE_DATA_0_127,
> -    _CTYPE_ISO_8859_6_128_256
> +    _CTYPE_ISO_8859_6_128_254,
> +    _CTYPE_ISO_8859_6_255
>    },
> -  { _CTYPE_ISO_8859_7_128_256,
> +  { _CTYPE_ISO_8859_7_128_254,
> +    0,
>      _CTYPE_DATA_0_127,
> -    _CTYPE_ISO_8859_7_128_256
> +    _CTYPE_ISO_8859_7_128_254,
> +    _CTYPE_ISO_8859_7_255
>    },
> -  { _CTYPE_ISO_8859_8_128_256,
> +  { _CTYPE_ISO_8859_8_128_254,
> +    0,
>      _CTYPE_DATA_0_127,
> -    _CTYPE_ISO_8859_8_128_256
> +    _CTYPE_ISO_8859_8_128_254,
> +    _CTYPE_ISO_8859_8_255
>    },
> -  { _CTYPE_ISO_8859_9_128_256,
> +  { _CTYPE_ISO_8859_9_128_254,
> +    0,
>      _CTYPE_DATA_0_127,
> -    _CTYPE_ISO_8859_9_128_256
> +    _CTYPE_ISO_8859_9_128_254,
> +    _CTYPE_ISO_8859_9_255
>    },
> -  { _CTYPE_ISO_8859_10_128_256,
> +  { _CTYPE_ISO_8859_10_128_254,
> +    0,
>      _CTYPE_DATA_0_127,
> -    _CTYPE_ISO_8859_10_128_256
> +    _CTYPE_ISO_8859_10_128_254,
> +    _CTYPE_ISO_8859_10_255
>    },
> -  { _CTYPE_ISO_8859_11_128_256,
> +  { _CTYPE_ISO_8859_11_128_254,
> +    0,
>      _CTYPE_DATA_0_127,
> -    _CTYPE_ISO_8859_11_128_256
> +    _CTYPE_ISO_8859_11_128_254,
> +    _CTYPE_ISO_8859_11_255
>    },
> -  { _CTYPE_ISO_8859_13_128_256,
> +  { _CTYPE_ISO_8859_13_128_254,
> +    0,
>      _CTYPE_DATA_0_127,
> -    _CTYPE_ISO_8859_13_128_256
> +    _CTYPE_ISO_8859_13_128_254,
> +    _CTYPE_ISO_8859_13_255
>    },
> -  { _CTYPE_ISO_8859_14_128_256,
> +  { _CTYPE_ISO_8859_14_128_254,
> +    0,
>      _CTYPE_DATA_0_127,
> -    _CTYPE_ISO_8859_14_128_256
> +    _CTYPE_ISO_8859_14_128_254,
> +    _CTYPE_ISO_8859_14_255
>    },
> -  { _CTYPE_ISO_8859_15_128_256,
> +  { _CTYPE_ISO_8859_15_128_254,
> +    0,
>      _CTYPE_DATA_0_127,
> -    _CTYPE_ISO_8859_15_128_256
> +    _CTYPE_ISO_8859_15_128_254,
> +    _CTYPE_ISO_8859_15_255
>    },
> -  { _CTYPE_ISO_8859_16_128_256,
> +  { _CTYPE_ISO_8859_16_128_254,
> +    0,
>      _CTYPE_DATA_0_127,
> -    _CTYPE_ISO_8859_16_128_256
> +    _CTYPE_ISO_8859_16_128_254,
> +    _CTYPE_ISO_8859_16_255
>    },
>  };
>  
> @@ -332,63 +377,78 @@ char __ctype_iso[15][128 + 256] = {
>  static _CONST char __ctype_iso[15][1 + 256] = {
>    { 0,
>      _CTYPE_DATA_0_127,
> -    _CTYPE_ISO_8859_1_128_256
> +    _CTYPE_ISO_8859_1_128_254,
> +    _CTYPE_ISO_8859_1_255
>    },
>    { 0,
>      _CTYPE_DATA_0_127,
> -    _CTYPE_ISO_8859_2_128_256
> +    _CTYPE_ISO_8859_2_128_254,
> +    _CTYPE_ISO_8859_2_255
>    },
>    { 0,
>      _CTYPE_DATA_0_127,
> -    _CTYPE_ISO_8859_3_128_256
> +    _CTYPE_ISO_8859_3_128_254,
> +    _CTYPE_ISO_8859_3_255
>    },
>    { 0,
>      _CTYPE_DATA_0_127,
> -    _CTYPE_ISO_8859_4_128_256
> +    _CTYPE_ISO_8859_4_128_254,
> +    _CTYPE_ISO_8859_4_255
>    },
>    { 0,
>      _CTYPE_DATA_0_127,
> -    _CTYPE_ISO_8859_5_128_256
> +    _CTYPE_ISO_8859_5_128_254,
> +    _CTYPE_ISO_8859_5_255
>    },
>    { 0,
>      _CTYPE_DATA_0_127,
> -    _CTYPE_ISO_8859_6_128_256
> +    _CTYPE_ISO_8859_6_128_254,
> +    _CTYPE_ISO_8859_6_255
>    },
>    { 0,
>      _CTYPE_DATA_0_127,
> -    _CTYPE_ISO_8859_7_128_256
> +    _CTYPE_ISO_8859_7_128_254,
> +    _CTYPE_ISO_8859_7_255
>    },
>    { 0,
>      _CTYPE_DATA_0_127,
> -    _CTYPE_ISO_8859_8_128_256
> +    _CTYPE_ISO_8859_8_128_254,
> +    _CTYPE_ISO_8859_8_255
>    },
>    { 0,
>      _CTYPE_DATA_0_127,
> -    _CTYPE_ISO_8859_9_128_256
> +    _CTYPE_ISO_8859_9_128_254,
> +    _CTYPE_ISO_8859_9_255
>    },
>    { 0,
>      _CTYPE_DATA_0_127,
> -    _CTYPE_ISO_8859_10_128_256
> +    _CTYPE_ISO_8859_10_128_254,
> +    _CTYPE_ISO_8859_10_255
>    },
>    { 0,
>      _CTYPE_DATA_0_127,
> -    _CTYPE_ISO_8859_11_128_256
> +    _CTYPE_ISO_8859_11_128_254,
> +    _CTYPE_ISO_8859_11_255
>    },
>    { 0,
>      _CTYPE_DATA_0_127,
> -    _CTYPE_ISO_8859_13_128_256
> +    _CTYPE_ISO_8859_13_128_254,
> +    _CTYPE_ISO_8859_13_255
>    },
>    { 0,
>      _CTYPE_DATA_0_127,
> -    _CTYPE_ISO_8859_14_128_256
> +    _CTYPE_ISO_8859_14_128_254,
> +    _CTYPE_ISO_8859_14_255
>    },
>    { 0,
>      _CTYPE_DATA_0_127,
> -    _CTYPE_ISO_8859_15_128_256
> +    _CTYPE_ISO_8859_15_128_254,
> +    _CTYPE_ISO_8859_15_255
>    },
>    { 0,
>      _CTYPE_DATA_0_127,
> -    _CTYPE_ISO_8859_16_128_256
> +    _CTYPE_ISO_8859_16_128_254,
> +    _CTYPE_ISO_8859_16_255
>    },
>  };
>  
>
>
>   



More information about the Newlib mailing list