X-Git-Url: http://git.shiar.nl/sheet.git/blobdiff_plain/3e2e19818a6102eff505984ca2430ae3ac901d08..2f6bd0f228e04949e561c9e5d7713a0baef77cd5:/charset.plp diff --git a/charset.plp b/charset.plp index 4f60765..ed495fe 100644 --- a/charset.plp +++ b/charset.plp @@ -143,50 +143,12 @@ sub tabinput { } } - if ($input =~ m{ \A (?:wing|web)dings \d* \z }ix) { - eval "require Encode::\u$input"; + if ($charset->{setup}) { + eval { $charset->{setup}->(\%row) } + or Alert("Incomplete setup of $input", $@); } - if ($input eq '') { - $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 } $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; - } - } - elsif (lc $input eq 'uu') { - $row{cell} = do 'charset-ucplanes.inc.pl' - or Alert('Table data could not be read', $@ || $!); - $row{endpoint} ||= 0x3FF; - $row{set} = 'Unicode planes'; - } - elsif (lc $input eq 'u') { - $row{cell} = do 'charset-unicode.inc.pl' - or Alert('Table data could not be read', $@ || $!); - - $row{endpoint} ||= 0x1FFF; - $row{set} = 'Unicode ' . ( - $row{startpoint} < 0x1000 && $row{endpoint} < 0x1000 ? 'BMP' : - $row{startpoint} >= 0x1000 && $row{endpoint} < 0x2000 ? 'SMP' : - 'allocations' - ); - } - elsif ($input =~ m/^utf-*8$/i) { - $row{set} = 'UTF-8'; - $row{cell} = do 'charset-utf8.inc.pl' - or Alert('Table data could not be read', $@ || $!); - $row{endpoint} = 0xFF; - } + if ($row{set}) {} elsif ($row{set} = Encode::resolve_alias($input)) { $row{offset} = delete $row{startpoint}; $row{endpoint} ||= 0xFF;