index: release v1.18 with only altgr index linked
[sheet.git] / charset-encoding.inc.pl
index f4a9f26d1f9007a8153d320f467b40665a2a44ff..8e748ed3f5e25cfe89e14c10098b075af0914f35 100644 (file)
@@ -71,8 +71,9 @@ use utf8;
                },
        },
        'adobesymbol'  => {inherit => ['symbol' => '20-7F+A0', '' => '20-7F+A0']}, # minor differences, irrelevant except for different 'โ‚ฌ'
-       'wingdings'    => {inherit => ['' => '20'], setup => sub {
-               $_[0]->{table} = [(map {chr} 0 .. 0x20), qw(
+       'wingdings'    => {
+               inherit => ['' => '20'],
+               table => [(map {chr} 0 .. 0x20), qw(
                          ๐Ÿ–‰ โœ‚ โœ ๐Ÿ‘“ ๐Ÿ•ญ ๐Ÿ•ฎ ๐Ÿ•ฏ ๐Ÿ•ฟ โœ† ๐Ÿ–‚ ๐Ÿ–ƒ ๐Ÿ“ช ๐Ÿ“ซ ๐Ÿ“ฌ ๐Ÿ“ญ ๐Ÿ“ ๐Ÿ“‚ ๐Ÿ“„ ๐Ÿ— ๐Ÿ— ๐Ÿ—„ โŒ› ๐Ÿ–ฎ ๐Ÿ–ฐ ๐Ÿ–ฒ ๐Ÿ–ณ ๐Ÿ–ด ๐Ÿ–ซ ๐Ÿ–ฌ โœ‡ โœ
                        ๐Ÿ–Ž โœŒ ๐Ÿ‘Œ ๐Ÿ‘ ๐Ÿ‘Ž โ˜œ โ˜ž โ˜ โ˜Ÿ ๐Ÿ– โ˜บ ๐Ÿ˜ โ˜น ๐Ÿ’ฃ โ˜  ๐Ÿณ ๐Ÿฑ โœˆ โ˜ผ ๐Ÿ’ง โ„ ๐Ÿ•† โœž ๐Ÿ•ˆ โœ  โœก โ˜ช โ˜ฏ เฅ โ˜ธ โ™ˆ โ™‰
                        โ™Š โ™‹ โ™Œ โ™ โ™Ž โ™ โ™ โ™‘ โ™’ โ™“ ๐Ÿ™ฐ ๐Ÿ™ต โ— ๐Ÿ”พ โ–  โ–ก ๐Ÿž โ‘ โ’ โฌง โงซ โ—† โ– โฌฅ โŒง โฎน โŒ˜ ๐Ÿต ๐Ÿถ ๐Ÿ™ถ ๐Ÿ™ท \7f
@@ -80,10 +81,11 @@ use utf8;
                        โ–ช โšช ๐Ÿž† ๐Ÿžˆ โ—‰ โ—Ž ๐Ÿ”ฟ โ–ช โ—ป ๐ŸŸ‚ โœฆ โ˜… โœถ โœด โœน โœต โฏ โŒ– โŸก โŒ‘ โฏ‘ โœช โœฐ ๐Ÿ• ๐Ÿ•‘ ๐Ÿ•’ ๐Ÿ•“ ๐Ÿ•” ๐Ÿ•• ๐Ÿ•– ๐Ÿ•— ๐Ÿ•˜
                        ๐Ÿ•™ ๐Ÿ•š ๐Ÿ•› โฎฐ โฎฑ โฎฒ โฎณ โฎด โฎต โฎถ โฎท ๐Ÿ™ช ๐Ÿ™ซ ๐Ÿ™• ๐Ÿ™” ๐Ÿ™— ๐Ÿ™– ๐Ÿ™ ๐Ÿ™‘ ๐Ÿ™’ ๐Ÿ™“ โŒซ โŒฆ โฎ˜ โฎš โฎ™ โฎ› โฎˆ โฎŠ โฎ‰ โฎ‹ ๐Ÿกจ
                        ๐Ÿกช ๐Ÿกฉ ๐Ÿกซ ๐Ÿกฌ ๐Ÿกญ ๐Ÿกฏ ๐Ÿกฎ ๐Ÿกธ ๐Ÿกบ ๐Ÿกน ๐Ÿกป ๐Ÿกผ ๐Ÿกฝ ๐Ÿกฟ ๐Ÿกพ โ‡ฆ โ‡จ โ‡ง โ‡ฉ โฌ„ โ‡ณ โฌ€ โฌ โฌƒ โฌ‚ ๐Ÿขฌ ๐Ÿขญ ๐Ÿ—ถ โœ” ๐Ÿ—ท ๐Ÿ—น ๏ฃฟ
-               )];
-       }},
-       'wingdings2'   => {inherit => ['' => '20'], setup => sub {
-               $_[0]->{table} = [(map {chr} 0 .. 0x20), qw(
+               )],
+       },
+       'wingdings2'   => {
+               inherit => ['' => '20'],
+               table => [(map {chr} 0 .. 0x20), qw(
                          ๐Ÿ–Š ๐Ÿ–‹ ๐Ÿ–Œ ๐Ÿ– โœ„ โœ€ ๐Ÿ•พ ๐Ÿ•ฝ ๐Ÿ—… ๐Ÿ—† ๐Ÿ—‡ ๐Ÿ—ˆ ๐Ÿ—‰ ๐Ÿ—Š ๐Ÿ—‹ ๐Ÿ—Œ ๐Ÿ— ๐Ÿ“‹ ๐Ÿ—‘ ๐Ÿ—” ๐Ÿ–ต ๐Ÿ–ถ ๐Ÿ–ท ๐Ÿ–ธ ๐Ÿ–ญ ๐Ÿ–ฏ ๐Ÿ–ฑ ๐Ÿ–’ ๐Ÿ–“ ๐Ÿ–˜ ๐Ÿ–™
                        ๐Ÿ–š ๐Ÿ–› ๐Ÿ‘ˆ ๐Ÿ‘‰ ๐Ÿ–œ ๐Ÿ– ๐Ÿ–ž ๐Ÿ–Ÿ ๐Ÿ–  ๐Ÿ–ก ๐Ÿ‘† ๐Ÿ‘‡ ๐Ÿ–ข ๐Ÿ–ฃ ๐Ÿ–‘ ๐Ÿ—ด โœ“ ๐Ÿ—ต โ˜‘ โ˜’ โ˜’ โฎพ โฎฟ โฆธ โฆธ ๐Ÿ™ฑ ๐Ÿ™ด ๐Ÿ™ฒ ๐Ÿ™ณ โ€ฝ ๐Ÿ™น ๐Ÿ™บ
                        ๐Ÿ™ป ๐Ÿ™ฆ ๐Ÿ™ค ๐Ÿ™ฅ ๐Ÿ™ง ๐Ÿ™š ๐Ÿ™˜ ๐Ÿ™™ ๐Ÿ™› โ“ช โ‘  โ‘ก โ‘ข โ‘ฃ โ‘ค โ‘ฅ โ‘ฆ โ‘ง โ‘จ โ‘ฉ โ“ฟ โถ โท โธ โน โบ โป โผ โฝ โพ โฟ \7f
@@ -91,10 +93,11 @@ use utf8;
                        โ–  โ—ผ โฌ› โฌœ ๐Ÿž‘ ๐Ÿž’ ๐Ÿž“ ๐Ÿž” โ–ฃ ๐Ÿž• ๐Ÿž– ๐Ÿž— โฌฉ โฌฅ โ—† โ—‡ ๐Ÿžš โ—ˆ ๐Ÿž› ๐Ÿžœ ๐Ÿž โฌช โฌง โงซ โ—Š ๐Ÿž  โ—– โ—— โฏŠ โฏ‹ โ—ผ โฌฅ
                        โฌŸ โฏ‚ โฌฃ โฌข โฏƒ โฏ„ ๐Ÿžก ๐Ÿžข ๐Ÿžฃ ๐Ÿžค ๐Ÿžฅ ๐Ÿžฆ ๐Ÿžง ๐Ÿžจ ๐Ÿžฉ ๐Ÿžช ๐Ÿžซ ๐Ÿžฌ ๐Ÿžญ ๐Ÿžฎ ๐Ÿžฏ ๐Ÿžฐ ๐Ÿžฑ ๐Ÿžฒ ๐Ÿžณ ๐Ÿžด ๐Ÿžต ๐Ÿžถ ๐Ÿžท ๐Ÿžธ ๐Ÿžน ๐Ÿžบ
                        ๐Ÿžป ๐Ÿžผ ๐Ÿžฝ ๐Ÿžพ ๐Ÿžฟ ๐ŸŸ€ ๐ŸŸ‚ ๐ŸŸ„ โœฆ ๐ŸŸ‰ โ˜… โœถ ๐ŸŸ‹ โœท ๐ŸŸ ๐ŸŸ’ โœน ๐ŸŸƒ ๐ŸŸ‡ โœฏ ๐ŸŸ ๐ŸŸ” โฏŒ โฏ โ€ป โ‚
-               )];
-       }},
-       'wingdings3'   => {inherit => ['' => '20'], setup => sub {
-               $_[0]->{table} = [(map {chr} 0 .. 0x20), qw(
+               )],
+       },
+       'wingdings3'   => {
+               inherit => ['' => '20'],
+               table => [(map {chr} 0 .. 0x20), qw(
                          โญ  โญข โญก โญฃ โญฆ โญง โญฉ โญจ โญฐ โญฒ โญฑ โญณ โญถ โญธ โญป โญฝ โญค โญฅ โญช โญฌ โญซ โญญ โญ โฎ  โฎก โฎข โฎฃ โฎค โฎฅ โฎฆ โฎง
                        โฎ โฎ‘ โฎ’ โฎ“ โฎ€ โฎƒ โญพ โญฟ โฎ„ โฎ† โฎ… โฎ‡ โฎ โฎ โฎŽ โฎŒ โญฎ โญฏ โŽ‹ โŒค โŒƒ โŒฅ โŽต โก โ‡ช โฎธ ๐Ÿข  ๐Ÿขก ๐Ÿขข ๐Ÿขฃ ๐Ÿขค ๐Ÿขฅ
                        ๐Ÿขฆ ๐Ÿขง ๐Ÿขจ ๐Ÿขฉ ๐Ÿขช ๐Ÿขซ โ† โ†’ โ†‘ โ†“ โ†– โ†— โ†™ โ†˜ ๐Ÿก˜ ๐Ÿก™ โ–ฒ โ–ผ โ–ณ โ–ฝ โ—„ โ–บ โ— โ–ท โ—ฃ โ—ข โ—ค โ—ฅ ๐Ÿž€ ๐Ÿž‚ ๐Ÿž \7f
@@ -102,10 +105,11 @@ use utf8;
                        ๐Ÿ ‡ ๐Ÿ ˆ ๐Ÿ Š ๐Ÿ ‰ ๐Ÿ ‹ ๐Ÿ   ๐Ÿ ข ๐Ÿ ค ๐Ÿ ฆ ๐Ÿ จ ๐Ÿ จ ๐Ÿ ช ๐Ÿขœ ๐Ÿข ๐Ÿขž ๐ŸขŸ ๐Ÿ ฎ ๐Ÿ ฐ ๐Ÿ ฒ ๐Ÿ ด ๐Ÿ ถ ๐Ÿ ธ ๐Ÿ บ ๐Ÿ น ๐Ÿ ป ๐Ÿข˜ ๐Ÿขš ๐Ÿข™ ๐Ÿข› ๐Ÿ ผ ๐Ÿ พ ๐Ÿ ฝ
                        ๐Ÿ ฟ ๐Ÿก€ ๐Ÿก‚ ๐Ÿก ๐Ÿกƒ ๐Ÿก„ ๐Ÿก† ๐Ÿก… ๐Ÿก‡ โฎจ โฎฉ โฎช โฎซ โฎฌ โฎญ โฎฎ โฎฏ ๐Ÿก  ๐Ÿกข ๐Ÿกก ๐Ÿกฃ ๐Ÿกค ๐Ÿกฅ ๐Ÿกง ๐Ÿกฆ ๐Ÿกฐ ๐Ÿกฒ ๐Ÿกฑ ๐Ÿกณ ๐Ÿกด ๐Ÿกต ๐Ÿกท
                        ๐Ÿกถ ๐Ÿข€ ๐Ÿข‚ ๐Ÿข ๐Ÿขƒ ๐Ÿข„ ๐Ÿข… ๐Ÿข‡ ๐Ÿข† ๐Ÿข ๐Ÿข’ ๐Ÿข‘ ๐Ÿข“ ๐Ÿข” ๐Ÿข– ๐Ÿข• ๐Ÿข—
-               )];
-       }},
-       'webdings'     => {inherit => ['' => '20'], setup => sub {
-               $_[0]->{table} = [(map {chr} 0 .. 0x20), qw(
+               )],
+       },
+       'webdings'     => {
+               inherit => ['' => '20'],
+               table => [(map {chr} 0 .. 0x20), qw(
                          ๐Ÿ•ท ๐Ÿ•ธ ๐Ÿ•ฒ ๐Ÿ•ถ ๐Ÿ† ๐ŸŽ– ๐Ÿ–‡ ๐Ÿ—จ ๐Ÿ—ฉ ๐Ÿ—ฐ ๐Ÿ—ฑ ๐ŸŒถ ๐ŸŽ— โ–ž ๐Ÿ™ผ ๐Ÿ—• ๐Ÿ—– ๐Ÿ—— โด โต โถ โท โช โฉ โฎ โญ โธ โน โบ ๐Ÿ—š ๐Ÿ—ณ
                        ๐Ÿ›  ๐Ÿ— ๐Ÿ˜ ๐Ÿ™ ๐Ÿš ๐Ÿœ ๐Ÿญ ๐Ÿ› ๐Ÿ  ๐Ÿ– ๐Ÿ ๐Ÿ›ฃ ๐Ÿ” ๐Ÿ” ๐Ÿ‘ ๐Ÿ‘‚ ๐Ÿž ๐Ÿ• ๐Ÿ›ค ๐ŸŸ ๐Ÿ›ณ ๐Ÿ•ฌ ๐Ÿ•ซ ๐Ÿ•จ ๐Ÿ”ˆ ๐ŸŽ” ๐ŸŽ• ๐Ÿ—ฌ ๐Ÿ™ฝ ๐Ÿ—ญ ๐Ÿ—ช ๐Ÿ—ซ
                        โฎ” โœ” ๐Ÿšฒ โ–ก ๐Ÿ›ก ๐Ÿ“ฆ ๐Ÿ›ฑ โ–  ๐Ÿš‘ ๐Ÿ›ˆ ๐Ÿ›ฉ ๐Ÿ›ฐ ๐ŸŸˆ ๐Ÿ•ด โšซ ๐Ÿ›ฅ ๐Ÿš” ๐Ÿ—˜ ๐Ÿ—™ โ“ ๐Ÿ›ฒ ๐Ÿš‡ ๐Ÿš โ›ณ ๐Ÿ›‡ โŠ– ๐Ÿšญ ๐Ÿ—ฎ | ๐Ÿ—ฏ ๐Ÿ—ฒ \7f
@@ -113,8 +117,8 @@ use utf8;
                        ๐Ÿ•ต ๐Ÿ•ฐ ๐Ÿ–ฝ ๐Ÿ–พ ๐Ÿ“‹ ๐Ÿ—’ ๐Ÿ—“ ๐Ÿ“– ๐Ÿ“š ๐Ÿ—ž ๐Ÿ—Ÿ ๐Ÿ—ƒ ๐Ÿ—‚ ๐Ÿ–ผ ๐ŸŽญ ๐ŸŽœ ๐ŸŽ˜ ๐ŸŽ™ ๐ŸŽง ๐Ÿ’ฟ ๐ŸŽž ๐Ÿ“ท ๐ŸŽŸ ๐ŸŽฌ ๐Ÿ“ฝ ๐Ÿ“น ๐Ÿ“พ ๐Ÿ“ป ๐ŸŽš ๐ŸŽ› ๐Ÿ“บ ๐Ÿ’ป
                        ๐Ÿ–ฅ ๐Ÿ–ฆ ๐Ÿ–ง ๐Ÿ•น ๐ŸŽฎ ๐Ÿ•ป ๐Ÿ•ผ ๐Ÿ“Ÿ ๐Ÿ– ๐Ÿ–€ ๐Ÿ–จ ๐Ÿ–ฉ ๐Ÿ–ฟ ๐Ÿ–ช ๐Ÿ—œ ๐Ÿ”’ ๐Ÿ”“ ๐Ÿ— ๐Ÿ“ฅ ๐Ÿ“ค ๐Ÿ•ณ ๐ŸŒฃ ๐ŸŒค ๐ŸŒฅ ๐ŸŒฆ โ˜ ๐ŸŒง ๐ŸŒจ ๐ŸŒฉ ๐ŸŒช ๐ŸŒฌ ๐ŸŒซ
                        ๐ŸŒœ ๐ŸŒก ๐Ÿ›‹ ๐Ÿ› ๐Ÿฝ ๐Ÿธ ๐Ÿ›Ž ๐Ÿ› โ“… โ™ฟ ๐Ÿ›† ๐Ÿ–ˆ ๐ŸŽ“ ๐Ÿ—ค ๐Ÿ—ฅ ๐Ÿ—ฆ ๐Ÿ—ง ๐Ÿ›ช ๐Ÿฟ ๐Ÿฆ ๐ŸŸ ๐Ÿ• ๐Ÿˆ ๐Ÿ™ฌ ๐Ÿ™ฎ ๐Ÿ™ญ ๐Ÿ™ฏ ๐Ÿ—บ ๐ŸŒ ๐ŸŒ ๐ŸŒŽ ๐Ÿ•Š
-               )];
-       }},
+               )],
+       },
 
        'iso-8859-2'   => {inherit => ['iso-8859-1' => 'A0']},
        'iso-8859-3'   => {inherit => ['iso-8859-1' => 'A0']}, #TODO: also apply to iso-8859-9
