-sub quote {
- local $_ = shift;
- s/"/"/g;
- s/</</g;
- s/>/>/g;
- return $_;
-}
-
-sub printcell_utf8 {
- my ($value) = @_;
- if ($value <= 0x7F) {
- print '<td rowspan="8" colspan="16" class="X di-a"',
- ' title="U+0000 – U+007F">Single byte ASCII'
- if $value == 0;
- }
- elsif ($value <= 0xBF) {
- print '<td rowspan="4" colspan="16" class="X di-d"',
- '>Multi-byte continuation'
- if $value == 0x80;
+ state $ALIAS = {
+ default => [qw( unicode+0-192 utf-8 iso-8859-1 cp1252+128-159 iso-8859-15+160-191 cp437 cp850+128 )],
+ us => [qw( cp437 cp863+128 AdobeStandardEncoding gsm0338+0-127 )],
+ ebcdic => [qw( cp37 cp500 cp875 cp1026 cp1047 posix-bc )],
+ westeur => [qw( iso-8859-1 iso-8859-15+160-191 cp1252+128-159 iso-8859-14+160 cp850+128 MacRoman+128 nextstep+128 hp-roman8+160 )],
+ centeur => [qw( iso-8859-2 iso-8859-16+160 cp1250+128 cp852+128 MacCentralEurRoman+128 MacCroatian+128 MacRomanian+128 )], # MacRumanian only for DB
+ turkish => [qw( iso-8859-3 iso-8859-9+128 cp857+128 cp1254+128 MacTurkish+128 )],
+ baltic => [qw( iso-8859-4 iso-8859-13+160 cp775+128 cp1257+128 )],
+ nordic => [qw( iso-8859-10 cp865+128 cp861+160-191 MacIcelandic+128 MacSami+160 )],
+ cyrillic => [qw( koi8-f koi8-r+128-192 koi8-u+160-192 iso-8859-5+128 cp1251+128 MacCyrillic+128 cp855+128 cp866+128 )], # MacUkrainian is broken
+ arabic => [qw( iso-8859-6 cp1006+160 cp864+128 cp1256+128 MacArabic )], # MacFarsi same as MacArabic?
+ greek => [qw( iso-8859-7 cp1253+128 MacGreek+128 cp737+128 cp869+128 )],
+ hebrew => [qw( iso-8859-8 cp1255+128 MacHebrew+128 cp862+128 )],
+ thai => [qw( iso-8859-11 cp874+128-159 MacThai+128 )],
+ vietnamese => [qw( viscii cp1258 MacVietnamese )],
+ symbol => [qw( symbol dingbats MacDingbats AdobeZdingbat AdobeSymbol )],
+ # iso-code shorthand
+ 1 => 'westeur',
+ 2 => 'centeur',
+ 3 => 'turkish',
+ 4 => 'baltic',
+ 5 => 'cyrillic',
+ 6 => 'arabic',
+ 7 => 'greek',
+ 8 => 'hebrew',
+ 9 => 'turkish',
+ 10 => 'nordic',
+ 11 => 'thai',
+ };
+ if (my $follow = $ALIAS->{$input}) {
+ return map { tabinput($_) } ref $follow ? @{$follow} : $follow;