This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Minor naming change UTF8_IS_ASCII => UTF8_IS_INVARIANT
authorNick Ing-Simmons <nik@tiuk.ti.com>
Sat, 17 Mar 2001 17:44:16 +0000 (17:44 +0000)
committerNick Ing-Simmons <nik@tiuk.ti.com>
Sat, 17 Mar 2001 17:44:16 +0000 (17:44 +0000)
p4raw-id: //depot/perlio@9184

doop.c
perl.h
pp.c
utf8.h

diff --git a/doop.c b/doop.c
index 1a1ba8f..a6391b4 100644 (file)
--- a/doop.c
+++ b/doop.c
@@ -408,7 +408,7 @@ S_do_trans_count_utf8(pTHX_ SV *sv)/* SPC - OK */
     if (!SvUTF8(sv)) {
        U8 *t = s, *e = s + len;
        while (t < e)
-           if ((hibit = !UTF8_IS_ASCII(*t++)))
+           if ((hibit = !UTF8_IS_INVARIANT(*t++)))
                break;
        if (hibit)
            start = s = bytes_to_utf8(s, &len);
@@ -453,7 +453,7 @@ S_do_trans_complex_utf8(pTHX_ SV *sv) /* SPC - NOT OK */
     if (!isutf8) {
        U8 *t = s, *e = s + len;
        while (t < e)
-           if ((hibit = !UTF8_IS_ASCII(*t++)))
+           if ((hibit = !UTF8_IS_INVARIANT(*t++)))
                break;
        if (hibit)
            s = bytes_to_utf8(s, &len);
diff --git a/perl.h b/perl.h
index 8a17159..d1cb711 100644 (file)
--- a/perl.h
+++ b/perl.h
@@ -2518,216 +2518,6 @@ EXT int   PL_sig_num[];
 
 #ifdef DOINIT
 #ifdef EBCDIC
-#if '^' == 106  /* if defined(_OSD_POSIX) POSIX-BC */
-EXT unsigned char PL_a2e[] = { /* ASCII (ISO8859-1) to EBCDIC (POSIX-BC) */
-      0,      1,      2,      3,     55,     45,     46,     47,
-     22,      5,     21,     11,     12,     13,     14,     15,
-     16,     17,     18,     19,     60,     61,     50,     38,
-     24,     25,     63,     39,     28,     29,     30,     31,
-     64,     90,    127,    123,     91,    108,     80,    125,
-     77,     93,     92,     78,    107,     96,     75,     97,
-    240,    241,    242,    243,    244,    245,    246,    247,
-    248,    249,    122,     94,     76,    126,    110,    111,
-    124,    193,    194,    195,    196,    197,    198,    199,
-    200,    201,    209,    210,    211,    212,    213,    214,
-    215,    216,    217,    226,    227,    228,    229,    230,
-    231,    232,    233,    187,    188,    189,    106,    109,
-     74,    129,    130,    131,    132,    133,    134,    135,
-    136,    137,    145,    146,    147,    148,    149,    150,
-    151,    152,    153,    162,    163,    164,    165,    166,
-    167,    168,    169,    251,     79,    253,    255,      7,
-     32,     33,     34,     35,     36,     37,      6,     23,
-     40,     41,     42,     43,     44,      9,     10,     27,
-     48,     49,     26,     51,     52,     53,     54,      8,
-     56,     57,     58,     59,      4,     20,     62,     95,
-     65,    170,    176,    177,    159,    178,    208,    181,
-    121,    180,    154,    138,    186,    202,    175,    161,
-    144,    143,    234,    250,    190,    160,    182,    179,
-    157,    218,    155,    139,    183,    184,    185,    171,
-    100,    101,     98,    102,     99,    103,    158,    104,
-    116,    113,    114,    115,    120,    117,    118,    119,
-    172,    105,    237,    238,    235,    239,    236,    191,
-    128,    224,    254,    221,    252,    173,    174,     89,
-     68,     69,     66,     70,     67,     71,    156,     72,
-     84,     81,     82,     83,     88,     85,     86,     87,
-    140,     73,    205,    206,    203,    207,    204,    225,
-    112,    192,    222,    219,    220,    141,    142,    223
-};
-EXT unsigned char PL_e2a[] = { /* EBCDIC (POSIX-BC) to ASCII (ISO8859-1) */
-      0,      1,      2,      3,    156,      9,    134,    127,
-    151,    141,    142,     11,     12,     13,     14,     15,
-     16,     17,     18,     19,    157,     10,      8,    135,
-     24,     25,    146,    143,     28,     29,     30,     31,
-    128,    129,    130,    131,    132,    133,     23,     27,
-    136,    137,    138,    139,    140,      5,      6,      7,
-    144,    145,     22,    147,    148,    149,    150,      4,
-    152,    153,    154,    155,     20,     21,    158,     26,
-     32,    160,    226,    228,    224,    225,    227,    229,
-    231,    241,     96,     46,     60,     40,     43,    124,
-     38,    233,    234,    235,    232,    237,    238,    239,
-    236,    223,     33,     36,     42,     41,     59,    159,
-     45,     47,    194,    196,    192,    193,    195,    197,
-    199,    209,     94,     44,     37,     95,     62,     63,
-    248,    201,    202,    203,    200,    205,    206,    207,
-    204,    168,     58,     35,     64,     39,     61,     34,
-    216,     97,     98,     99,    100,    101,    102,    103,
-    104,    105,    171,    187,    240,    253,    254,    177,
-    176,    106,    107,    108,    109,    110,    111,    112,
-    113,    114,    170,    186,    230,    184,    198,    164,
-    181,    175,    115,    116,    117,    118,    119,    120,
-    121,    122,    161,    191,    208,    221,    222,    174,
-    162,    163,    165,    183,    169,    167,    182,    188,
-    189,    190,    172,     91,     92,     93,    180,    215,
-    249,     65,     66,     67,     68,     69,     70,     71,
-     72,     73,    173,    244,    246,    242,    243,    245,
-    166,     74,     75,     76,     77,     78,     79,     80,
-     81,     82,    185,    251,    252,    219,    250,    255,
-    217,    247,     83,     84,     85,     86,     87,     88,
-     89,     90,    178,    212,    214,    210,    211,    213,
-     48,     49,     50,     51,     52,     53,     54,     55,
-     56,     57,    179,    123,    220,    125,    218,    126
-};
-#endif          /* POSIX-BC */
-#if '^' == 176  /* if defined(??) (OS/400?) 037 */
-EXT unsigned char PL_a2e[] = { /* ASCII (ISO8859-1) to EBCDIC (IBM-037) */
-      0,      1,      2,      3,     55,     45,     46,     47,
-     22,      5,     37,     11,     12,     13,     14,     15,
-     16,     17,     18,     19,     60,     61,     50,     38,
-     24,     25,     63,     39,     28,     29,     30,     31,
-     64,     90,    127,    123,     91,    108,     80,    125,
-     77,     93,     92,     78,    107,     96,     75,     97,
-    240,    241,    242,    243,    244,    245,    246,    247,
-    248,    249,    122,     94,     76,    126,    110,    111,
-    124,    193,    194,    195,    196,    197,    198,    199,
-    200,    201,    209,    210,    211,    212,    213,    214,
-    215,    216,    217,    226,    227,    228,    229,    230,
-    231,    232,    233,    186,    224,    187,    176,    109,
-    121,    129,    130,    131,    132,    133,    134,    135,
-    136,    137,    145,    146,    147,    148,    149,    150,
-    151,    152,    153,    162,    163,    164,    165,    166,
-    167,    168,    169,    192,     79,    208,    161,      7,
-     32,     33,     34,     35,     36,     21,      6,     23,
-     40,     41,     42,     43,     44,      9,     10,     27,
-     48,     49,     26,     51,     52,     53,     54,      8,
-     56,     57,     58,     59,      4,     20,     62,    255,
-     65,    170,     74,    177,    159,    178,    106,    181,
-    189,    180,    154,    138,     95,    202,    175,    188,
-    144,    143,    234,    250,    190,    160,    182,    179,
-    157,    218,    155,    139,    183,    184,    185,    171,
-    100,    101,     98,    102,     99,    103,    158,    104,
-    116,    113,    114,    115,    120,    117,    118,    119,
-    172,    105,    237,    238,    235,    239,    236,    191,
-    128,    253,    254,    251,    252,    173,    174,     89,
-     68,     69,     66,     70,     67,     71,    156,     72,
-     84,     81,     82,     83,     88,     85,     86,     87,
-    140,     73,    205,    206,    203,    207,    204,    225,
-    112,    221,    222,    219,    220,    141,    142,    223
-};
-EXT unsigned char PL_e2a[] = { /* EBCDIC (IBM-037) to ASCII (ISO8859-1) */
-      0,      1,      2,      3,    156,      9,    134,    127,
-    151,    141,    142,     11,     12,     13,     14,     15,
-     16,     17,     18,     19,    157,    133,      8,    135,
-     24,     25,    146,    143,     28,     29,     30,     31,
-    128,    129,    130,    131,    132,     10,     23,     27,
-    136,    137,    138,    139,    140,      5,      6,      7,
-    144,    145,     22,    147,    148,    149,    150,      4,
-    152,    153,    154,    155,     20,     21,    158,     26,
-     32,    160,    226,    228,    224,    225,    227,    229,
-    231,    241,    162,     46,     60,     40,     43,    124,
-     38,    233,    234,    235,    232,    237,    238,    239,
-    236,    223,     33,     36,     42,     41,     59,    172,
-     45,     47,    194,    196,    192,    193,    195,    197,
-    199,    209,    166,     44,     37,     95,     62,     63,
-    248,    201,    202,    203,    200,    205,    206,    207,
-    204,     96,     58,     35,     64,     39,     61,     34,
-    216,     97,     98,     99,    100,    101,    102,    103,
-    104,    105,    171,    187,    240,    253,    254,    177,
-    176,    106,    107,    108,    109,    110,    111,    112,
-    113,    114,    170,    186,    230,    184,    198,    164,
-    181,    126,    115,    116,    117,    118,    119,    120,
-    121,    122,    161,    191,    208,    221,    222,    174,
-     94,    163,    165,    183,    169,    167,    182,    188,
-    189,    190,     91,     93,    175,    168,    180,    215,
-    123,     65,     66,     67,     68,     69,     70,     71,
-     72,     73,    173,    244,    246,    242,    243,    245,
-    125,     74,     75,     76,     77,     78,     79,     80,
-     81,     82,    185,    251,    252,    249,    250,    255,
-     92,    247,     83,     84,     85,     86,     87,     88,
-     89,     90,    178,    212,    214,    210,    211,    213,
-     48,     49,     50,     51,     52,     53,     54,     55,
-     56,     57,    179,    219,    220,    217,    218,    159
-};
-#endif          /* 037 */
-#if '^' == 95   /* if defined(__MVS__) || defined(??) (VM/ESA?) 1047 */
-EXT unsigned char PL_a2e[] = { /* ASCII (ISO8859-1) to EBCDIC (IBM-1047) */
-    0,      1,      2,      3,      55,     45,     46,     47,
-    22,     5,      21,     11,     12,     13,     14,     15,
-    16,     17,     18,     19,     60,     61,     50,     38,
-    24,     25,     63,     39,     28,     29,     30,     31,
-    64,     90,     127,    123,    91,     108,    80,     125,
-    77,     93,     92,     78,     107,    96,     75,     97,
-    240,    241,    242,    243,    244,    245,    246,    247,
-    248,    249,    122,    94,     76,     126,    110,    111,
-    124,    193,    194,    195,    196,    197,    198,    199,
-    200,    201,    209,    210,    211,    212,    213,    214,
-    215,    216,    217,    226,    227,    228,    229,    230,
-    231,    232,    233,    173,    224,    189,    95,     109,
-    121,    129,    130,    131,    132,    133,    134,    135,
-    136,    137,    145,    146,    147,    148,    149,    150,
-    151,    152,    153,    162,    163,    164,    165,    166,
-    167,    168,    169,    192,    79,     208,    161,    7,
-    32,     33,     34,     35,     36,     37,     6,      23,
-    40,     41,     42,     43,     44,     9,      10,     27,
-    48,     49,     26,     51,     52,     53,     54,     8,
-    56,     57,     58,     59,     4,      20,     62,     255,
-    65,     170,    74,     177,    159,    178,    106,    181,
-    187,    180,    154,    138,    176,    202,    175,    188,
-    144,    143,    234,    250,    190,    160,    182,    179,
-    157,    218,    155,    139,    183,    184,    185,    171,
-    100,    101,    98,     102,    99,     103,    158,    104,
-    116,    113,    114,    115,    120,    117,    118,    119,
-    172,    105,    237,    238,    235,    239,    236,    191,
-    128,    253,    254,    251,    252,    186,    174,    89,
-    68,     69,     66,     70,     67,     71,     156,    72,
-    84,     81,     82,     83,     88,     85,     86,     87,
-    140,    73,     205,    206,    203,    207,    204,    225,
-    112,    221,    222,    219,    220,    141,    142,    223
-};
-EXT unsigned char PL_e2a[] = { /* EBCDIC (IBM-1047) to ASCII (ISO8859-1) */
-    0,      1,      2,      3,      156,    9,      134,    127,
-    151,    141,    142,    11,     12,     13,     14,     15,
-    16,     17,     18,     19,     157,    10,     8,      135,
-    24,     25,     146,    143,    28,     29,     30,     31,
-    128,    129,    130,    131,    132,    133,    23,     27,
-    136,    137,    138,    139,    140,    5,      6,      7,
-    144,    145,    22,     147,    148,    149,    150,    4,
-    152,    153,    154,    155,    20,     21,     158,    26,
-    32,     160,    226,    228,    224,    225,    227,    229,
-    231,    241,    162,    46,     60,     40,     43,     124,
-    38,     233,    234,    235,    232,    237,    238,    239,
-    236,    223,    33,     36,     42,     41,     59,     94,
-    45,     47,     194,    196,    192,    193,    195,    197,
-    199,    209,    166,    44,     37,     95,     62,     63,
-    248,    201,    202,    203,    200,    205,    206,    207,
-    204,    96,     58,     35,     64,     39,     61,     34,
-    216,    97,     98,     99,     100,    101,    102,    103,
-    104,    105,    171,    187,    240,    253,    254,    177,
-    176,    106,    107,    108,    109,    110,    111,    112,
-    113,    114,    170,    186,    230,    184,    198,    164,
-    181,    126,    115,    116,    117,    118,    119,    120,
-    121,    122,    161,    191,    208,    91,     222,    174,
-    172,    163,    165,    183,    169,    167,    182,    188,
-    189,    190,    221,    168,    175,    93,     180,    215,
-    123,    65,     66,     67,     68,     69,     70,     71,
-    72,     73,     173,    244,    246,    242,    243,    245,
-    125,    74,     75,     76,     77,     78,     79,     80,
-    81,     82,     185,    251,    252,    249,    250,    255,
-    92,     247,    83,     84,     85,     86,     87,     88,
-    89,     90,     178,    212,    214,    210,    211,    213,
-    48,     49,    50,      51,     52,     53,     54,     55,
-    56,     57,    179,     219,    220,    217,    218,    159
-};
-#endif          /* 1047 */
 EXT unsigned char PL_fold[] = { /* fast EBCDIC case folding table */
     0,      1,      2,      3,      4,      5,      6,      7,
     8,      9,      10,     11,     12,     13,     14,     15,
@@ -2800,10 +2590,6 @@ EXTCONST  unsigned char PL_fold[] = {
 #endif  /* !EBCDIC */
 #else
 EXTCONST unsigned char PL_fold[];
-#ifdef EBCDIC
-EXTCONST unsigned char PL_e2a[];
-EXTCONST unsigned char PL_a2e[];
-#endif /* EBCDIC */
 #endif
 
 #ifdef DOINIT
diff --git a/pp.c b/pp.c
index 1d3e365..37ada8b 100644 (file)
--- a/pp.c
+++ b/pp.c
@@ -3962,7 +3962,7 @@ PP(pp_reverse)
                U8* s = (U8*)SvPVX(TARG);
                U8* send = (U8*)(s + len);
                while (s < send) {
-                   if (UTF8_IS_ASCII(*s)) {
+                   if (UTF8_IS_INVARIANT(*s)) {
                        s++;
                        continue;
                    }
@@ -4789,7 +4789,8 @@ PP(pp_unpack)
                
                while ((len > 0) && (s < strend)) {
                    auv = (auv << 7) | (*s & 0x7f);
-                   if (UTF8_IS_ASCII(*s++)) {
+                   /* UTF8_IS_XXXXX not right here - using constant 0x80 */
+                   if ((U8)(*s++) < 0x80) {
                        bytes = 0;
                        sv = NEWSV(40, 0);
                        sv_setuv(sv, auv);
diff --git a/utf8.h b/utf8.h
index 5c920c9..67b3d53 100644 (file)
--- a/utf8.h
+++ b/utf8.h
@@ -154,3 +154,4 @@ END_EXTERN_C
 #define ASCII_TO_NEED(enc,ch)    (ch)
 #endif
 
+#define UTF8_IS_INVARIANT(c) UTF8_IS_ASCII(c)