X-Git-Url: http://git.shiar.nl/sheet.git/blobdiff_plain/2d5b9e1f36bd86e3e7b862f40a9ed3e78325f45a..3245065392594e36c11044f0a52afd1b652179cb:/charset.plp?ds=sidebyside
diff --git a/charset.plp b/charset.plp
index e9f097d..bbab1d6 100644
--- a/charset.plp
+++ b/charset.plp
@@ -5,7 +5,8 @@ my @tablist = split m{/+}, $Request || 'default';
Html({
title => 'charset cheat sheet',
- version => '1.1',
+ version => '1.3',
+ canonical => "/charset/$Request" . ($mode && '?compare'),
description => [
"Reference sheet with all glyphs in common character encoding tables,",
"and an overview of Unicode ranges and UTF-8 bytes.",
@@ -14,9 +15,9 @@ Html({
charset codepage unicode ascii utf8 latin glyph character encoding
reference common overview table
'],
- stylesheet => [qw'light'],
+ (stylesheet => [qw'light']) x !$mode,
data => [qw(
- charset-encoding.inc.pl
+ charset.inc.pl charset-encoding.inc.pl
charset-unicode.inc.pl charset-ucplanes.inc.pl charset-utf8.inc.pl
)],
});
@@ -55,6 +56,7 @@ print join " â¢\n", (
dos => 'DOS',
mac => 'Apple',
ebcdic => 'EBCDIC',
+ legacy => 'legacy',
$tablist[0] eq 'default' ? () : ('' => 'common'),
],
[
@@ -78,8 +80,7 @@ use Shiar_Sheet::FormatChar;
my $glyphs = Shiar_Sheet::FormatChar->new;
my @request;
-my $charsets = do 'charset-encoding.inc.pl'
- or Alert('Encoding metadata could not be read', $@ || $!);
+my $charsets = Data('charset');
sub tabinput {
# generate character table(s)
@@ -97,6 +98,7 @@ sub tabinput {
state $visible = {'' => 1}; # all present tables
my %row = (offset => 0, cols => 16);
+ $row{$_} = $charset->{$_} for qw( note table ); # copy metadata
if (not defined $params) {
my @parents = @{ $charset->{inherit} || [] };
@@ -131,7 +133,7 @@ sub tabinput {
# extend earlier range
my $skip = int(($row{endpoint} || $row{startpoint}) / $row{cols});
for ($skip + 1 .. (hex($+{start}) / $row{cols}) - 1) {
- $row{skip}->{ $_ * $row{cols} - $row{startpoint} }++;
+ $row{skip}->{ $_ * $row{cols} }++;
}
}
else {
@@ -153,7 +155,7 @@ sub tabinput {
if (defined $row{table} or defined $row{cell}) {
$row{set} //= $input;
}
- elsif ($row{set} = Encode::resolve_alias($input)) {
+ elsif ($row{set} = Encode::resolve_alias($charset->{set} // $input)) {
$row{offset} = delete $row{startpoint};
if ($charset->{varchar}) {
# array of possibly multiple characters per code point
@@ -169,6 +171,7 @@ sub tabinput {
$row{endpoint} -= $row{offset};
$visible->{ascii}++; # assume common base
+ $row{set} = $input if $charset->{set}; # base override
}
else {
Alert("Encoding $input
unknown");
@@ -289,8 +292,8 @@ for my $row (@request) {
printf '
'; - if (defined $row->{skip}->{$offset}) { + if (defined $row->{skip}->{$offset + $row->{offset}}) { print 'â®'; } else { @@ -340,15 +343,15 @@ for my $row (@request) { $cp == ord $glyph ? 'l4' : $row->{parent} && $glyph eq Encode::decode($row->{parent}, pack 'C', $cp) ? 'l3' : - !$class ? undef : + !defined $cell ? undef : $visible->{$glyph} ? 'l2' : 'l1' ); $visible->{$glyph}++; } - say sprintf $class ? ' | %s' : ' | ', - $name, $class, $cell; + printf ' | %s', $class, $cell) : '>'; } continue { $offset += $colsize; |
---|