From: Mischa POSLAWSKY Date: Sat, 8 Apr 2017 01:14:32 +0000 (+0200) Subject: charset: improve visibility determination X-Git-Tag: v1.10~219 X-Git-Url: http://git.shiar.nl/sheet.git/commitdiff_plain/c253269d0792b66849eae1ba12ab02c43d649496 charset: improve visibility determination --- diff --git a/charset.plp b/charset.plp index 9d7375d..9ee6d86 100644 --- a/charset.plp +++ b/charset.plp @@ -137,21 +137,19 @@ sub tabinput { my @parents = @{ $INHERIT->{$input} || [] }; - if (my ($parent, $part) = pairfirst { exists $visible->{$a} } @parents) { + if (my ($parent, $part) = pairfirst { defined $visible->{$a} } @parents) { $row{parent} = $parent; - $params = $part; - $_ eq $part or $params = 128 for $visible->{$parent} // (); + $params = $visible->{$parent} ? $part : 128; } - elsif (exists $visible->{ascii}) { - $row{parent} = $parents[0]; + elsif (defined $visible->{ascii}) { + $row{parent} = $parents[0] || 'ascii'; $params = $parents[1] || 128; - exists $visible->{$_} or $visible->{$_} = $params for $row{parent}; $params = 128 if $params >= 128; # ascii offset at most } elsif (@parents) { $row{parent} = $parents[0]; } - exists $visible->{$_} or $visible->{$_} = $params // 0 for $row{parent}; + $visible->{$_} //= 0 for $row{parent}; } if (defined $params and $params =~ m/^ (\d+) (-\d+)? /x) { @@ -212,7 +210,7 @@ sub tabinput { } $visible->{ascii} = # assume common base - $visible->{ $row{set} } = undef; + $visible->{ $row{set} } = 1; } } else {