so file must be created to work correctly in ASCII and EBCDIC system.

------------------------------------------------------------------------
 Yaroslav Kuzmin
Developer C/C++ ,z/OS , Linux
3 Zhukovskiy Street · Miass, Chelyabinsk region 456318 · Russia
Tel:  +7.922.2.38.33.38
Email: [email protected]
Web: www.rocketsoftware.com

________________________________________
From: [email protected] <[email protected]> on behalf of Jarkko Hietaniemi 
<[email protected]>
Sent: 11 April 2014 18:41
To: Yaroslav Kuzmin; demerphq
Cc: [email protected]; [email protected]; Perl5 Porters
Subject: Re: НА: Fwd: Re: USSP-37: Info Request for Perl Fwd: EBCDIC support is 
onthe chopping block

On Friday-201404-11, 7:29, Yaroslav Kuzmin wrote:
> miniperl not correctly process scripts.
>
> When analyzing found the incorrect processing of input data.
> Two possible solutions the problem
>
> first:
>   convert input data EBCDIC<>ASCII.
>   Converting input data is using macros NATIVE_TO_UTF, UTF_TO_NATIVE  and 
> array PL_e2utf , PL_utf2e in file utfebcdic.h
>   But the converting is strongly scattered by the source code in one place 
> and had a double converting EBCDIC > EBCDIC .
>
> second:
>   Changed array verification of input data in file charclass_invlists.h.

Can you share the changes you had to make, e.g. just simply "diff -u old
new" (or diff -c, depending on what diff tool you have available).

>
> ------------------------------------------------------------------------
>   Yaroslav Kuzmin
> Developer C/C++ ,z/OS , Linux
> 3 Zhukovskiy Street · Miass, Chelyabinsk region 456318 · Russia
> Tel:  +7.922.2.38.33.38
> Email: [email protected]
> Web: www.rocketsoftware.com
>
> ________________________________________
> From: [email protected] <[email protected]> on behalf of Jarkko Hietaniemi 
> <[email protected]>
> Sent: 10 April 2014 18:12
> To: Yaroslav Kuzmin; demerphq
> Cc: [email protected]; [email protected]; Perl5 Porters
> Subject: Re: НА: Fwd: Re: USSP-37: Info Request for Perl Fwd: EBCDIC support 
> is onthe chopping block
>
> On Thursday-201404-10, 8:05, Jarkko Hietaniemi wrote:
>> I edit the file charclass_invlist.h manually
>
> While you e.g. think about setting up an automated periodic build, one
> simple thing to get the dialogue started would be that you show (email
> to perl5-porters) these diffs you had to make for this file.  (And
> detail why exactly you had to do the diffs... to be able to build at
> all?  or to get more tests passing?)
>
>

