X-Git-Url: http://git.shiar.nl/sheet.git/blobdiff_plain/d26b60713dda612610cea4344acb625a68bfeb4a..fc86468387a30434587a1ec138256813bf5cf7b1:/charset.plp diff --git a/charset.plp b/charset.plp index aa81d0b..5955c39 100644 --- a/charset.plp +++ b/charset.plp @@ -48,6 +48,7 @@ print join " â¢\n", ( } [ iso => 'ISO', + win => 'Windows', dos => 'DOS', mac => 'Apple', ebcdic => 'EBCDIC', @@ -62,7 +63,6 @@ print join " â¢\n", ( cyrillic => 0, hebrew => 0, ], - [ uc => 'Unicode' ], ); :>.
@@ -78,8 +78,8 @@ sub tabinput { 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], @@ -247,7 +247,7 @@ sub tabinput { } } - 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; @@ -256,13 +256,13 @@ sub tabinput { $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', $@ || $!); @@ -346,15 +346,16 @@ sub range_cell { if ($len -= $rest) { # continued on new row my @next = ($len * $colsize, "$class joinu"); + my $separate = $cols - $len > $rest; # columns not on next row if ($len > $rest) { # minority remains push @next, $name, $title; $title ||= $name; - $name = ''; + $name = $separate && 'â¦'; } else { # minority on next row - push @next, '"', $title || $name; + push @next, $separate && '"', $title || $name; } $table->{$offset + $colsize*$rest} //= \@next; $class .= ' joind'; @@ -389,7 +390,7 @@ sub range_cell { $attr .= $1 if $class and $class =~ s/( \w+="[^"]*")//; $attr .= sprintf ' class="%s"', $class if $class; $attr .= sprintf ' title="%s"', EscapeHTML($title) if $title; - return "