charset: inline symbol character tables
authorMischa POSLAWSKY <perl@shiar.org>
Sat, 22 Apr 2017 15:55:53 +0000 (17:55 +0200)
committerMischa POSLAWSKY <perl@shiar.org>
Thu, 25 May 2017 20:13:05 +0000 (22:13 +0200)
Set arrays directly instead of bothering with Encode conversion.

Encode/Webdings.pm [deleted file]
Encode/Wingdings.pm [deleted file]
Encode/Wingdings2.pm [deleted file]
Encode/Wingdings3.pm [deleted file]
charset-encoding.inc.pl
charset.plp

diff --git a/Encode/Webdings.pm b/Encode/Webdings.pm
deleted file mode 100644 (file)
index eb6e487..0000000
+++ /dev/null
@@ -1,22 +0,0 @@
-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;
diff --git a/Encode/Wingdings.pm b/Encode/Wingdings.pm
deleted file mode 100644 (file)
index f63ec04..0000000
+++ /dev/null
@@ -1,34 +0,0 @@
-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;
diff --git a/Encode/Wingdings2.pm b/Encode/Wingdings2.pm
deleted file mode 100644 (file)
index cf70296..0000000
+++ /dev/null
@@ -1,22 +0,0 @@
-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;
diff --git a/Encode/Wingdings3.pm b/Encode/Wingdings3.pm
deleted file mode 100644 (file)
index 85ce8d1..0000000
+++ /dev/null
@@ -1,22 +0,0 @@
-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;
index 6e46477..92330ab 100644 (file)
@@ -71,10 +71,50 @@ use utf8;
                },
        },
        '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
index 6ec4a24..8e67c67 100644 (file)
@@ -149,7 +149,9 @@ sub tabinput {
        }
        $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}) {
@@ -165,9 +167,7 @@ sub tabinput {
                }
 
                $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");
@@ -206,6 +206,7 @@ sub tabinput {
        }
 
        push @request, \%row;
+       $visible->{ $row{set} } = 1 if $row{table};
 }
 tabinput($_) for @tablist;
 
@@ -329,7 +330,7 @@ for my $row (@request) {
                        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) {