regen/unicode_constants.pl: Find max ascii print cp
authorKarl Williamson <khw@cpan.org>
Sun, 24 Aug 2014 00:10:44 +0000 (18:10 -0600)
committerKarl Williamson <khw@cpan.org>
Mon, 25 Aug 2014 17:13:41 +0000 (11:13 -0600)
This creates a #define that gives the highest code point that is an
ASCII printable.  On ASCII-ish platforms, this is 0x7E, but on EBCDIC
platforms it varies, and can be as high as 0xFF.  This is in preparation
for needing this value in a future commit in regcomp.c

regen/unicode_constants.pl
unicode_constants.h

index 763b7bb..c81f767 100644 (file)
@@ -147,6 +147,13 @@ foreach my $charset (get_supported_code_pages()) {
         }
         printf $out_fh "#   define %s%s  %s    /* U+%04X */\n", $name, $suffix, $str, $U_cp;
     }
+
+    my $max_PRINT_A = 0;
+    for my $i (0x20 .. 0x7E) {
+        $max_PRINT_A = $a2n[$i] if $a2n[$i] > $max_PRINT_A;
+    }
+    printf $out_fh "#   define MAX_PRINT_A_FOR_USE_ONLY_BY_REGCOMP_DOT_C   0x%02X   /* The max code point that isPRINT_A */\n", $max_PRINT_A;
+
     print $out_fh "\n" . get_conditional_compile_line_end();
 }
 
index 76dee35..6cd8cc6 100644 (file)
@@ -52,6 +52,7 @@
 #   define LATIN_CAPITAL_LETTER_A_WITH_RING_ABOVE_NATIVE  0xC5    /* U+00C5 */
 #   define LATIN_SMALL_LETTER_Y_WITH_DIAERESIS_NATIVE  0xFF    /* U+00FF */
 #   define MICRO_SIGN_NATIVE  0xB5    /* U+00B5 */
+#   define MAX_PRINT_A_FOR_USE_ONLY_BY_REGCOMP_DOT_C   0x7E   /* The max code point that isPRINT_A */
 
 #endif /* ASCII/Latin1 */
 
@@ -89,6 +90,7 @@
 #   define LATIN_CAPITAL_LETTER_A_WITH_RING_ABOVE_NATIVE  0x67    /* U+00C5 */
 #   define LATIN_SMALL_LETTER_Y_WITH_DIAERESIS_NATIVE  0xDF    /* U+00FF */
 #   define MICRO_SIGN_NATIVE  0xA0    /* U+00B5 */
+#   define MAX_PRINT_A_FOR_USE_ONLY_BY_REGCOMP_DOT_C   0xF9   /* The max code point that isPRINT_A */
 
 #endif /* EBCDIC 1047 */
 
 #   define LATIN_CAPITAL_LETTER_A_WITH_RING_ABOVE_NATIVE  0x67    /* U+00C5 */
 #   define LATIN_SMALL_LETTER_Y_WITH_DIAERESIS_NATIVE  0xDF    /* U+00FF */
 #   define MICRO_SIGN_NATIVE  0xA0    /* U+00B5 */
+#   define MAX_PRINT_A_FOR_USE_ONLY_BY_REGCOMP_DOT_C   0xF9   /* The max code point that isPRINT_A */
 
 #endif /* EBCDIC 037 */
 
 #   define LATIN_CAPITAL_LETTER_A_WITH_RING_ABOVE_NATIVE  0x67    /* U+00C5 */
 #   define LATIN_SMALL_LETTER_Y_WITH_DIAERESIS_NATIVE  0xDF    /* U+00FF */
 #   define MICRO_SIGN_NATIVE  0xA0    /* U+00B5 */
+#   define MAX_PRINT_A_FOR_USE_ONLY_BY_REGCOMP_DOT_C   0xFF   /* The max code point that isPRINT_A */
 
 #endif /* EBCDIC POSIX-BC */