- if ($row{set} eq 'Internal') {
- $row{cell} = do 'charset-unicode.inc.pl'
- or Alert('Table data could not be read', $@ || $!);
-
- $row{endpoint} ||= 8191;
- $row{endpoint} *= $row{cell}->{colsize};
- $row{startpoint} = $row{cell}->{colsize} * $row{offset};
- $row{offset} = 0;
- $row{set} = 'Unicode ' . (
- $row{startpoint} < 0x10000 && $row{endpoint} < 0x10000 ? 'BMP' :
- $row{startpoint} >= 0x10000 && $row{endpoint} < 0x20000 ? 'SMP' :
- 'allocations'
- );
- }
- elsif ($row{set} eq 'utf-8-strict') {
- $row{set} = 'UTF-8';
- $row{cell} = do 'charset-utf8.inc.pl'
- or Alert('Table data could not be read', $@ || $!);
- $row{endpoint} = 255;
+ $row{endpoint} ||= 255;
+ if ($row{set} eq 'MacHebrew' or $row{set} eq 'MacThai') {
+ # array of possibly multiple characters per code point
+ $row{table} = [
+ map { Encode::decode($row{set}, pack 'C*', $_) } $row{offset} .. $row{endpoint}
+ ];