', EscapeHTML($c1);
+ for my $c2 (map {@$_} @$colchars) {
+ my $mnem = $c1 . $c2;
+ if (not defined $di->{key}->{$mnem}) {
+ print ' | ';
+ next;
+ }
+ if (ref $di->{key}->{$mnem} ne 'ARRAY') {
+ printf ' | ', EscapeHTML($mnem);
+ next;
+ }
+ my ($codepoint, $name, $support, $script, $string) =
+ @{ $di->{key}->{$mnem} };
+
+ my $glyph = $string || !!$codepoint && chr $codepoint;
+ utf8::upgrade($glyph); # prevent latin1 output
+ my $desc = $mnem . ($name && " ($name)");
+ my @class = ('X', grep {$_} $script);
+ push @class, $cmp ? $support :
+ $di->{flagclass}->{$support} // "u-$support" if $support;
+
+ $glyph = EscapeHTML($glyph);
+ $glyph = "$glyph" if $script =~ /\bZs\b/;
+
+ printf "\n".' | %s',
+ join(' ', @class), EscapeHTML($desc), $glyph;
}
- my $chr = $di->{$mnem};
- my $glyph = chr $chr;
- utf8::upgrade($glyph); # prevent latin1 output
- my $info = charinfo($chr);
-
- my $desc = $mnem;
- $desc .= " ($_)" for $info->{name} || ();
-
- my @class = 'X';
- push @class, $_ for $info->{category} || ();
- push @class, $_ for $info->{script} || ();
-
- $glyph = quote($glyph);
- $glyph = "$glyph" if $info->{category} eq 'Zs';
-
- printf "\n".' | %s',
- join(' ', @class), quote($desc), $glyph;
+ say "\n | ", EscapeHTML($c1);
}
- print "\n | $c1\n";
}
-print " |
---|