digraphs: control character names
[sheet.git] / rfc1345convert
index 412bac14cbbd7cc50afc017301d627f158733dbe..d33377fc5cbd413c4b43f816dc15861357b1f4d0 100644 (file)
@@ -77,6 +77,17 @@ for (values %info) {
 # mark unofficial extras as such
 $info{$_}->{category} .= ' Xz' for @extra;
 
+for (keys %di) {
+       # find control characters (first 32 chars from 0 and 128)
+       next if $di{$_} & ~0b1001_1111;
+       # rename to something more descriptive
+       $info{$_}->{name} = $info{$_}->{unicode10}
+               ? '<'.$info{$_}->{unicode10}.'>'  # the old name was much more useful
+               : sprintf('<control U+%04X>', $di{$_});  # at least identify by value
+       # show descriptive symbols instead of control chars themselves
+       $di{$_} += 0x2400 if $di{$_} < 32;
+}
+
 # output perl code of hash
 # (assume no backslashes or curlies, so we can just q{} w/o escaping)
 print "{\n";