From bf64871d2554e77756e10b896bb63589d15b4f73 Mon Sep 17 00:00:00 2001 From: Mischa POSLAWSKY Date: Sat, 8 Apr 2017 17:22:29 +0200 Subject: [PATCH] charset: double width option, improve ascii inheritance --- charset.plp | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/charset.plp b/charset.plp index 6119859..b1c680e 100644 --- a/charset.plp +++ b/charset.plp @@ -85,7 +85,7 @@ sub tabinput { use List::Util qw( first pairfirst pairs ); state $INHERIT = { - 'cp437' => ['cp850' => 0], # ascii range overridden later + 'cp437' => ['cp850' => 0, 'ascii' => '0-31+128'], # ascii range overridden later 'gsm0338' => ['ascii' => '0-127'], 'iso-8859-2' => ['iso-8859-1' => '160'], @@ -166,16 +166,21 @@ sub tabinput { } elsif (defined $visible->{ascii}) { $row{parent} = $parents[0]; - $params = $parents[1] || 128; + $params = $parents[1] // 128; $params = 128 if $params >= 128; # ascii offset at most } elsif (@parents) { $row{parent} = $parents[0]; + $params = $parents[1] if $parents[1] == 0; # apply ascii end } - $visible->{$_} //= 0 for $row{parent}; + $visible->{$_} //= 0 for $row{parent} || (); + } + else { + # manual option to double table width + $row{cols} *= 2 if $params =~ s/[+]\z//; } - if (defined $params) { + if (length $params) { $params =~ m{ \A (? \d+) (?: (?: [-] (? \d+) )? (?: [+] (? \d+) ) )? -- 2.30.0