summaryrefslogtreecommitdiff
path: root/lib/unicore
diff options
context:
space:
mode:
Diffstat (limited to 'lib/unicore')
-rw-r--r--lib/unicore/mktables82
-rw-r--r--lib/unicore/uni_keywords.pl2
2 files changed, 50 insertions, 34 deletions
diff --git a/lib/unicore/mktables b/lib/unicore/mktables
index dc0d7db10b..f11e466823 100644
--- a/lib/unicore/mktables
+++ b/lib/unicore/mktables
@@ -13989,6 +13989,51 @@ END
);
}
} # End of loop through aliases for this property
+
+
+ # Properties that have sets of values for some characters are now
+ # converted. For example, the Script_Extensions property started out
+ # as a clone of the Script property. But processing its data file
+ # caused some elements to be replaced with different data. (These
+ # elements were for the Common and Inherited properties.) This data
+ # is a qw() list of all the scripts that the code points in the given
+ # range are in. An example line is:
+ #
+ # 060C ; Arab Syrc Thaa # Po ARABIC COMMA
+ #
+ # Code executed earlier has created a new match table named "Arab Syrc
+ # Thaa" which contains 060C. (The cloned table started out with this
+ # code point mapping to "Common".) Now we add 060C to each of the
+ # Arab, Syrc, and Thaa match tables. Then we delete the now spurious
+ # "Arab Syrc Thaa" match table. This is repeated for all these tables
+ # and ranges. The map data is retained in the map table for
+ # reference, but the spurious match tables are deleted.
+ my $format = $property->format;
+ if (defined $format && $format eq $STRING_WHITE_SPACE_LIST) {
+ foreach my $table ($property->tables) {
+
+ # Space separates the entries which should go in multiple
+ # tables
+ next unless $table->name =~ /\s/;
+
+ # The list of the entries, hence the names of the tables that
+ # everything in this combo table should be added to.
+ my @list = split /\s+/, $table->name;
+
+ # Add the entries from the combo table to each individual
+ # table
+ foreach my $individual (@list) {
+ my $existing_table = $property->table($individual);
+
+ # This should only be necessary if this particular entry
+ # occurs only in combo with others.
+ $existing_table = $property->add_match_table($individual)
+ unless defined $existing_table;
+ $existing_table += $table;
+ }
+ $property->delete_match_table($table);
+ }
+ }
} # End of loop through all Unicode properties.
# Fill in the mappings that Unicode doesn't completely furnish. First the
@@ -14077,40 +14122,11 @@ END
Initialize => property_ref('cf'),
);
- # The Script_Extensions property started out as a clone of the Script
- # property. But processing its data file caused some elements to be
- # replaced with different data. (These elements were for the Common and
- # Inherited properties.) This data is a qw() list of all the scripts that
- # the code points in the given range are in. An example line is:
- # 060C ; Arab Syrc Thaa # Po ARABIC COMMA
- #
- # The code above has created a new match table named "Arab Syrc Thaa"
- # which contains 060C. (The cloned table started out with this code point
- # mapping to "Common".) Now we add 060C to each of the Arab, Syrc, and
- # Thaa match tables. Then we delete the now spurious "Arab Syrc Thaa"
- # match table. This is repeated for all these tables and ranges. The map
- # data is retained in the map table for reference, but the spurious match
- # tables are deleted.
-
+ # Mark the scx table as the parent of the corresponding sc table for those
+ # which are identical. This causes the pod for the script table to refer
+ # to the corresponding scx one. This is done after everything, so as to
+ # wait until the tables are stabilized before checking for equivalency.
if (defined $scx) {
- foreach my $table ($scx->tables) {
- next unless $table->name =~ /\s/; # All the new and only the new
- # tables have a space in their
- # names
- my @scripts = split /\s+/, $table->name;
- foreach my $script (@scripts) {
- my $script_table = $scx->table($script);
- $script_table += $table;
- }
- $scx->delete_match_table($table);
- }
-
- # Mark the scx table as the parent of the corresponding sc table for
- # those which are identical. This causes the pod for the script table
- # to refer to the corresponding scx one.
- #
- # This has to be in a separate loop from above, so as to wait until
- # the tables are stabilized before checking for equivalency.
if (defined $pod_directory) {
foreach my $table ($scx->tables) {
my $plain_sc_equiv = $script->table($table->name);
diff --git a/lib/unicore/uni_keywords.pl b/lib/unicore/uni_keywords.pl
index 63c3dd9b11..894ede5df4 100644
--- a/lib/unicore/uni_keywords.pl
+++ b/lib/unicore/uni_keywords.pl
@@ -1280,7 +1280,7 @@
# 0fea35394151afefbb4121b6380db1b480be6f9bafb4eba3382dc292dcf68526 lib/unicore/extracted/DLineBreak.txt
# 6d4a8c945dd7db83ed617cbb7d937de7f4ecf016ff22970d846e996a7c9a2a5d lib/unicore/extracted/DNumType.txt
# 5b7c14380d5cceeaffcfbc18db1ed936391d2af2d51f5a41f1a17b692c77e59b lib/unicore/extracted/DNumValues.txt
-# e3cbd908e180d39554e2c7351cebfd939a567c796c79e2e4a71ec2af874adfa3 lib/unicore/mktables
+# eefd34f5f03191cb297d62f66273ca68efc972703f5323543427a9b285f28657 lib/unicore/mktables
# 50b85a67451145545a65cea370dab8d3444fbfe07e9c34cef560c5b7da9d3eef lib/unicore/version
# 2680b9254eb236c5c090f11b149605043e8c8433661b96efc4a42fb4709342a5 regen/charset_translations.pl
# 6bbad21de0848e0236b02f34f5fa0edd3cdae9ba8173cc9469a5513936b9e728 regen/mk_PL_charclass.pl