Set arrays directly instead of bothering with Encode conversion.
+++ /dev/null
-package Encode::Webdings;
-
-use 5.014;
-use warnings;
-use utf8;
-
-our $VERSION = '1.00';
-
-use parent 'Encode::Wingdings';
-__PACKAGE__->Define('webdings');
-
-our @MAP = (qw[
- ๐ท ๐ธ ๐ฒ ๐ถ ๐ ๐ ๐ ๐จ ๐ฉ ๐ฐ ๐ฑ ๐ถ ๐ โ ๐ผ ๐ ๐ ๐ โด โต โถ โท โช โฉ โฎ โญ โธ โน โบ ๐ ๐ณ
- ๐ ๐ ๐ ๐ ๐ ๐ ๐ญ ๐ ๐ ๐ ๐ ๐ฃ ๐ ๐ ๐ ๐ ๐ ๐ ๐ค ๐ ๐ณ ๐ฌ ๐ซ ๐จ ๐ ๐ ๐ ๐ฌ ๐ฝ ๐ญ ๐ช ๐ซ
- โฎ โ ๐ฒ โก ๐ก ๐ฆ ๐ฑ โ ๐ ๐ ๐ฉ ๐ฐ ๐ ๐ด โซ ๐ฅ ๐ ๐ ๐ โ ๐ฒ ๐ ๐ โณ ๐ โ ๐ญ ๐ฎ | ๐ฏ ๐ฒ \7f
- ๐น ๐บ ๐ ๐ ๐ผ ๐ฝ ๐ โท ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ข ๐ฐ ๐ท ๐ณ ๐ช ๐ก ๐ข ๐ฃ โฏ ๐ ๐
๐ ๐ ๐น ๐บ ๐ป
- ๐ต ๐ฐ ๐ฝ ๐พ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ผ ๐ญ ๐ ๐ ๐ ๐ง ๐ฟ ๐ ๐ท ๐ ๐ฌ ๐ฝ ๐น ๐พ ๐ป ๐ ๐ ๐บ ๐ป
- ๐ฅ ๐ฆ ๐ง ๐น ๐ฎ ๐ป ๐ผ ๐ ๐ ๐ ๐จ ๐ฉ ๐ฟ ๐ช ๐ ๐ ๐ ๐ ๐ฅ ๐ค ๐ณ ๐ฃ ๐ค ๐ฅ ๐ฆ โ ๐ง ๐จ ๐ฉ ๐ช ๐ฌ ๐ซ
- ๐ ๐ก ๐ ๐ ๐ฝ ๐ธ ๐ ๐ โ
โฟ ๐ ๐ ๐ ๐ค ๐ฅ ๐ฆ ๐ง ๐ช ๐ฟ ๐ฆ ๐ ๐ ๐ ๐ฌ ๐ฎ ๐ญ ๐ฏ ๐บ ๐ ๐ ๐ ๐
-]);
-
-1;
+++ /dev/null
-package Encode::Wingdings;
-
-use 5.014;
-no strict 'refs';
-use warnings;
-use utf8;
-
-our $VERSION = '1.00';
-
-use parent 'Encode::Encoding';
-__PACKAGE__->Define('wingdings');
-
-our @MAP = (qw[
- ๐ โ โ ๐ ๐ญ ๐ฎ ๐ฏ ๐ฟ โ ๐ ๐ ๐ช ๐ซ ๐ฌ ๐ญ ๐ ๐ ๐ ๐ ๐ ๐ โ ๐ฎ ๐ฐ ๐ฒ ๐ณ ๐ด ๐ซ ๐ฌ โ โ
- ๐ โ ๐ ๐ ๐ โ โ โ โ ๐ โบ ๐ โน ๐ฃ โ ๐ณ ๐ฑ โ โผ ๐ง โ ๐ โ ๐ โ โก โช โฏ เฅ โธ โ โ
- โ โ โ โ โ โ โ โ โ โ ๐ฐ ๐ต โ ๐พ โ โก ๐ โ โ โฌง โงซ โ โ โฌฅ โง โฎน โ ๐ต ๐ถ ๐ถ ๐ท \7f
- โช โ โก โข โฃ โค โฅ โฆ โง โจ โฉ โฟ โถ โท โธ โน โบ โป โผ โฝ โพ โฟ ๐ข ๐ ๐ก ๐ฃ ๐ ๐ ๐ ๐ ยท โข
- โช โช ๐ ๐ โ โ ๐ฟ โช โป ๐ โฆ โ
โถ โด โน โต โฏ โ โก โ โฏ โช โฐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐
- ๐ ๐ ๐ โฎฐ โฎฑ โฎฒ โฎณ โฎด โฎต โฎถ โฎท ๐ช ๐ซ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ โซ โฆ โฎ โฎ โฎ โฎ โฎ โฎ โฎ โฎ ๐กจ
- ๐กช ๐กฉ ๐กซ ๐กฌ ๐กญ ๐กฏ ๐กฎ ๐กธ ๐กบ ๐กน ๐กป ๐กผ ๐กฝ ๐กฟ ๐กพ โฆ โจ โง โฉ โฌ โณ โฌ โฌ โฌ โฌ ๐ขฌ ๐ขญ ๐ถ โ ๐ท ๐น ๏ฃฟ
-]);
-
-our $NOCHAR = '๏ฟฝ';
-
-sub decode ($$;$) {
- my ($self, $input, $check) = @_;
- my $output = '';
- for (unpack 'C*', $input) {
- $output .= $_ < 33 ? chr : ${ref($self).'::MAP'}[$_ - 33] // $NOCHAR;
- }
- return $output;
-}
-
-1;
+++ /dev/null
-package Encode::Webdings2;
-
-use 5.014;
-use warnings;
-use utf8;
-
-our $VERSION = '1.00';
-
-use parent 'Encode::Wingdings';
-__PACKAGE__->Define('wingdings2');
-
-our @MAP = (qw[
- ๐ ๐ ๐ ๐ โ โ ๐พ ๐ฝ ๐
๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ต ๐ถ ๐ท ๐ธ ๐ญ ๐ฏ ๐ฑ ๐ ๐ ๐ ๐
- ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ก ๐ ๐ ๐ข ๐ฃ ๐ ๐ด โ ๐ต โ โ โ โฎพ โฎฟ โฆธ โฆธ ๐ฑ ๐ด ๐ฒ ๐ณ โฝ ๐น ๐บ
- ๐ป ๐ฆ ๐ค ๐ฅ ๐ง ๐ ๐ ๐ ๐ โช โ โก โข โฃ โค โฅ โฆ โง โจ โฉ โฟ โถ โท โธ โน โบ โป โผ โฝ โพ โฟ \7f
- โ ๐ โฝ โพ โธฟ โ ๐ ๐ ๐ ๐ ๐ ๐ ๐ก ๐ข ๐ฃ ๐ค ๐ฅ ๐ฆ ๐ง ๐จ ๐ฉ โข โ โซ โฌค ๐
๐ ๐ ๐ ๐ โฆฟ โพ
- โ โผ โฌ โฌ ๐ ๐ ๐ ๐ โฃ ๐ ๐ ๐ โฌฉ โฌฅ โ โ ๐ โ ๐ ๐ ๐ โฌช โฌง โงซ โ ๐ โ โ โฏ โฏ โผ โฌฅ
- โฌ โฏ โฌฃ โฌข โฏ โฏ ๐ก ๐ข ๐ฃ ๐ค ๐ฅ ๐ฆ ๐ง ๐จ ๐ฉ ๐ช ๐ซ ๐ฌ ๐ญ ๐ฎ ๐ฏ ๐ฐ ๐ฑ ๐ฒ ๐ณ ๐ด ๐ต ๐ถ ๐ท ๐ธ ๐น ๐บ
- ๐ป ๐ผ ๐ฝ ๐พ ๐ฟ ๐ ๐ ๐ โฆ ๐ โ
โถ ๐ โท ๐ ๐ โน ๐ ๐ โฏ ๐ ๐ โฏ โฏ โป โ
-]);
-
-1;
+++ /dev/null
-package Encode::Webdings3;
-
-use 5.014;
-use warnings;
-use utf8;
-
-our $VERSION = '1.00';
-
-use parent 'Encode::Wingdings';
-__PACKAGE__->Define('wingdings3');
-
-our @MAP = (qw[
- โญ โญข โญก โญฃ โญฆ โญง โญฉ โญจ โญฐ โญฒ โญฑ โญณ โญถ โญธ โญป โญฝ โญค โญฅ โญช โญฌ โญซ โญญ โญ โฎ โฎก โฎข โฎฃ โฎค โฎฅ โฎฆ โฎง
- โฎ โฎ โฎ โฎ โฎ โฎ โญพ โญฟ โฎ โฎ โฎ
โฎ โฎ โฎ โฎ โฎ โญฎ โญฏ โ โค โ โฅ โต โก โช โฎธ ๐ข ๐ขก ๐ขข ๐ขฃ ๐ขค ๐ขฅ
- ๐ขฆ ๐ขง ๐ขจ ๐ขฉ ๐ขช ๐ขซ โ โ โ โ โ โ โ โ ๐ก ๐ก โฒ โผ โณ โฝ โ โบ โ โท โฃ โข โค โฅ ๐ ๐ ๐ \7f
- ๐ โฒ โผ โ โถ โฎ โฎ โฎ โฎ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐
- ๐ ๐ ๐ ๐ ๐ ๐ ๐ ข ๐ ค ๐ ฆ ๐ จ ๐ จ ๐ ช ๐ข ๐ข ๐ข ๐ข ๐ ฎ ๐ ฐ ๐ ฒ ๐ ด ๐ ถ ๐ ธ ๐ บ ๐ น ๐ ป ๐ข ๐ข ๐ข ๐ข ๐ ผ ๐ พ ๐ ฝ
- ๐ ฟ ๐ก ๐ก ๐ก ๐ก ๐ก ๐ก ๐ก
๐ก โฎจ โฎฉ โฎช โฎซ โฎฌ โฎญ โฎฎ โฎฏ ๐ก ๐กข ๐กก ๐กฃ ๐กค ๐กฅ ๐กง ๐กฆ ๐กฐ ๐กฒ ๐กฑ ๐กณ ๐กด ๐กต ๐กท
- ๐กถ ๐ข ๐ข ๐ข ๐ข ๐ข ๐ข
๐ข ๐ข ๐ข ๐ข ๐ข ๐ข ๐ข ๐ข ๐ข ๐ข
-]);
-
-1;
},
},
'adobesymbol' => {inherit => ['symbol' => '20-7F+A0', '' => '20-7F+A0']}, # minor differences, irrelevant except for different 'โฌ'
- 'wingdings' => {inherit => ['' => '20'], setup => sub {require Encode::Wingdings}},
- 'wingdings2' => {inherit => ['' => '20'], setup => sub {require Encode::Wingdings2}},
- 'wingdings3' => {inherit => ['' => '20'], setup => sub {require Encode::Wingdings3}},
- 'webdings' => {inherit => ['' => '20'], setup => sub {require Encode::Webdings}},
+ 'wingdings' => {inherit => ['' => '20'], setup => sub {
+ $_[0]->{table} = [(map {chr} 0 .. 0x20), qw(
+ ๐ โ โ ๐ ๐ญ ๐ฎ ๐ฏ ๐ฟ โ ๐ ๐ ๐ช ๐ซ ๐ฌ ๐ญ ๐ ๐ ๐ ๐ ๐ ๐ โ ๐ฎ ๐ฐ ๐ฒ ๐ณ ๐ด ๐ซ ๐ฌ โ โ
+ ๐ โ ๐ ๐ ๐ โ โ โ โ ๐ โบ ๐ โน ๐ฃ โ ๐ณ ๐ฑ โ โผ ๐ง โ ๐ โ ๐ โ โก โช โฏ เฅ โธ โ โ
+ โ โ โ โ โ โ โ โ โ โ ๐ฐ ๐ต โ ๐พ โ โก ๐ โ โ โฌง โงซ โ โ โฌฅ โง โฎน โ ๐ต ๐ถ ๐ถ ๐ท \7f
+ โช โ โก โข โฃ โค โฅ โฆ โง โจ โฉ โฟ โถ โท โธ โน โบ โป โผ โฝ โพ โฟ ๐ข ๐ ๐ก ๐ฃ ๐ ๐ ๐ ๐ ยท โข
+ โช โช ๐ ๐ โ โ ๐ฟ โช โป ๐ โฆ โ
โถ โด โน โต โฏ โ โก โ โฏ โช โฐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐
+ ๐ ๐ ๐ โฎฐ โฎฑ โฎฒ โฎณ โฎด โฎต โฎถ โฎท ๐ช ๐ซ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ โซ โฆ โฎ โฎ โฎ โฎ โฎ โฎ โฎ โฎ ๐กจ
+ ๐กช ๐กฉ ๐กซ ๐กฌ ๐กญ ๐กฏ ๐กฎ ๐กธ ๐กบ ๐กน ๐กป ๐กผ ๐กฝ ๐กฟ ๐กพ โฆ โจ โง โฉ โฌ โณ โฌ โฌ โฌ โฌ ๐ขฌ ๐ขญ ๐ถ โ ๐ท ๐น ๏ฃฟ
+ )];
+ }},
+ 'wingdings2' => {inherit => ['' => '20'], setup => sub {
+ $_[0]->{table} = [(map {chr} 0 .. 0x20), qw(
+ ๐ ๐ ๐ ๐ โ โ ๐พ ๐ฝ ๐
๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ต ๐ถ ๐ท ๐ธ ๐ญ ๐ฏ ๐ฑ ๐ ๐ ๐ ๐
+ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ก ๐ ๐ ๐ข ๐ฃ ๐ ๐ด โ ๐ต โ โ โ โฎพ โฎฟ โฆธ โฆธ ๐ฑ ๐ด ๐ฒ ๐ณ โฝ ๐น ๐บ
+ ๐ป ๐ฆ ๐ค ๐ฅ ๐ง ๐ ๐ ๐ ๐ โช โ โก โข โฃ โค โฅ โฆ โง โจ โฉ โฟ โถ โท โธ โน โบ โป โผ โฝ โพ โฟ \7f
+ โ ๐ โฝ โพ โธฟ โ ๐ ๐ ๐ ๐ ๐ ๐ ๐ก ๐ข ๐ฃ ๐ค ๐ฅ ๐ฆ ๐ง ๐จ ๐ฉ โข โ โซ โฌค ๐
๐ ๐ ๐ ๐ โฆฟ โพ
+ โ โผ โฌ โฌ ๐ ๐ ๐ ๐ โฃ ๐ ๐ ๐ โฌฉ โฌฅ โ โ ๐ โ ๐ ๐ ๐ โฌช โฌง โงซ โ ๐ โ โ โฏ โฏ โผ โฌฅ
+ โฌ โฏ โฌฃ โฌข โฏ โฏ ๐ก ๐ข ๐ฃ ๐ค ๐ฅ ๐ฆ ๐ง ๐จ ๐ฉ ๐ช ๐ซ ๐ฌ ๐ญ ๐ฎ ๐ฏ ๐ฐ ๐ฑ ๐ฒ ๐ณ ๐ด ๐ต ๐ถ ๐ท ๐ธ ๐น ๐บ
+ ๐ป ๐ผ ๐ฝ ๐พ ๐ฟ ๐ ๐ ๐ โฆ ๐ โ
โถ ๐ โท ๐ ๐ โน ๐ ๐ โฏ ๐ ๐ โฏ โฏ โป โ
+ )];
+ }},
+ 'wingdings3' => {inherit => ['' => '20'], setup => sub {
+ $_[0]->{table} = [(map {chr} 0 .. 0x20), qw(
+ โญ โญข โญก โญฃ โญฆ โญง โญฉ โญจ โญฐ โญฒ โญฑ โญณ โญถ โญธ โญป โญฝ โญค โญฅ โญช โญฌ โญซ โญญ โญ โฎ โฎก โฎข โฎฃ โฎค โฎฅ โฎฆ โฎง
+ โฎ โฎ โฎ โฎ โฎ โฎ โญพ โญฟ โฎ โฎ โฎ
โฎ โฎ โฎ โฎ โฎ โญฎ โญฏ โ โค โ โฅ โต โก โช โฎธ ๐ข ๐ขก ๐ขข ๐ขฃ ๐ขค ๐ขฅ
+ ๐ขฆ ๐ขง ๐ขจ ๐ขฉ ๐ขช ๐ขซ โ โ โ โ โ โ โ โ ๐ก ๐ก โฒ โผ โณ โฝ โ โบ โ โท โฃ โข โค โฅ ๐ ๐ ๐ \7f
+ ๐ โฒ โผ โ โถ โฎ โฎ โฎ โฎ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐
+ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ข ๐ ค ๐ ฆ ๐ จ ๐ จ ๐ ช ๐ข ๐ข ๐ข ๐ข ๐ ฎ ๐ ฐ ๐ ฒ ๐ ด ๐ ถ ๐ ธ ๐ บ ๐ น ๐ ป ๐ข ๐ข ๐ข ๐ข ๐ ผ ๐ พ ๐ ฝ
+ ๐ ฟ ๐ก ๐ก ๐ก ๐ก ๐ก ๐ก ๐ก
๐ก โฎจ โฎฉ โฎช โฎซ โฎฌ โฎญ โฎฎ โฎฏ ๐ก ๐กข ๐กก ๐กฃ ๐กค ๐กฅ ๐กง ๐กฆ ๐กฐ ๐กฒ ๐กฑ ๐กณ ๐กด ๐กต ๐กท
+ ๐กถ ๐ข ๐ข ๐ข ๐ข ๐ข ๐ข
๐ข ๐ข ๐ข ๐ข ๐ข ๐ข ๐ข ๐ข ๐ข ๐ข
+ )];
+ }},
+ 'webdings' => {inherit => ['' => '20'], setup => sub {
+ $_[0]->{table} = [(map {chr} 0 .. 0x20), qw(
+ ๐ท ๐ธ ๐ฒ ๐ถ ๐ ๐ ๐ ๐จ ๐ฉ ๐ฐ ๐ฑ ๐ถ ๐ โ ๐ผ ๐ ๐ ๐ โด โต โถ โท โช โฉ โฎ โญ โธ โน โบ ๐ ๐ณ
+ ๐ ๐ ๐ ๐ ๐ ๐ ๐ญ ๐ ๐ ๐ ๐ ๐ฃ ๐ ๐ ๐ ๐ ๐ ๐ ๐ค ๐ ๐ณ ๐ฌ ๐ซ ๐จ ๐ ๐ ๐ ๐ฌ ๐ฝ ๐ญ ๐ช ๐ซ
+ โฎ โ ๐ฒ โก ๐ก ๐ฆ ๐ฑ โ ๐ ๐ ๐ฉ ๐ฐ ๐ ๐ด โซ ๐ฅ ๐ ๐ ๐ โ ๐ฒ ๐ ๐ โณ ๐ โ ๐ญ ๐ฎ | ๐ฏ ๐ฒ \7f
+ ๐น ๐บ ๐ ๐ ๐ผ ๐ฝ ๐ โท ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ข ๐ฐ ๐ท ๐ณ ๐ช ๐ก ๐ข ๐ฃ โฏ ๐ ๐
๐ ๐ ๐น ๐บ ๐ป
+ ๐ต ๐ฐ ๐ฝ ๐พ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ผ ๐ญ ๐ ๐ ๐ ๐ง ๐ฟ ๐ ๐ท ๐ ๐ฌ ๐ฝ ๐น ๐พ ๐ป ๐ ๐ ๐บ ๐ป
+ ๐ฅ ๐ฆ ๐ง ๐น ๐ฎ ๐ป ๐ผ ๐ ๐ ๐ ๐จ ๐ฉ ๐ฟ ๐ช ๐ ๐ ๐ ๐ ๐ฅ ๐ค ๐ณ ๐ฃ ๐ค ๐ฅ ๐ฆ โ ๐ง ๐จ ๐ฉ ๐ช ๐ฌ ๐ซ
+ ๐ ๐ก ๐ ๐ ๐ฝ ๐ธ ๐ ๐ โ
โฟ ๐ ๐ ๐ ๐ค ๐ฅ ๐ฆ ๐ง ๐ช ๐ฟ ๐ฆ ๐ ๐ ๐ ๐ฌ ๐ฎ ๐ญ ๐ฏ ๐บ ๐ ๐ ๐ ๐
+ )];
+ }},
'iso-8859-2' => {inherit => ['iso-8859-1' => 'A0']},
'iso-8859-3' => {inherit => ['iso-8859-1' => 'A0']}, #TODO: also apply to iso-8859-9
}
$row{endpoint} ||= 0xFF;
- if ($row{set}) {}
+ if (defined $row{table} or defined $row{cell}) {
+ $row{set} //= $input;
+ }
elsif ($row{set} = Encode::resolve_alias($input)) {
$row{offset} = delete $row{startpoint};
if ($charset->{varchar}) {
}
$row{endpoint} -= $row{offset};
-
- $visible->{ascii} = # assume common base
- $visible->{ $row{set} } = 1;
+ $visible->{ascii}++; # assume common base
}
else {
Alert("Encoding <q>$input</q> unknown");
}
push @request, \%row;
+ $visible->{ $row{set} } = 1 if $row{table};
}
tabinput($_) for @tablist;
my $cp = $offset + $row->{offset};
my $glyph = ref $row->{table} eq 'ARRAY' ? $row->{table}->[$offset] :
substr $row->{table}, $offset, 1;
- my ($cell, $name, $class) = $glyph eq $NOCHAR ? () :
+ my ($cell, $name, $class) = !defined $glyph || $glyph eq $NOCHAR ? () :
$glyphs->glyph_html($glyph);
if ($mode) {