--- charclass_invlists.h	2014-04-14 18:22:27.987416775 +0600
+++ charclass_invlists.h	2014-04-14 19:01:26.227510342 +0600
@@ -27,25 +27,38 @@
 };

 UV ASCII_invlist[] = {
+#ifndef EBCDIC
 	2,	/* Number of elements */
+#else
+	2,	/* Number of elements */
+#endif
 	0,	/* Current iteration position */
 	1064334010, /* Version and data structure type */
 	0,	/* 0 if this is the first element of the list proper;
 		   1 if the next element is the first */
+#ifndef EBCDIC
 	128,
+#else
+	256,
+#endif
 	0
 };

 UV L1Cased_invlist[] = {
+#ifndef EBCDIC
 	16,	/* Number of elements */
+#else
+	18,	/* Number of elements */
+#endif
 	0,	/* Current iteration position */
 	1064334010, /* Version and data structure type */
 	1,	/* 0 if this is the first element of the list proper;
 		   1 if the next element is the first */
-	65,
-	91,
-	97,
-	123,
+#ifndef EBCDIC
+	65,  /*'A'*/
+	91,  /*'Z'++*/
+	97,  /*'a'*/
+	123, /*'z'++*/
 	170,
 	171,
 	181,
@@ -58,50 +71,115 @@
 	247,
 	248,
 	443
+#else
+	129, /* 'a' */
+  138, /* 'i'++*/
+  145, /* 'j'  */
+	154, /* 'r'++*/
+	162, /* 's' */
+	171, /* 'z'+2*/
+	181, /* 0xB5  */
+	182, /* 0xB5++*/
+	186, /* 0xBA  */
+	187, /* 0xBA++*/
+	193, /* 'A' */
+	202, /* 'I'++*/
+	209, /* 'J'  */
+	218, /* 'R'++*/
+	226, /* 'S'  */
+	234, /* 'Z'++*/
+	250, /*0xFA  */
+	443
+#endif
 };

 UV VertSpace_invlist[] = {
+#ifndef EBCDIC
 	6,	/* Number of elements */
+#else
+	8,	/* Number of elements */
+#endif
 	0,	/* Current iteration position */
 	1064334010, /* Version and data structure type */
 	1,	/* 0 if this is the first element of the list proper;
 		   1 if the next element is the first */
-	10,
-	14,
-	133,
-	134,
+#ifndef EBCDIC
+	10,  /*0x0A*/
+	14,  /*0x0D++*/
+	133, /*0x85*/
+	134, /*0x85++*/
+#else
+	11, /*0x0B  */
+	14, /*0x0D++*/
+	37, /*0x25  */
+	38, /*0x25++*/
+	139,/*0x8B */
+	140,/*0x8B++*/
+#endif
 	8232,
 	8234
 };

 UV PerlSpace_invlist[] = {
+#ifndef EBCDIC
 	6,	/* Number of elements */
+#else
+	8,	/* Number of elements */
+#endif
 	0,	/* Current iteration position */
 	1064334010, /* Version and data structure type */
 	1,	/* 0 if this is the first element of the list proper;
 		   1 if the next element is the first */
-	9,
-	11,
-	12,
-	14,
-	32,
-	33
+#ifndef EBCDIC
+	9,  /*0x09*/
+	11, /*0x0A++*/
+	12, /*0x0C*/
+	14, /*0x0D++*/
+	32, /*' '*/
+	33  /*' ' ++*/
+#else
+	5,  /*0x05  */
+  6,  /*0x05++*/
+	12, /*0x0C  */
+	14, /*0x0D++*/
+	37, /*0x25  */
+	38, /*0x25++*/
+	64, /* ' ' */
+	65  /* ' '++*/
+#endif
 };

 UV XPerlSpace_invlist[] = {
+#ifndef EBCDIC
 	24,	/* Number of elements */
+#else
+	26,	/* Number of elements */
+#endif
 	0,	/* Current iteration position */
 	1064334010, /* Version and data structure type */
 	1,	/* 0 if this is the first element of the list proper;
-		   1 if the next element is the first */
-	9,
-	11,
-	12,
-	14,
-	32,
-	33,
-	133,
-	134,
+			1 if the next element is the first */
+#ifndef EBCDIC
+	9,   /*0x09 */
+	11,  /*0x0A++*/
+	12,  /*0x0C*/
+	14,  /*0x0D++*/
+	32,  /*' '*/
+	33,  /*' ' ++*/
+	133, /*0x85*/
+	134, /*0x85++*/
+#else
+	5,  /*0x05  */
+	6,  /*0x05++*/
+	12, /*0x0C  */
+	14, /*0x0D++*/
+	37, /*0x25  */
+	38, /*0x25++*/
+	64, /* ' ' */
+	65,  /* ' '++*/
+	139, /*0x8B */
+	140, /*0x8B++*/
+#endif
 	160,
 	161,
 	5760,
@@ -121,295 +199,686 @@
 };

 UV PosixAlnum_invlist[] = {
+#ifndef EBCDIC
 	6,	/* Number of elements */
+#else
+	14,	/* Number of elements */
+#endif
 	0,	/* Current iteration position */
 	1064334010, /* Version and data structure type */
 	1,	/* 0 if this is the first element of the list proper;
 		   1 if the next element is the first */
-	48,
-	58,
-	65,
-	91,
-	97,
-	123
+#ifndef EBCDIC
+	48,  /*'0'*/
+	58,  /*'9'++*/
+	65,  /*'A'*/
+	91,  /*'Z'++*/
+	97,  /*'a'*/
+	123  /*'z'++*/
+#else
+	129, /* 'a' */
+	138, /* 'i'++*/
+	145, /* 'j'  */
+	154, /* 'r'++*/
+	162, /* 's' */
+	170, /* 'z'++*/
+	193, /* 'A' */
+	202, /* 'I'++*/
+	209, /* 'J'  */
+	218, /* 'R'++*/
+	226, /* 'S'  */
+	234, /* 'Z'++*/
+	240, /* '0'  */
+	250  /* '9'++*/
+#endif
 };

 UV L1PosixAlnum_invlist[] = {
+#ifndef EBCDIC
 	18,	/* Number of elements */
+#else
+	16,	/* Number of elements */
+#endif
 	0,	/* Current iteration position */
 	1064334010, /* Version and data structure type */
 	1,	/* 0 if this is the first element of the list proper;
 		   1 if the next element is the first */
-	48,
-	58,
-	65,
-	91,
-	97,
-	123,
-	170,
-	171,
-	181,
-	182,
-	186,
-	187,
-	192,
-	215,
-	216,
-	247,
-	248,
-	706
+#ifndef EBCDIC
+	48,   /*'0'*/
+	58,   /*'9'++*/
+	65,   /*'A'*/
+	91,   /*'Z'++*/
+	97,   /*'a'*/
+	123,  /*'z'++*/
+	170,  /*0xAA*/
+	171,  /*0xAA++*/
+	181,  /*0xB5*/
+	182,  /*0xB5++*/
+	186,  /*0xBA*/
+	187,  /*0xBA++*/
+	192,  /*0xC0*/
+	215,  /*0xD6++*/
+	216,  /*0xD8*/
+	247,  /*0xF6++*/
+	248,  /*0xF8*/
+	706   /*0x2C1++*/
+#else
+	129, /* 'a' */
+	138, /* 'i'++*/
+	145, /* 'j'  */
+	154, /* 'r'++*/
+	162, /* 's' */
+	171, /* 'z'+2*/
+	181, /*0xB5  */
+	182, /*0xB5++*/
+	193, /* 'A'  */
+	202, /* 'I'++*/
+	209, /* 'J'  */
+	218, /* 'R'++*/
+	226, /* 'S'  */
+	234, /* 'Z'++*/
+	240, /* '0'  */
+	706  /* '9'+*/
+#endif
 };

 UV PosixAlpha_invlist[] = {
+#ifndef EBCDIC
 	4,	/* Number of elements */
+#else
+	12,	/* Number of elements */
+#endif
 	0,	/* Current iteration position */
 	1064334010, /* Version and data structure type */
 	1,	/* 0 if this is the first element of the list proper;
 		   1 if the next element is the first */
-	65,
-	91,
-	97,
-	123
+#ifndef EBCDIC
+	65,  /*'A'*/
+	91,  /*'Z'++*/
+	97,  /*'a'*/
+	123  /*'z'++*/
+#else
+	129, /* 'a' */
+	138, /* 'i'++*/
+	145, /* 'j'  */
+	154, /* 'r'++*/
+	162, /* 's' */
+	170, /* 'z'++*/
+	193, /* 'A'  */
+	202, /* 'I'++*/
+	209, /* 'J'  */
+	218, /* 'R'++*/
+	226, /* 'S'  */
+	234 /* 'Z'++*/
+#endif
 };

 UV L1PosixAlpha_invlist[] = {
+#ifndef EBCDIC
 	16,	/* Number of elements */
+#else
+	16,	/* Number of elements */
+#endif
 	0,	/* Current iteration position */
 	1064334010, /* Version and data structure type */
 	1,	/* 0 if this is the first element of the list proper;
 		   1 if the next element is the first */
-	65,
-	91,
-	97,
-	123,
-	170,
-	171,
-	181,
-	182,
-	186,
-	187,
-	192,
-	215,
-	216,
-	247,
-	248,
-	706
+#ifndef EBCDIC
+	65,  /*'A'*/
+	91,  /*'Z'++*/
+	97,  /*'a'*/
+	123, /*'z'++*/
+	170, /*0xAA*/
+	171, /*0xAA++*/
+	181, /*0xB5*/
+	182, /*0xB5++*/
+	186, /*0xBA*/
+	187, /*0xBA++*/
+	192, /*0xC0*/
+	215, /*0xD6++*/
+	216, /*0xD8*/
+	247, /*0xF6++*/
+	248, /*0xF8*/
+	706  /*0x2C1++*/
+#else
+	129, /* 'a' */
+	138, /* 'i'++*/
+	145, /* 'j'  */
+	154, /* 'r'++*/
+	162, /* 's' */
+	171, /* 'z'+2*/
+	181, /* 0xB5 */
+	182, /* 0xB5++*/
+	193, /* 'A'  */
+	202, /* 'I'++*/
+	209, /* 'J'  */
+	218, /* 'R'++*/
+	226, /* 'S'  */
+	234, /* 'Z'++*/
+	250, /*0xFA  */
+	706  /*0x2C1++*/
+#endif
 };

 UV PosixBlank_invlist[] = {
+#ifndef EBCDIC
+	4,	/* Number of elements */
+#else
 	4,	/* Number of elements */
+#endif
 	0,	/* Current iteration position */
 	1064334010, /* Version and data structure type */
 	1,	/* 0 if this is the first element of the list proper;
 		   1 if the next element is the first */
-	9,
-	10,
-	32,
-	33
+#ifndef EBCDIC
+	9,  /*0x09*/
+	10, /*0x09++*/
+	32, /*' '*/
+	33  /*' '++*/
+#else
+	5, /*0x05  */
+	6, /*0x05++*/
+	64,/* ' '  */
+	65 /* ' '++*/
+#endif
 };

 UV XPosixBlank_invlist[] = {
+#ifndef EBCDIC
+	18,	/* Number of elements */
+#else
 	18,	/* Number of elements */
+#endif
 	0,	/* Current iteration position */
 	1064334010, /* Version and data structure type */
 	1,	/* 0 if this is the first element of the list proper;
 		   1 if the next element is the first */
-	9,
-	10,
-	32,
-	33,
-	160,
-	161,
-	5760,
-	5761,
-	6158,
-	6159,
-	8192,
-	8203,
-	8239,
-	8240,
-	8287,
-	8288,
-	12288,
-	12289
+#ifndef EBCDIC
+	9,   /*0x09*/
+	10,  /*0x09++*/
+	32,  /*' '*/
+	33,  /*' '++*/
+#else
+	5, /*0x05  */
+	6, /*0x05++*/
+	64,/* ' '  */
+	65, /* ' '++*/
+#endif
+	160,/* 0xA0  */
+	161,/* 0xA0++*/
+	5760,/**/
+	5761,/*++*/
+	6158,/**/
+	6159,/*++*/
+	8192,/**/
+	8203,/*++*/
+	8239,/**/
+	8240,/*++*/
+	8287,/**/
+	8288,/*++*/
+	12288,/**/
+	12289 /*++*/
 };

 UV PosixCntrl_invlist[] = {
+#ifndef EBCDIC
 	4,	/* Number of elements */
+#else
+	2,	/* Number of elements */
+#endif
 	0,	/* Current iteration position */
 	1064334010, /* Version and data structure type */
 	0,	/* 0 if this is the first element of the list proper;
 		   1 if the next element is the first */
+#ifndef EBCDIC
 	32,
 	127,
 	128,
 	0
+#else
+	64,
+	0
+#endif
 };

 UV XPosixCntrl_invlist[] = {
+#ifndef EBCDIC
 	4,	/* Number of elements */
+#else
+	6,	/* Number of elements */
+#endif
 	0,	/* Current iteration position */
 	1064334010, /* Version and data structure type */
 	0,	/* 0 if this is the first element of the list proper;
 		   1 if the next element is the first */
-	32,
-	127,
-	160,
+#ifndef EBCDIC
+	32,  /*0x1F++*/
+	127, /*0x7F*/
+	160, /*0x9F++*/
 	0
+#else
+	64, /* ' ' */
+	138, /* 0x8A */
+	145, /* 0x90++*/
+	154, /* 0x9A */
+	160, /* 0x9F++*/
+	0
+#endif
 };

 UV PosixDigit_invlist[] = {
+#ifndef EBCDIC
+	2,	/* Number of elements */
+#else
 	2,	/* Number of elements */
+#endif
 	0,	/* Current iteration position */
 	1064334010, /* Version and data structure type */
 	1,	/* 0 if this is the first element of the list proper;
 		   1 if the next element is the first */
-	48,
-	58
+#ifndef EBCDIC
+	48,  /*'0'*/
+	58   /*'9'++*/
+#else
+	240, /* '0'  */
+	250  /* '9'++*/
+#endif
 };

 UV PosixGraph_invlist[] = {
+#ifndef EBCDIC
 	2,	/* Number of elements */
+#else
+	24,	/* Number of elements */
+#endif
 	0,	/* Current iteration position */
 	1064334010, /* Version and data structure type */
 	1,	/* 0 if this is the first element of the list proper;
 		   1 if the next element is the first */
-	33,
-	127
+#ifndef EBCDIC
+	33,  '!'
+	127  '~'++
+#else
+	75, /* '.' */
+	81, /* '&'++*/
+	90, /* '!' */
+	98, /* '/'++*/
+	106,/* '|' */
+	112,/* '?'++*/
+	121,/* '`' */
+	138,/* 'i'++*/
+	145,/* 'j'  */
+	154,/* 'r'++*/
+	161,/* '~' */
+	170,/* 'z'++*/
+	173,/* '[' */
+	174,/* '['++*/
+	189,/* ']' */
+	190,/* ']'++*/
+	192,/* '{' */
+	202,/* 'I'++*/
+	208,/* '}' */
+	218,/* 'R'++*/
+	224,/* '\' */
+	234,/* 'Z'++*/
+	240,/* '0'  */
+	250 /* '9'++*/
+#endif
 };

 UV L1PosixGraph_invlist[] = {
+#ifndef EBCDIC
 	4,	/* Number of elements */
+#else
+	24,	/* Number of elements */
+#endif
 	0,	/* Current iteration position */
 	1064334010, /* Version and data structure type */
 	1,	/* 0 if this is the first element of the list proper;
 		   1 if the next element is the first */
-	33,
-	127,
-	161,
-	888
+#ifndef EBCDIC
+	33,  /*'!'*/
+	127, /*'~'++*/
+	161, /*0xA1*/
+	888  /*0x377++*/
+#else
+	75, /* '.' */
+	81, /* '&'++*/
+	90, /* '!' */
+	98, /* '/'++*/
+	106,/* '|' */
+	112,/* '?'++*/
+	121,/* '`' */
+	138,/* 'i'++*/
+	145,/* 'j'  */
+	154,/* 'r'++*/
+	161,/* '~' */
+	170,/* 'z'++*/
+	173,/* '[' */
+	174,/* '['++*/
+	189,/* ']' */
+	190,/* ']'++*/
+	192,/* '{' */
+	202,/* 'I'++*/
+	208,/* '}' */
+	218,/* 'R'++*/
+	224,/* '\' */
+	234,/* 'Z'++*/
+	240,/* '0'  */
+	888 /* '9'++*/
+#endif
 };

 UV PosixLower_invlist[] = {
+#ifndef EBCDIC
 	2,	/* Number of elements */
+#else
+	6,	/* Number of elements */
+#endif
 	0,	/* Current iteration position */
 	1064334010, /* Version and data structure type */
 	1,	/* 0 if this is the first element of the list proper;
 		   1 if the next element is the first */
-	97,
-	123
+#ifndef EBCDIC
+	97,  /*'a'*/
+	123  /*'z'++*/
+#else
+	129, /* 'a' */
+	138, /* 'i'++*/
+	145, /* 'j'  */
+	154, /* 'r'++*/
+	162, /* 's' */
+	170, /* 'z'++*/
+#endif
 };

 UV L1PosixLower_invlist[] = {
+#ifndef EBCDIC
 	12,	/* Number of elements */
+#else
+	10,	/* Number of elements */
+#endif
 	0,	/* Current iteration position */
 	1064334010, /* Version and data structure type */
 	1,	/* 0 if this is the first element of the list proper;
 		   1 if the next element is the first */
-	97,
-	123,
-	170,
-	171,
-	181,
-	182,
-	186,
-	187,
-	223,
-	247,
-	248,
-	256
+#ifndef EBCDIC
+	97,  /*'a'*/
+	123, /*'z'++*/
+	170, /*0xAA*/
+	171, /*0xAA++*/
+	181, /*0xB5*/
+	182, /*0xB5++*/
+	186, /*0xBA*/
+	187, /*0xBA++*/
+	223, /*0xDF*/
+	247, /*0xF6++*/
+	248, /*0xF8*/
+	256  /*0xFF++*/
+#else
+	129, /* 'a' */
+	138, /* 'i'++*/
+	145, /* 'j'  */
+	154, /* 'r'++*/
+	162, /* 's' */
+	171, /* 'z'+2*/
+	181, /*0xB5  */
+	182, /*0xB5++*/
+	186, /*0xBA  */
+	187 /*0xBA++*/
+#endif
 };

 UV PosixPrint_invlist[] = {
+#ifndef EBCDIC
 	2,	/* Number of elements */
+#else
+	26,	/* Number of elements */
+#endif
 	0,	/* Current iteration position */
 	1064334010, /* Version and data structure type */
 	1,	/* 0 if this is the first element of the list proper;
 		   1 if the next element is the first */
-	32,
-	127
+#ifndef EBCDIC
+	32,  /*' '*/
+	127  /*'~'++*/
+#else
+	64, /* ' ' */
+	65, /* ' '++*/
+	75, /* '.' */
+	81, /* '&'++*/
+	90, /* '!' */
+	98, /* '/'++*/
+	106,/* '|' */
+	112,/* '?'++*/
+	121,/* '`' */
+	138,/* 'i'++*/
+	145,/* 'j'  */
+	154,/* 'r'++*/
+	161,/* '~' */
+	170,/* 'z'++*/
+	173,/* '[' */
+	174,/* '['++*/
+	189,/* ']' */
+	190,/* ']'++*/
+	192,/* '{' */
+	202,/* 'I'++*/
+	208,/* '}' */
+	218,/* 'R'++*/
+	224,/* '\' */
+	234,/* 'Z'++*/
+	240,/* '0'  */
+	250 /* '9'++*/
+#endif
 };

 UV L1PosixPrint_invlist[] = {
+#ifndef EBCDIC
 	4,	/* Number of elements */
+#else
+	26,	/* Number of elements */
+#endif
 	0,	/* Current iteration position */
 	1064334010, /* Version and data structure type */
 	1,	/* 0 if this is the first element of the list proper;
 		   1 if the next element is the first */
-	32,
-	127,
-	160,
-	888
+#ifndef EBCDIC
+	32,  /*' '*/
+	127, /*'~'++*/
+	160, /*0xA0*/
+	888  /*0x377++*/
+#else
+	64, /* ' ' */
+	65, /* ' '++*/
+	75, /* '.' */
+	81, /* '&'++*/
+	90, /* '!' */
+	98, /* '/'++*/
+	106,/* '|' */
+	112,/* '?'++*/
+	121,/* '`' */
+	138,/* 'i'++*/
+	145,/* 'j'  */
+	154,/* 'r'++*/
+	161,/* '~' */
+	170,/* 'z'++*/
+	173,/* '[' */
+	174,/* '['++*/
+	189,/* ']' */
+	190,/* ']'++*/
+	192,/* '{' */
+	202,/* 'I'++*/
+	208,/* '}' */
+	218,/* 'R'++*/
+	224,/* '\' */
+	234,/* 'Z'++*/
+	240,/* '0'  */
+	888 /* '9'++*/
+#endif
 };

 UV PosixPunct_invlist[] = {
+#ifndef EBCDIC
 	8,	/* Number of elements */
+#else
+	22,	/* Number of elements */
+#endif
 	0,	/* Current iteration position */
 	1064334010, /* Version and data structure type */
 	1,	/* 0 if this is the first element of the list proper;
 		   1 if the next element is the first */
-	33,
-	48,
-	58,
-	65,
-	91,
-	97,
-	123,
-	127
+#ifndef EBCDIC
+	33,   /*'!'*/
+	48,   /*'/'++*/
+	58,   /*':'*/
+	65,   /*'@'++*/
+	91,   /*'['*/
+	97,   /*'`'++*/
+	123,  /*'{'*/
+	127   /*'~'++*/
+#else
+	75,  /* '.'*/
+	81,  /* '&'++*/
+	90,  /* '!' */
+	98,  /* '/'++ */
+	106, /* '|' */
+	112, /* '?'++*/
+	121, /* '`' */
+	128, /* '"'++*/
+	161, /* '~'*/
+	162, /* '~'++*/
+	173, /* '[' */
+	174, /* '['++*/
+ 	176, /* '^' */
+	177, /* '^'++*/
+	189, /* ']' */
+	190, /* ']'++*/
+	192, /* '{' */
+	193, /* '{'++*/
+	208, /* '}'  */
+	209, /* '}'++*/
+	224, /* '\' */
+	225  /* '\'++*/
+#endif
 };

 UV L1PosixPunct_invlist[] = {
+#ifndef EBCDIC
 	20,	/* Number of elements */
+#else
+	28,	/* Number of elements */
+#endif
 	0,	/* Current iteration position */
 	1064334010, /* Version and data structure type */
 	1,	/* 0 if this is the first element of the list proper;
 		   1 if the next element is the first */
-	33,
-	48,
-	58,
-	65,
-	91,
-	97,
-	123,
-	127,
-	161,
-	162,
-	167,
-	168,
-	171,
-	172,
-	182,
-	184,
-	187,
-	188,
-	191,
-	192
+#ifndef EBCDIC
+	33,  /*'!'*/
+	48,  /*'/'++*/
+	58,  /*':'*/
+	65,  /*'@'++*/
+	91,  /*'['*/
+	97,  /*'`'++*/
+	123, /*'{'*/
+	127, /*'~'++*/
+	161, /*0xA1*/
+	162, /*0xA1++*/
+	167, /*0xA7*/
+	168, /*0xA7++*/
+	171, /*0xAB*/
+	172, /*0xAB++*/
+	182, /*0xB6*/
+	184, /*0xB7++*/
+	187, /*0xBB*/
+	188, /*0xBB++*/
+	191, /*0xBF*/
+	192  /*0xBF++*/
+#else
+	75,  /* '.'*/
+	81,  /* '&'++*/
+	90,  /* '!' */
+	98,  /* '/'++ */
+	106, /* '|' */
+	112, /* '?'++*/
+	121, /* '`' */
+	128, /* '"'++*/
+	161, /* '~'*/
+	162, /* '~'++*/
+	171, /*0xAB  */
+	172, /*0xAB++*/
+	173, /* '[' */
+	174, /* '['++*/
+ 	176, /* '^' */
+	177, /* '^'++*/
+	182, /*0xB6  */
+	184, /*0xB7++*/
+	187, /*0xBB  */
+	188, /*0xBB++*/
+	189, /* ']' */
+	190, /* ']'++*/
+	191, /*0xBF  */
+	/*192  0xBF++
+	192,  '{' */
+	193, /* '{'++*/
+	208, /* '}'  */
+	209, /* '}'++*/
+	224, /* '\' */
+	225  /* '\'++*/
+#endif
 };

 UV PosixSpace_invlist[] = {
+#ifndef EBCDIC
 	4,	/* Number of elements */
+#else
+	6,	/* Number of elements */
+#endif
 	0,	/* Current iteration position */
 	1064334010, /* Version and data structure type */
 	1,	/* 0 if this is the first element of the list proper;
 		   1 if the next element is the first */
-	9,
-	14,
-	32,
-	33
+#ifndef EBCDIC
+	9,  /*0x09*/
+	14, /*0x0D++*/
+	32, /*' '*/
+	33  /*' '++*/
+#else
+	5, /*0x05 */
+	6, /*0x05++*/
+	11, /*0x0B*/
+	14, /*0x0D++*/
+	37,/*0x25 */
+	38/*0x25++*/
+#endif
 };

 UV XPosixSpace_invlist[] = {
+#ifndef EBCDIC
 	22,	/* Number of elements */
+#else
+	24,	/* Number of elements */
+#endif
 	0,	/* Current iteration position */
 	1064334010, /* Version and data structure type */
 	1,	/* 0 if this is the first element of the list proper;
 		   1 if the next element is the first */
-	9,
-	14,
-	32,
-	33,
-	133,
-	134,
+#ifndef EBCDIC
+	9,   /*0x09*/
+	14,  /*0x0D++*/
+	32,  /*' '*/
+	33,  /*' '++*/
+	133, /*0x85*/
+	134, /*0x85++*/
+#else
+	5, /*0x05 */
+	6, /*0x05++*/
+	11, /*0x0B*/
+	14, /*0x0D++*/
+	37,/*0x25 */
+	38, /*0x25++*/
+	139,/*0x8B */
+	140,/*0x8B++*/
+#endif
 	160,
 	161,
 	5760,
@@ -429,99 +898,201 @@
 };

 UV PosixUpper_invlist[] = {
+#ifndef EBCDIC
 	2,	/* Number of elements */
+#else
+	6,	/* Number of elements */
+#endif
 	0,	/* Current iteration position */
 	1064334010, /* Version and data structure type */
 	1,	/* 0 if this is the first element of the list proper;
 		   1 if the next element is the first */
-	65,
-	91
+#ifndef EBCDIC
+	65, /*'A'*/
+	91  /*'Z'++*/
+#else
+	193, /* 'A'  */
+	202, /* 'I'++*/
+	209, /* 'J'  */
+	218, /* 'R'++*/
+	226, /* 'S'  */
+	234, /* 'Z'++*/
+#endif
 };

 UV L1PosixUpper_invlist[] = {
+#ifndef EBCDIC
 	6,	/* Number of elements */
+#else
+	6,	/* Number of elements */
+#endif
 	0,	/* Current iteration position */
 	1064334010, /* Version and data structure type */
 	1,	/* 0 if this is the first element of the list proper;
 		   1 if the next element is the first */
-	65,
-	91,
-	192,
-	215,
-	216,
-	223
+#ifndef EBCDIC
+	65,  /*'A'*/
+	91,  /*'Z'++*/
+	192, /*0xC0*/
+	215, /*0xD6++*/
+	216, /*0xD8*/
+	223  /*0xDE++*/
+#else
+	193, /* 'A'  */
+	202, /* 'I'++*/
+	209, /* 'J'  */
+	218, /* 'R'++*/
+	226, /* 'S'  */
+	234, /* 'Z'++*/
+#endif
 };

 UV PosixWord_invlist[] = {
+#ifndef EBCDIC
 	8,	/* Number of elements */
+#else
+	16,	/* Number of elements */
+#endif
 	0,	/* Current iteration position */
 	1064334010, /* Version and data structure type */
 	1,	/* 0 if this is the first element of the list proper;
 		   1 if the next element is the first */
-	48,
-	58,
-	65,
-	91,
-	95,
-	96,
-	97,
-	123
+#ifndef EBCDIC
+	48,  /*'0'*/
+	58,  /*'9'++*/
+	65,  /*'A'*/
+	91,  /*'Z'++*/
+	95,  /*'_'*/
+	96,  /*'_'++*/
+	97,  /*'a'*/
+	123  /*'z'*/
+#else
+	109, /* '_' */
+	110, /* '_'++*/
+	129, /* 'a' */
+	138, /* 'i'++*/
+	145, /* 'j'  */
+	154, /* 'r'++*/
+	162, /* 's' */
+	170, /* 'z'++*/
+	193, /* 'A'  */
+	202, /* 'I'++*/
+	209, /* 'J'  */
+	218, /* 'R'++*/
+	226, /* 'S'  */
+	234, /* 'Z'++*/
+	240, /* '0' */
+	250  /* '9'++*/
+#endif
 };

 UV L1PosixWord_invlist[] = {
+#ifndef EBCDIC
+	20,	/* Number of elements */
+#else
 	20,	/* Number of elements */
+#endif
 	0,	/* Current iteration position */
 	1064334010, /* Version and data structure type */
 	1,	/* 0 if this is the first element of the list proper;
 		   1 if the next element is the first */
-	48,
-	58,
-	65,
-	91,
-	95,
-	96,
-	97,
-	123,
-	170,
-	171,
-	181,
-	182,
-	186,
-	187,
-	192,
-	215,
-	216,
-	247,
-	248,
-	706
+#ifndef EBCDIC
+	48,   /*'0'*/
+	58,   /*'9'++*/
+	65,   /*'A'*/
+	91,   /*'Z'++*/
+	95,   /*'_'*/
+	96,   /*'_'++*/
+	97,   /*'a'*/
+	123,  /*'z'*/
+	170,  /*0xAA*/
+	171,  /*0xAA++*/
+	181,  /*0xB5*/
+	182,  /*0xB5++*/
+	186,  /*0xBA*/
+	187,  /*0xBA++*/
+	192,  /*0xC0*/
+	215,  /*0xD6++*/
+	216,  /*0xD8*/
+	247,  /*0xF6++*/
+	248,  /*0xF8*/
+	706   /*0x2C1++*/
+#else
+	109, /* '_' */
+	110, /* '_'++*/
+	129, /* 'a' */
+	138, /* 'i'++*/
+	145, /* 'j'  */
+	154, /* 'r'++*/
+	162, /* 's' */
+	171, /* 'z'+2*/
+	181, /* 0xB5  */
+	182, /* 0xB5++*/
+	186, /* 0xBA  */
+	187, /* 0xBA++*/
+	193, /* 'A'  */
+	202, /* 'I'++*/
+	209, /* 'J'  */
+	218, /* 'R'++*/
+	226, /* 'S'  */
+	234, /* 'Z'++*/
+	240, /* '0' */
+	706  /* 0x2C1++*/
+#endif
 };

 UV PosixXDigit_invlist[] = {
+#ifndef EBCDIC
+	6,	/* Number of elements */
+#else
 	6,	/* Number of elements */
+#endif
 	0,	/* Current iteration position */
 	1064334010, /* Version and data structure type */
 	1,	/* 0 if this is the first element of the list proper;
 		   1 if the next element is the first */
-	48,
-	58,
-	65,
-	71,
-	97,
-	103
+#ifndef EBCDIC
+	48,  /*'0'*/
+	58,  /*'9'++*/
+	65,  /*'A'*/
+	71,  /*'F'++*/
+	97,  /*'a'*/
+	103  /*'f'++*/
+#else
+	129, /* 'a' */
+	135, /* 'f'++*/
+	193, /* 'A' */
+	199, /* 'F'++*/
+	240, /* '0' */
+	250  /* '9'++*/
+#endif
 };

 UV XPosixXDigit_invlist[] = {
+#ifndef EBCDIC
+	12,	/* Number of elements */
+#else
 	12,	/* Number of elements */
+#endif
 	0,	/* Current iteration position */
 	1064334010, /* Version and data structure type */
 	1,	/* 0 if this is the first element of the list proper;
 		   1 if the next element is the first */
-	48,
-	58,
-	65,
-	71,
-	97,
-	103,
+#ifndef EBCDIC
+	48,  /* '0'*/
+	58,  /* '9'++*/
+	65,  /* 'A'*/
+	71,  /* 'F'++*/
+	97,  /* 'a'*/
+	103, /* 'f'++*/
+#else
+	129, /* 'a' */
+	135, /* 'f'++*/
+	193, /* 'A' */
+	199, /* 'F'++*/
+	240, /* '0' */
+	250, /* '9'++*/
+#endif
 	65296,
 	65306,
 	65313,

Reply via email to