From 14f601eca298322aba783e465d345e13f31705ed Mon Sep 17 00:00:00 2001 From: Mischa POSLAWSKY Date: Sat, 2 May 2009 15:53:56 +0000 Subject: [PATCH 1/1] unicode: fix for non-digraph digraphs --- unicode.plp | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) 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) : '', -- 2.30.0