hebrew => [qw( iso-8859-8 cp1255 MacHebrew cp862 U59-5F )],
thai => [qw( iso-8859-11 cp874 MacThai )],
vietnamese => [qw( viscii cp1258 MacVietnamese )],
- symbol => [qw( symbol dingbats MacDingbats AdobeZdingbat AdobeSymbol )],
+ symbols => [qw( symbol dingbats MacDingbats )],
# iso-code shorthand
1 => 'westeur',
return;
}
- state $visible = {}; # all present tables
+ state $visible = {'' => 1}; # all present tables
my %row = (offset => 0, cols => 16);
my $params = $input =~ s/[+](.*)\z// ? $1 : undef;
state $INHERIT = {
'cp437' => ['cp850' => 0, 'ascii' => '0-31+128'], # ascii range overridden later
'gsm0338' => ['ascii' => '0-127'],
+ 'dingbats' => ['' => '32-127+160'],
+ 'MacDingbats' => ['dingbats' => '128-159'],
+ 'AdobeZdingbat'=> ['MacDingbats' => '128-159'], # should be identical but maps to private use
+ 'symbol' => ['' => '32-127+160'],
+ 'AdobeSymbol' => ['symbol' => '32-127+160', '' => '32-127+160'], # minor differences, irrelevant except for different '€'
'iso-8859-2' => ['iso-8859-1' => '160'],
'iso-8859-3' => ['iso-8859-1' => '160'], #TODO: also apply to iso-8859-9
);
}
}
+ elsif ($row{set} eq 'symbol') {
+ if ($row{offset} <= 0x60 and $row{endpoint} >= 0x60 - $row{offset}) {
+ # replace radical extender by closest unicode equivalent
+ substr($row{table}, 0x60 - $row{offset}, 1) = '│';
+ }
+ if ($row{offset} <= 0xBD and $row{endpoint} >= 0xFF - $row{offset}) {
+ substr($row{table}, 0xBD - $row{offset}, 2) = '⏐⎯'; # arrow extenders
+ substr($row{table}, 0xD2 - $row{offset}, 3) = '®©™'; # serif variants
+ substr($row{table}, 0xE0 - $row{offset}, 1) = '◊'; # replace lookalike, should match AdobeSymbol
+ substr($row{table}, 0xE2 - $row{offset}, 3) = '®©™'; # sans-serif variants
+ substr($row{table}, 0xE6 - $row{offset}, 10) = '⎛⎜⎝⎡⎢⎣⎧⎨⎩⎪';
+ substr($row{table}, 0xF0 - $row{offset}, 1) = '€';
+ substr($row{table}, 0xF4 - $row{offset}, 11) = '⎮⌡⎞⎟⎠⎤⎥⎦⎫⎬⎭';
+ }
+ }
$visible->{ascii} = # assume common base
$visible->{ $row{set} } = 1;