X-Git-Url: http://git.shiar.nl/sheet.git/blobdiff_plain/60876481060ad63e3a2e450d18351e01f850cce6..14f601eca298322aba783e465d345e13f31705ed:/unicode.plp diff --git a/unicode.plp b/unicode.plp index e4e45dc..bcfebd1 100644 --- a/unicode.plp +++ b/unicode.plp @@ -81,8 +81,7 @@ sub glyph_table { next; } - my $code = join '', map { $di{ord $_} || '' } split //, $cell; - my $name = $diinfo->{$code}->[1]; + my ($code, $name); # determine display class my @class; @@ -98,11 +97,18 @@ sub glyph_table { push @class, 'di-rare'; # discouraged } - if ($code) { + $code = join '', map { $di{ord $_} || '' } split //, $cell; + $name = $diinfo->{$code}->[1]; + length $code == 2 or undef $code; + + if (defined $code) { push @class, 'di-d'; # digraph push @class, 'di-prop' # unofficial if $diinfo->{$code}->[2] =~ /\bXz\b/; } + elsif (defined $name) { + push @class, 'X'; + } if ($cell =~ /[ -~]/) { push @class, 'di-a'; # ascii @@ -118,7 +124,7 @@ sub glyph_table { @class ? sprintf(' class="%s"', join ' ', @class) : '', $colspan > 1 && qq{ colspan="$colspan"}, $cell eq '' ? ' ' : quote($cell), - $code ne '' ? sprintf(' %s', quote($code)) + defined $code ? sprintf(' %s', quote($code)) : length($cell) == 1 && $cell !~ /[a-z]/ ? sprintf(' %04X', 'value', ord $cell) : '',