From: Mischa POSLAWSKY Date: Sat, 8 Apr 2017 15:02:37 +0000 (+0200) Subject: charset: relevant unicode blocks in language comparisons X-Git-Tag: v1.10~207 X-Git-Url: http://git.shiar.nl/sheet.git/commitdiff_plain/276a672c5fd261773a452d3bca765c7c7e4e562f charset: relevant unicode blocks in language comparisons --- diff --git a/charset.plp b/charset.plp index 7dc1aee..6119859 100644 --- a/charset.plp +++ b/charset.plp @@ -48,10 +48,12 @@ sub tabinput { turkish => [qw( iso-8859-9 iso-8859-3 cp1254 cp857 MacTurkish )], baltic => [qw( iso-8859-4 iso-8859-13 cp1257 cp775 )], nordic => [qw( iso-8859-10 cp865 cp861 MacIcelandic MacSami )], - cyrillic => [qw( koi8-r koi8-u koi8-f iso-8859-5 cp1251 MacCyrillic cp866 cp855 )], # MacUkrainian is broken - arabic => [qw( iso-8859-6 cp1256 MacArabic cp864 cp1006 MacFarsi )], - greek => [qw( iso-8859-7 cp1253 MacGreek cp737 cp869 )], - hebrew => [qw( iso-8859-8 cp1255 MacHebrew cp862 )], + cyrillic => [qw( koi8-r koi8-u koi8-f iso-8859-5 cp1251 MacCyrillic cp866 cp855 + U4 U2DE-2DF UA64-A69 U50-52 )], # MacUkrainian is broken + arabic => [qw( iso-8859-6 cp1256 MacArabic cp864 cp1006 MacFarsi + U6 U8A-8F+0-31+64 U75-77 )], + greek => [qw( iso-8859-7 cp1253 MacGreek cp737 cp869 U37-3F U1F )], + hebrew => [qw( iso-8859-8 cp1255 MacHebrew cp862 U59-5F )], thai => [qw( iso-8859-11 cp874 MacThai )], vietnamese => [qw( viscii cp1258 MacVietnamese )], symbol => [qw( symbol dingbats MacDingbats AdobeZdingbat AdobeSymbol )], @@ -193,13 +195,14 @@ sub tabinput { } } - if ($input =~ /^U([0-9a-f]+)(?:-([0-9a-f]+))?/) { + if ($input =~ /^U([0-9a-fA-F]+)(?:-([0-9a-fA-F]+))?/) { my $start = hex($1) << ($2 ? 4 : 8); - my $end = $2 ? hex($2) << 4 : $start + 240; - $row{table} = join '', map { chr } $start .. $end+15; + my $end = $2 ? (hex($2) << 4) + $row{cols} - 1 : $start + 255; + $row{table} = join '', map { chr } $start .. $end; utf8::upgrade($row{table}); # prevent latin1 output - $row{endpoint} = $end + 14 - $start; + $row{endpoint} = $end - $start; $row{set} = sprintf 'Unicode block U+%02Xxx', $start >> 8; + $row{offset} = $start % 256; } elsif ($input eq 'U') { $row{set} = 'Unicode planes';