}
# optionally get unicode character information
-my %charinfo = eval {
+my %info = eval {
require Unicode::UCD;
map { $_ => Unicode::UCD::charinfo($di{$_}) } keys %di;
};
+# add custom categories for certain blocks
+for (values %info) {
+ $_->{category} .= ' Xa' if $_->{block} eq 'Basic Latin';
+ $_->{category} .= ' Xl' if $_->{block} eq 'Latin-1 Supplement';
+}
+
# output perl code of hash
# (assume no backslashes or curlies, so we can just q{} w/o escaping)
print "{\n";
printf "q{%s}=>[%s],\n", $_, join(',',
$di{$_}, # glyph code point
- $charinfo{$_} # optional additional arguments
- ? map {"'$_'"} @{ $charinfo{$_} }{qw/name category script/}
+ $info{$_} # optional additional arguments
+ ? map {"'$_'"} @{ $info{$_} }{qw/name category script/}
: ()
) for sort keys %di;
print "}\n";