@@ -161,8 +165,9 @@ use utf8;
 
        'koi8-u'       => {inherit => ['koi8-r' => '90-BF']},
        'koi8-f'       => {inherit => ['koi8-u' => '90-BF']},
-       'mik'          => {inherit => ['cp437' => '80-D8', 'cp866' => 'B0'], setup => sub {
-               $_[0]->{table} = [(map {chr} 0 .. 0x7F), qw(
+       'mik'          => {
+               inherit => ['cp437' => '80-D8', 'cp866' => 'B0'],
+               table => [(map {chr} 0 .. 0x7F), qw(
                        ะ ะ‘ ะ’ ะ“ ะ” ะ• ะ– ะ— ะ˜ ะ™ ะš ะ› ะœ ะ ะž ะŸ
                        ะ  ะก ะข ะฃ ะค ะฅ ะฆ ะง ะจ ะฉ ะช ะซ ะฌ ะญ ะฎ ะฏ
                        ะฐ ะฑ ะฒ ะณ ะด ะต ะถ ะท ะธ ะน ะบ ะป ะผ ะฝ ะพ ะฟ
@@ -171,8 +176,8 @@ use utf8;
                        โ–‘ โ–’ โ–“ โ”‚ โ”ค โ„– ยง โ•— โ• โ”˜ โ”Œ โ–ˆ โ–„ โ–Œ โ– โ–€
                        ฮฑ รŸ ฮ“ ฯ€ ฮฃ ฯƒ ยต ฯ„ ฮฆ ฮ˜ ฮฉ ฮด โˆž ฯ† ฮต โˆฉ
                        โ‰ก ยฑ โ‰ฅ โ‰ค โŒ  โŒก รท โ‰ˆ ยฐ โˆ™ ยท โˆš โฟ ยฒ โ– 
-               ), "\xA0"];
-       }},
+               ), "\xA0"],
+       },
 
        'macromanian'  => {inherit => ['MacRoman' => 'A0-BF+D0-DF']},
        'macrumanian'  => {inherit => ['MacRomanian' => 'A0-BF+D0-DF', 'MacRoman' => 'A0-BF+D0-DF']},
