-print '<tbody>';
-for my $c1 (@chars) {
- print "<tr><th>$c1";
- for my $c2 (@chars2) {
- my $mnem = $c1 . $c2;
- if (not defined $di->{$mnem}) {
- print '<td>';
- next;
- }
- my ($codepoint, $name, $prop, $script) = @{ $di->{$mnem} };
+for my $c1group (@chars) {
+ print '<tbody>';
+ for my $c1 (@$c1group) {
+ print '<tr><th>', quote($c1);
+ for my $c2 (map {@$_} @chars2) {
+ my $mnem = $c1 . $c2;
+ if (not defined $di->{$mnem}) {
+ print '<td>';
+ next;
+ }
+ if (ref $di->{$mnem} ne 'ARRAY') {
+ printf '<td class="X Xr" title="%s">', quote($mnem);
+ next;
+ }
+ my ($codepoint, $name, $prop, $script, $string) = @{ $di->{$mnem} };