From: Mischa POSLAWSKY Date: Fri, 16 Jun 2017 14:36:33 +0000 (+0200) Subject: keys: clean up mode defaults setup in print_rows() X-Git-Tag: v1.11~45 X-Git-Url: http://git.shiar.nl/sheet.git/commitdiff_plain/3efe0eca82fa7f9c0fd125ff25f42901bc7133c8 keys: clean up mode defaults setup in print_rows() No partial parameter shifting. Use /x and // operator for readability. Same results. --- diff --git a/Shiar_Sheet/Keyboard.pm b/Shiar_Sheet/Keyboard.pm index 2b3cc86..0ccd9c2 100644 --- a/Shiar_Sheet/Keyboard.pm +++ b/Shiar_Sheet/Keyboard.pm @@ -125,11 +125,13 @@ sub print_key { sub print_rows { my $self = shift; + my ($rowsspec, $defrows) = @_; + $defrows ||= [2, 1, 0]; my %moderows = ( - -DEFAULT => !!@_ && $_[0] ne '' && split(/(?:\s*([^=\s]*)=\s*)/, shift), + -DEFAULT => defined $rowsspec && $rowsspec ne '' && + split(/\s* ([^=\s]*) = \s*/x, $rowsspec), # plus specific mode overrides prefixed by '=' ); - my $defrows = shift || [2, 1, 0]; my @modes = sort keys %{ $self->{def} }; print ''."\n\n"; @@ -141,7 +143,7 @@ sub print_rows { for my $basemode (@modes) { my @moderows = split /\s+/, $row < 0 ? "0" : - defined $moderows{$basemode} ? $moderows{$basemode} : $moderows{-DEFAULT}; + $moderows{$basemode} // $moderows{-DEFAULT}; for my $submode (@moderows ? @moderows : '') { my $mode = $basemode . $submode;