X-Git-Url: http://git.shiar.nl/sheet.git/blobdiff_plain/1b025f386b84705e81bd75c166bf0f08d5891608..42d8bbb170d20da856db097f3cec280e37578c31:/charset.plp diff --git a/charset.plp b/charset.plp index 28c21c9..c3477f1 100644 --- a/charset.plp +++ b/charset.plp @@ -15,6 +15,8 @@ Html({ data => [qw'charset-unicode.inc.pl charset-utf8.inc.pl'], }); +my @tablist = split /[^\w-]+/, $Request || 'default'; + :>
$inputunknown"); - } - $row{set} ? \%row : (); } else { - (); + Alert("Encoding
$inputunknown"); + return; } -} map { defined $ALIAS{$_} ? @{ $ALIAS{$_} } : $_ } - $Request =~ /\w/ ? split(m{[/+\s]}, $Request) : 'default'; -my $NOCHAR = chr 0xFFFD; - -for my $cp437 (grep {$request[$_]->{set} eq 'cp437'} 0 .. $#request) { - substr($request[$cp437]->{table}, 237, 1) = pack 'U*', 0x3D5; # phi sign - substr($request[$cp437]->{table}, 0, 32) = pack 'U*', map {hex} qw( - 2007 263A 263B 2665 2666 2663 2660 2022 25D8 25CB 25D9 2642 2640 266A 266B 263C - 25BA 25C4 2195 203C 00B6 00A7 25AC 21A8 2191 2193 2192 2190 221F 2194 25B2 25BC - ); + push @request, \%row; } +tabinput($_) for @tablist; + +my $NOCHAR = chr 0xFFFD; sub range_cell { my ($info, $offset) = @_; @@ -164,11 +285,11 @@ for my $row (@request) { my $rowdiv = 16 ** $coldigits; # row divide for column digits $rowdiv = 1 if $rowdiv != $cols * $colsize; # divide only if all columns are matched my $offset = 0; - my $endpoint = $offset + (length($row->{table}) || 256) * $colsize; printf '
'; { if (my $rowmod = $offset % $rowdiv) { @@ -195,12 +316,27 @@ for my $row (@request) { next; } - my $glyph = substr $row->{table}, $offset, 1; + my $glyph = ref $row->{table} eq 'ARRAY' ? $row->{table}->[$offset] : + substr $row->{table}, $offset, 1; if ($glyph eq $NOCHAR) { print ' | '; next; } + if (exists $get{compare}) { + state $visible = {}; + my $cp = $offset + $row->{offset}; + printf ' | %2$s',
+ $cp == ord $glyph ? 'l4' :
+ $row->{parent} && $glyph eq
+ Encode::decode($row->{parent}, pack 'C', $cp) ? 'l3' :
+ $visible->{$glyph} ? 'l2' :
+ 'l1',
+ $glyphs->glyph_html($glyph);
+ $visible->{$glyph}++;
+ next;
+ }
+
print "\n".$glyphs->glyph_cell($glyph);
}
continue {
@@ -215,7 +351,13 @@ for my $row (@request) {
-
|
---|