From: Mischa POSLAWSKY Date: Sun, 9 Apr 2017 02:04:54 +0000 (+0200) Subject: charset: compare empty cells, omit unknown unicode X-Git-Tag: v1.10~188 X-Git-Url: http://git.shiar.nl/sheet.git/commitdiff_plain/7ac9a00245dde674939ac5d88887e0cf69ab1736 charset: compare empty cells, omit unknown unicode For example cp1255 over iso-8859-8 now distinguishes several inherited empties from newly emptied. --- diff --git a/charset.plp b/charset.plp index b6b61b9..5113b42 100644 --- a/charset.plp +++ b/charset.plp @@ -439,28 +439,27 @@ for my $row (@request) { next; } + my $cp = $offset + $row->{offset}; my $glyph = ref $row->{table} eq 'ARRAY' ? $row->{table}->[$offset] : substr $row->{table}, $offset, 1; - if ($glyph eq $NOCHAR) { - print ''; - next; - } + my ($cell, $name, $class) = $glyph eq $NOCHAR ? () : + $glyphs->glyph_html($glyph); if (exists $get{compare}) { state $visible = {}; - my $cp = $offset + $row->{offset}; - printf '%2$s', + $class = ( $cp == ord $glyph ? 'l4' : $row->{parent} && $glyph eq Encode::decode($row->{parent}, pack 'C', $cp) ? 'l3' : + !$class ? undef : $visible->{$glyph} ? 'l2' : - 'l1', - $glyphs->glyph_html($glyph); + 'l1' + ); $visible->{$glyph}++; - next; } - say $glyphs->glyph_cell($glyph); + say sprintf $class ? '%s' : '', + $name, $class, $cell; } continue { $offset += $colsize;