apply hide limits in length calculation
[barcat.git] / barcat
diff --git a/barcat b/barcat
index 1ffdeda9097523dfcbc6fa9e224899df7e84c6b9..bf38f120d4414cc26db20726060c0d89938f8b10 100755 (executable)
--- a/barcat
+++ b/barcat
@@ -239,8 +239,8 @@ my $range = $maxval - $minval;
 $range &&= log $range if $opt{log};
 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[$_] }
-               0 .. min $#lines, $opt{hidemax} || ();  # left padding
+       max(map { length $values[$_] && length $lines[$_] } $nr .. $limit)
+       // 0;  # left padding
 my $size   = defined $opt{width} && $range &&
        ($opt{width} - $lenval - $len - !!$opt{indicators});  # bar multiplication
 
@@ -263,10 +263,10 @@ if ($opt{markers} and $size > 0) {
                                return $func;
                        }
                        elsif ($func =~ /\A\/($float)\z/) {
-                               my @range = $1;
-                               #TODO log
-                               for (my $next = $1; $next < $maxval; $next += $range[0]) {
-                                       push @range, $next;
+                               my @range = my $multiple = my $next = $1;
+                               while ($next < $maxval) {
+                                       $multiple *= 10 if $opt{log};
+                                       push @range, $next += $multiple;
                                }
                                return @range;
                        }