@@ -219,22 +224,24 @@ use utf8;
        'cp875'        => {inherit => ['cp37' => '30']},
 
        legacy     => [qw( cp437 ATASCII PETSCII MSX ZX-Spectrum ANSEL )],
-       'petscii'      => {inherit => ['' => '40-7F+A0-BF'], setup => sub {
-               $_[0]->{table} = [(map {chr} 0 .. 0x3F), qw(
+       'petscii'      => {
+               inherit => ['' => '40-7F+A0-BF'],
+               table => [(map {chr} 0 .. 0x3F), qw(
                        @ a b c d e f g h i j k l m n o p q r s t u v w x y z [ ยฃ ] โ†‘ โ†
                        ๐Ÿญน A B C D E F G H I J K L M N O P Q R S T U V W X Y Z โ”ผ ๐ŸฎŒ โ”‚ ๐Ÿฎ– ๐Ÿฎ˜
                        . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
                        ย  โ–Œ โ–„ โ–” โ– โ– โ–’ โ–• ๐Ÿฎ ๐Ÿฎ™ ๐Ÿฎ‡ โ”œ โ–— โ”” โ” โ–‚ โ”Œ โ”ด โ”ฌ โ”ค โ–Ž โ– ๐Ÿฎˆ ๐Ÿฎ‚ ๐Ÿฎƒ โ–ƒ โœ“ โ–– โ– โ”˜ โ–˜ โ–š
-               )];
-       }},
-       'atascii'      => {inherit => ['' => '0-1F+60-7F'], setup => sub {
-               $_[0]->{table} = [qw(
+               )],
+       },
+       'atascii'      => {
+               inherit => ['' => '0-1F+60-7F'],
+               table => [qw(
                        โ™ฅ โ”œ ๐Ÿฎ‡ โ”˜ โ”ค โ” โ•ฑ โ•ฒ โ—ข โ–— โ—ฃ โ– โ–˜ ๐Ÿฎ‚ โ–‚ โ–– โ™ฃ โ”Œ โ”€ โ”ผ โ€ข โ–„ โ–Ž โ”ฌ โ”ด โ–Œ โ”” โ› โ†‘ โ†“ โ† โ†’
                        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
                        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
                        โ™ฆ a b c d e f g h i j k l m n o p q r s t u v w x y z โ™  | ๐Ÿขฐ โ—€ โ–ถ
-               )];
-       }},
+               )],
+       },
        'zx-spectrum'  => {
                inherit => ['' => '50-8F'],
                set => 'ascii',
@@ -244,19 +251,18 @@ use utf8;
                        0x7F => 'ยฉโ€‡โ–โ–˜โ–€โ–—โ–โ–šโ–œโ––โ–žโ–Œโ–›โ–„โ–Ÿโ–™โ–ˆ',
                },
        },
