'macsami' => {inherit => ['MacIcelandic' => '90-BF+D0-DF+F0', 'MacRoman' => '90']},
'macgreek' => {inherit => ['MacRoman' => '80']},
'maccyrillic' => {inherit => ['MacRoman' => '80']},
- 'machebrew' => {inherit => ['iso-8859-8' => '80', 'MacRoman' => '80-8F+A0']}, # partial ascii
+ 'machebrew' => {
+ inherit => ['iso-8859-8' => '80', 'MacRoman' => '80-8F+A0'], # ignore partial ascii
+ replace => {
+ # strip private use characters for unneeded roundtrip
+ 0xDE => chr(0x5C7), # qamats qatan
+ 0xC0 => 'לֹ', # lamed holam
+ #TODO: private use for canoral codes (obsolete nikud positioning)
+ },
+ },
'macarabic' => {inherit => ['iso-8859-6' => '80', 'cp864' => '80', 'MacRoman' => '80']}, #TODO: multiple parents
'macfarsi' => {inherit => ['MacArabic' => 'B0-BF', 'MacRoman' => '80']},
while (my ($offset, $sub) = each %{$replace}) {
$offset -= $row{offset};
+ if (ref $row{table} eq 'ARRAY') {
+ $row{table}->[$offset] = $sub
+ if $offset >= 0 and $offset <= $row{endpoint};
+ next;
+ }
+
my $length = length $sub;
if ($offset < 0) {