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,