digraphs: mark latin/ascii characters
[sheet.git] / rfc1345convert
index c1b3861aa65dc77137bba89a191723dd28a15279..6edfa7445083ea4588365224c05927102eb6f0a2 100644 (file)
@@ -46,9 +46,26 @@ for (@t) {
        $di{$mnem} = hex $char;
 }
 
+# optionally get unicode character information
+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";
-print "q{$_}=>$di{$_},\n" for sort keys %di;
+printf "q{%s}=>[%s],\n", $_, join(',',
+       $di{$_},       # glyph code point
+       $info{$_}  # optional additional arguments
+               ? map {"'$_'"} @{ $info{$_} }{qw/name category script/}
+               : ()
+) for sort keys %di;
 print "}\n";