-       'msx'          => {inherit => ['cp437' => '80-FF'], setup => sub {
-               $_[0]->{table} = [(map {chr} 0 .. 0x7F), qw(
+       'msx'          => {
+               inherit => ['cp437' => '80-FF'],
+               table => [(map {chr} 0 .. 0x7F), qw(
                        ร‡ รผ รฉ รข รค ร  รฅ รง รช รซ รจ รฏ รฎ รฌ ร„ ร… ร‰ รฆ ร† รด รถ รฒ รป รน รฟ ร– รœ ยข ยฃ ยฅ โ‚ง ฦ’
                        รก รญ รณ รบ รฑ ร‘ ยช ยบ ยฟ โŒ ยฌ ยฝ ยผ ยก ยซ ยป รƒ รฃ ฤจ ฤฉ ร• รต ลจ ลฉ ฤฒ ฤณ ยพ โˆฝ โ—Š โ€ฐ ยถ ยง
                        โ–‚ โ–š โ–† ๐Ÿฎ‚ โ–ฌ ๐Ÿฎ… โ–Ž โ–ž โ–Š ๐Ÿฎ‡ ๐ŸฎŠ ๐Ÿฎ™ ๐Ÿฎ˜ ๐Ÿญญ ๐Ÿญฏ ๐Ÿญฌ ๐Ÿญฎ ๐Ÿฎš ๐Ÿฎ› โ–˜ โ–— โ– โ–– ๐Ÿฎ– ฮ” โ€ก ฯ‰ โ–ˆ โ–„ โ–Œ โ– โ–€
                        ฮฑ รŸ ฮ“ ฯ€ ฮฃ ฯƒ ยต ฯ„ ฮฆ ฮ˜ ฮฉ ฮด โˆž โŒ€ โˆˆ โˆฉ โ‰ก ยฑ โ‰ฅ โ‰ค โŒ  โŒก รท โ‰ˆ ยฐ โˆ™ ยท โˆš โฟ ยฒ โ– 
-               )];
-       }},
+               )],
+       },
        'brascii'      => {
                inherit => ['' => 'D0-DF+F0-FF'],
-               setup => sub {
-                       $_[0]->{table} = [(map {chr} 0 .. 0xFF)];
-               },
+               table => [(map {chr} 0 .. 0xFF)],
                replace => {
                        0xD7 => 'ล’',
                        0xF7 => 'ล“',
@@ -265,8 +271,7 @@ use utf8;
        'ansel'        => {
                note => '+GEDCOM',
                inherit => ['' => 'A0-CF+E0-FE'],
-               setup => sub {
-                       $_[0]->{table} = [
+               table => [
                                (undef) x 0xA0,
                                undef, qw( ล ร˜ ฤ รž ร† ล’ สน ยท โ™ญ ยฎ    ยฑ          ฦ  ฦฏ สพ ), undef,
                                qw( สฟ      ล‚ รธ ฤ‘ รพ รฆ ล“ สบ ฤฑ ยฃ รฐ ), undef, qw( ฦก ฦฐ ), undef, undef,
@@ -277,8 +282,7 @@ use utf8;
                                        0x327, 0x328, 0x0323, 0x0324, 0x0325, 0x333, 0x332, 0x326,
                                        0x31C, 0x32E, 0xFE22, 0xFE23, undef,  undef, 0x313, undef,
                                ),
-                       ];
-               },
+               ],
                replace => {
                        # GEDCOM extensions
                        0xBE => 'โ–ก',
@@ -292,56 +296,41 @@ use utf8;
                        0xC8 => 'โ‚ฌ',
                },
        },
-
-       ''             => {setup => sub {
-               my $row = shift;
-               $row->{offset} = delete $row->{startpoint};
-               $row->{set} = 'Unicode characters';
-               my $block = $row->{offset} >> 8;
-               $row->{endpoint} ||= ($block + 1 << 8) - 1;
-               $block == ($row->{endpoint} >> 8) or undef $block;
-
-               $row->{table} = join '', map { chr =~ s/\A\p{Unassigned}\z/๏ฟฝ/r }
-                       $row->{offset} .. $row->{endpoint};
-               utf8::upgrade($row->{table});  # prevent latin1 output
-
-               $row->{endpoint} -= $row->{offset};
-
-               if (defined $block) {
-                       $row->{set} = sprintf 'Unicode block U+%02Xxx', $block;
-                       $row->{offset} %= 0x100;
-               }
-
-               return $row;
-       }},
-       u              => {setup => sub {
-               my $row = shift;
-               state $celldata = do 'charset-unicode.inc.pl'
-                       or Alert('Table data could not be read', $@ || $!);
-               $row->{cell} = $celldata;
-
-               $row->{endpoint} ||= 0x1FFF;
-               $row->{set} = 'Unicode ' . (
-                       $row->{startpoint} <  0x1000 && $row->{endpoint} < 0x1000 ? 'BMP' :
-                       $row->{startpoint} >= 0x1000 && $row->{endpoint} < 0x2000 ? 'SMP' :
-                       'allocations'
-               );
-               return $row;
-       }},
-       uu             => {setup => sub {
-               my $row = shift;
-               $row->{cell} = do 'charset-ucplanes.inc.pl'
-                       or Alert('Table data could not be read', $@ || $!);
-               $row->{endpoint} ||= 0x3FF;
-               $row->{set} = 'Unicode planes';
-               return $row;
-       }},
-       utf8           => {setup => sub {
-               my $row = shift;
-               $row->{set} = 'UTF-8';
-               $row->{cell} = do 'charset-utf8.inc.pl'
-                       or Alert('Table data could not be read', $@ || $!);
-               return $row;
-       }},
-       'utf-8'        => 'utf8',
+       'ti86'         => {
+               note => 'similar to TI85',
+               inherit => ['', => '0-1F+80-EC'],
+               table => [
+                               undef, qw(
+                                       ๐› ๐จ ๐ ๐ก โ–ถ โฌ† โฌ‡ โˆซ ร— ๐€ ๐ ๐‚ ๐ƒ ๐„ ๐…
+                                       โˆš โปยน ยฒ โˆ  ยฐ สณ แต€ โ‰ค โ‰  โ‰ฅ โป แด‡ โ†’ โจ โ†‘ โ†“
+                               ),
+                               (undef) x 0x60,
+                               qw(
+                                       โ‚€ โ‚ โ‚‚ โ‚ƒ โ‚„ โ‚… โ‚† โ‚‡ โ‚ˆ โ‚‰ ร ร€ ร‚ ร„ รก ร 
+                                       รข รค ร‰ รˆ รŠ ร‹ รฉ รจ รช รซ ร รŒ รŽ ร รญ รฌ
+                                       รฎ รฏ ร“ ร’ ร” ร– รณ รฒ รด รถ รš ร™ ร› รœ รบ รน
+                                       รป รผ ร‡ รง ร‘ รฑ ยด ` ยจ ยฟ ยก ฮฑ ฮฒ ฮณ ฮ” ฮด
+                                       ฯต ฮธ ฮป ฮผ ฯ€ ฯ ฮฃ ฯƒ ฯ„ ฯ• ฮฉ xฬ… yฬ… หŸ โ€ฆ โ—€
+                                       โ–  โˆ• โ€ ยฒ ยฐ ยณ :โƒž โžง โงต ๐Ÿ™ฝ โ—ฅ โ—ฃ โŠธ โˆ˜ โ‹ฑ โ–ˆ
+                                       โ‡ง Aโƒž aโƒž _ โ‡งฬฒ Aฬฒ aฬฒ โ–’ โฌž ห– ยท โด ๏นฆ
+                               ),
+               ],
+       },
+       'ti89'         => {
+               note => 'also TI92(+)',
+               inherit => ['', => '0-1F+7F-BE'],
+               table => [
+                               qw(
+                                       โ–’ โ โ‚ โƒ โ„ โ… โ† ๐Ÿ”” โŒซ โ‡ฅ ), chr(0xA), qw( โฌ โค’ โ†ต ๐Ÿ”’ โœ“
+                                       โ–  โ—‚ โ–ธ โ–ด โ–พ โ† โ†’ โ†‘ โ†“ โ—€ โ–ถ โฌ† โˆช โˆฉ โŠ‚ โˆˆ
+                               ),
+                               (map {chr} 0x20 .. 0x7E), 'โ—†',
+                               qw(
+                                       ฮฑ ฮฒ ฮ“ ฮณ ฮ” ฮด ฮต ฮถ ฮธ ฮป ฮพ โˆ ฯ€ ฯ โˆ‘ ฯƒ
+                                       ฯ„ ฯ• ฯˆ ฮฉ ฯ‰ แด‡ โ„ฏ ๐ข สณ แต€ xฬ… yฬ… โ‰ค โ‰  โ‰ฅ โˆ 
+                                       โ€ฆ ยก ยข ยฃ ยค ยฅ ยฆ ยง โˆš ยฉ ยช ยซ ยฌ โป ยฎ ยฏ
+                                       ยฐ ยฑ ยฒ ยณ โปยน ยต ยถ ยท โบ ยน ยบ ยป ๐‘‘ โˆซ โˆž ยฟ
+                               ),
+               ],
+       },
 };