From 44dbddb624a00ce72a8120c07e545d060273fc72 Mon Sep 17 00:00:00 2001 From: Mischa POSLAWSKY Date: Fri, 21 Apr 2017 22:08:05 +0200 Subject: [PATCH 1/1] charset: keep original endpoint during character overrides --- charset.plp | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/charset.plp b/charset.plp index 381ea14..5358a37 100644 --- a/charset.plp +++ b/charset.plp @@ -308,10 +308,9 @@ sub tabinput { # substr strings is twice as fast as splitting to an array $row{table} = Encode::decode($row{set}, pack 'C*', $row{offset} .. $row{endpoint}); } - $row{endpoint} -= $row{offset}; if ($row{set} eq 'cp437') { - if ($row{offset} <= 0xED and $row{endpoint} >= 0xED - $row{offset}) { + if ($row{offset} <= 0xED and $row{endpoint} >= 0xED) { # replace phi glyph substr($row{table}, 0xED - $row{offset}, 1) = 'ϕ'; } @@ -322,11 +321,11 @@ sub tabinput { } } elsif ($row{set} eq 'symbol') { - if ($row{offset} <= 0x60 and $row{endpoint} >= 0x60 - $row{offset}) { + if ($row{offset} <= 0x60 and $row{endpoint} >= 0x60) { # replace radical extender by closest unicode equivalent substr($row{table}, 0x60 - $row{offset}, 1) = '│'; } - if ($row{offset} <= 0xBD and $row{endpoint} >= 0xFF - $row{offset}) { + if ($row{offset} <= 0xBD and $row{endpoint} >= 0xFF) { substr($row{table}, 0xBD - $row{offset}, 2) = '⏐⎯'; # arrow extenders substr($row{table}, 0xD2 - $row{offset}, 3) = '®©™'; # serif variants substr($row{table}, 0xE0 - $row{offset}, 1) = '◊'; # replace lookalike, should match AdobeSymbol @@ -337,6 +336,8 @@ sub tabinput { } } + $row{endpoint} -= $row{offset}; + $visible->{ascii} = # assume common base $visible->{ $row{set} } = 1; } -- 2.30.0