From: Karl Williamson Date: Wed, 3 Apr 2013 03:36:28 +0000 (-0600) Subject: mktables: Move table creation code X-Git-Tag: upstream/5.20.0~2089^2~77 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=8d88896d10ee81fb95a9494ca771f9d2b14f5fc7;p=platform%2Fupstream%2Fperl.git mktables: Move table creation code This code is moved later in the process. This is in preparation for mktables generating tables in the native character set. By moving it to later, the translation to native has already been done, and special coding need not be done. This also caught 7 code points that were omitted somehow in the previous logic --- diff --git a/lib/unicore/mktables b/lib/unicore/mktables index 807fb31..30d42f1 100644 --- a/lib/unicore/mktables +++ b/lib/unicore/mktables @@ -11487,7 +11487,6 @@ sub filter_old_style_case_folding { # Create the map for simple only if are going to output it, for otherwise # it takes no part in anything we do. my $to_output_simple; - my $all_folds; sub setup_case_folding($) { # Read in the case foldings in CaseFolding.txt. This handles both @@ -11500,12 +11499,6 @@ sub filter_old_style_case_folding { property_ref('Case_Folding')->set_proxy_for('Simple_Case_Folding'); } - $all_folds = $perl->add_match_table("_Perl_Any_Folds", - Perl_Extension => 1, - Fate => $INTERNAL_ONLY, - Description => "Code points that particpate in some fold", - ); - # If we ever wanted to show that these tables were combined, a new # property method could be created, like set_combined_props() property_ref('Case_Folding')->add_comment(join_lines( <add_range($from, $from); $_ = "$range; Case_Folding; " . "$CMD_DELIM$REPLACE_CMD=$MULTIPLE_BEFORE$CMD_DELIM$map"; - - if ($type eq 'F') { - my @string = split " ", $map; - for my $i (0 .. @string - 1 -1) { - my $decimal = hex $string[$i]; - $all_folds->add_range($decimal, $decimal); - } - } - else { - $all_folds->add_range(hex $map, hex $map); - } } else { $_ = ""; @@ -13321,6 +13301,18 @@ sub compile_perl() { } $PosixXDigit->add_description('[0-9A-Fa-f]'); + my $any_folds = $perl->add_match_table("_Perl_Any_Folds", + Description => "Code points that particpate in some fold", + ); + # + foreach my $range (property_ref('Case_Folding')->ranges) { + $any_folds->add_range($range->start, $range->end); + foreach my $hex_code_point (split " ", $range->value) { + my $code_point = hex $hex_code_point; + $any_folds->add_range($code_point, $code_point); + } + } + my $dt = property_ref('Decomposition_Type'); $dt->add_match_table('Non_Canon', Full_Name => 'Non_Canonical', Initialize => ~ ($dt->table('None') + $dt->table('Canonical')),