From c3c17661b6ac0d3e7484fcf47316d29f6a0f81b1 Mon Sep 17 00:00:00 2001 From: Mischa POSLAWSKY Date: Fri, 21 Apr 2017 19:31:01 +0200 Subject: [PATCH] charset: override cp437 glyphs using unicode string More legible if not faster. --- charset.plp | 15 +++++---------- 1 file changed, 5 insertions(+), 10 deletions(-) diff --git a/charset.plp b/charset.plp index e8382f5..4e25ef1 100644 --- a/charset.plp +++ b/charset.plp @@ -303,19 +303,14 @@ sub tabinput { $row{endpoint} -= $row{offset}; if ($row{set} eq 'cp437') { - for my $phipos (237 - $row{offset}) { - next if $phipos < 0 or $phipos > $row{endpoint}; + if ($row{offset} <= 0xED and $row{endpoint} >= 0xED - $row{offset}) { # replace phi glyph - substr($row{table}, $phipos, 1) = pack 'U*', 0x3D5; + substr($row{table}, 0xED - $row{offset}, 1) = 'ϕ'; } - if ($row{offset} == 0) { + if ($row{offset} < 0x20) { # replace control characters by visible variants - substr($row{table}, 0, 32) = pack 'U*', map {hex} qw( - 2007 263A 263B 2665 2666 2663 2660 2022 - 25D8 25CB 25D9 2642 2640 266A 266B 263C - 25BA 25C4 2195 203C 00B6 00A7 25AC 21A8 - 2191 2193 2192 2190 221F 2194 25B2 25BC - ); + my $sub = substr ' ☺☻♥♦♣♠•◘○◙♂♀♪♫☼►◄↕‼¶§▬↨↑↓→←∟↔▲▼', $row{offset}; + substr($row{table}, 0, length $sub) = $sub; } } elsif ($row{set} eq 'symbol') { -- 2.30.0