From 1f5f43d2286ee42043f574277429314fa8addf4f Mon Sep 17 00:00:00 2001 From: Mischa POSLAWSKY Date: Mon, 23 Sep 2019 17:27:06 +0200 Subject: [PATCH] minval/maxval options to override bar range --- barcat | 17 +++++++++++++---- t/t0002-usage_-h_|wc_-l.out | 2 +- 2 files changed, 14 insertions(+), 5 deletions(-) diff --git a/barcat b/barcat index 48e47d1..7038f06 100755 --- a/barcat +++ b/barcat @@ -33,6 +33,8 @@ GetOptions(\%opt, 'value-length=i', 'hidemin=i', 'hidemax=i', + 'minval=f', + 'maxval=f', 'limit|L=s' => sub { my ($optname, $optval) = @_; $optval ||= 0; @@ -153,8 +155,8 @@ state $nr = $opt{hidemin} ? $opt{hidemin} - 1 : 0; @lines > $nr or return unless $opt{hidemin}; @order = sort { $b <=> $a } @order unless tied @order; -my $maxval = ($opt{hidemax} ? max grep { length } @values[0 .. $opt{hidemax} - 1] : $order[0]) // 0; -my $minval = min $order[-1] // (), 0; +my $maxval = $opt{maxval} // ($opt{hidemax} ? max grep { length } @values[0 .. $opt{hidemax} - 1] : $order[0]) // 0; +my $minval = $opt{minval} // min $order[-1] // (), 0; my $lenval = $opt{'value-length'} // max map { length } @order; my $len = defined $opt{trim} && $opt{trim} <= 0 ? -$opt{trim} + 1 : max map { length $values[$_] && length $lines[$_] } @@ -177,8 +179,9 @@ if ($opt{markers} and $size > 0) { else { return $func; } - }; - color(36) for $barmark[($pos - $minval) * $size] = $char; + } - $minval; + $pos >= 0 or next; + color(36) for $barmark[$pos * $size] = $char; } state $lastmax = $maxval; @@ -385,6 +388,12 @@ Indicated by default as I<=>. =back +=item --min=, --max= + +Bars extend from 0 or the minimum value if lower, +to the largest value encountered. +These options can be set to customize this range. + =item --palette=... Override colors of parsed numbers. diff --git a/t/t0002-usage_-h_|wc_-l.out b/t/t0002-usage_-h_|wc_-l.out index bb95160..8f92bfd 100644 --- a/t/t0002-usage_-h_|wc_-l.out +++ b/t/t0002-usage_-h_|wc_-l.out @@ -1 +1 @@ -33 +35 -- 2.30.0