summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorKarl Williamson <public@khwilliamson.com>2011-06-11 13:09:24 -0600
committerKarl Williamson <public@khwilliamson.com>2011-07-03 14:05:48 -0600
commitc69a9c6805950038741cc55e80637bd2c2473e31 (patch)
treeee925641faaafe2e4f9f3a894ddcd690f7c7d09f /lib
parent47b34d7254198c381a7d21eb29478f1a0267a9d6 (diff)
downloadperl-c69a9c6805950038741cc55e80637bd2c2473e31.tar.gz
mktables: Use inverted tables for disk space
This patch changes large tables that are the complement of other tables to just be the single line indicating to use the complement
Diffstat (limited to 'lib')
-rw-r--r--lib/unicore/mktables17
1 files changed, 17 insertions, 0 deletions
diff --git a/lib/unicore/mktables b/lib/unicore/mktables
index 31ab73d1b6..33be558565 100644
--- a/lib/unicore/mktables
+++ b/lib/unicore/mktables
@@ -4973,6 +4973,23 @@ sub trace { return main::trace(@_); }
# does.
push @OUT, "!utf8::Any\n";
}
+ elsif ($self->name eq 'N'
+
+ # To save disk space and table cache space, avoid putting out
+ # binary N tables, but instead create a file which just inverts
+ # the Y table. Since the file will still exist and occupy a
+ # certain number of blocks, might as well output the whole
+ # thing if it all will fit in one block. The number of
+ # ranges below is an approximate number for that.
+ && $self->property->type == $BINARY
+ # && $self->property->tables == 2 Can't do this because the
+ # non-binary properties, like NFDQC aren't specifiable
+ # by the notation
+ && $range_list{$addr}->ranges > 15
+ && ! $annotate) # Under --annotate, want to see everything
+ {
+ push @OUT, "!utf8::" . $self->property->name . "\n";
+ }
else {
my $range_size_1 = $range_size_1{$addr};
my $format; # Used only in $annotate option