cyrillic => 0,
hebrew => 0,
],
- [ uc => 'Unicode' ],
);
:>.
</p>
my $input = shift or return;
state $ALIAS = {
- default => [qw( unicode+0-639 utf-8+realsize iso-8859-1 iso-8859-15 cp1252 cp437 cp850 )],
- uc => [qw( U+cols=32 unicode+0-4095 unicode+4096-6319 unicode+6320-8191 )],
+ default => [qw( u+0-639 utf-8+realsize iso-8859-1 iso-8859-15 cp1252 cp437 cp850 )],
+ unicode => [qw( uu+cols=32+realsize u+0-4095 u+4096-6319 u+6320-8191 )],
us => [qw( cp437 cp863 gsm0338 AdobeStandardEncoding )],
ebcdic => [qw( cp37 cp500 cp1047 posix-bc cp1026 cp875 )],
iso => [map {"iso-8859-$_"} 1 .. 11, 13 .. 16],
}
}
- if ($input =~ /^U([0-9a-fA-F]+)(?:-([0-9a-fA-F]+))?/) {
+ if ($input =~ m{ \A u ([0-9a-f]+) (?:-([0-9a-f]+))? \z }ix) {
my $start = hex($1) << ($2 ? 4 : 8);
my $end = $2 ? (hex($2) << 4) + $row{cols} - 1 : $start + 255;
$row{table} = join '', map { chr } $start .. $end;
$row{set} = sprintf 'Unicode block U+%02Xxx', $start >> 8;
$row{offset} = $start % 256;
}
- elsif ($input eq 'U') {
+ elsif (lc $input eq 'uu') {
$row{set} = 'Unicode planes';
$row{cell} = do 'charset-ucplanes.inc.pl'
or Alert('Table data could not be read', $@ || $!);
$row{endpoint} = 1023 * $row{cell}->{colsize};
}
- elsif ($input eq 'unicode') {
+ elsif (lc $input eq 'u') {
$row{cell} = do 'charset-unicode.inc.pl'
or Alert('Table data could not be read', $@ || $!);
$attr .= $1 if $class and $class =~ s/( \w+="[^"]*")//;
$attr .= sprintf ' class="%s"', $class if $class;
$attr .= sprintf ' title="%s"', EscapeHTML($title) if $title;
- return "<td$attr>$name";
+ return "<td$attr>$name\n";
}
for my $row (@request) {
printf '%X', ($offset + $row->{offset}) / $rowdiv;
}
}
+ say '';
+
for (1 .. $cols) {
if ($row->{cell}) {
print range_cell($row, $offset);
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 '<td>';
- next;
- }
+ my ($cell, $name, $class) = $glyph eq $NOCHAR ? () :
+ $glyphs->glyph_html($glyph);
if (exists $get{compare}) {
state $visible = {};
- my $cp = $offset + $row->{offset};
- printf '<td class="%s" title="%3$s">%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;
}
- print "\n".$glyphs->glyph_cell($glyph);
+ say sprintf $class ? '<td title="%s" class="X %s">%s' : '<td title="%s">',
+ $name, $class, $cell;
}
continue {
$offset += $colsize;
}
- print "\n";
}
say '</table></div>';
}