remove lower scan line from spark default
[barcat.git] / barcat
diff --git a/barcat b/barcat
index de3f6f8459721ae78c734401961607eaef4c4e20..1b7cd219353c6f20e29da615c55bd3afd74888c6 100755 (executable)
--- a/barcat
+++ b/barcat
@@ -47,9 +47,10 @@ GetOptions(\%opt,
                $opt{'graph-format'} = substr $_[1], 0, 1;
        },
        'spark:s' => sub {
-               $opt{spark} = [split //, $_[1] || '������▂▃▄▅▆▇█'];
+               $opt{spark} = [split //, $_[1] || '▁▂▃▄▅▆▇█'];
        },
        'stat|s!',
+       'signal-stat=s',
        'unmodified|u!',
        'width|w=i',
        'usage|h' => sub {
@@ -84,14 +85,16 @@ $opt{units}   = [split //, ' kMGTPEZYyzafpnμm'] if $opt{'human-readable'};
 $opt{anchor} //= qr/\A/;
 $opt{'value-length'} = 6 if $opt{units};
 $opt{'value-length'} = 1 if $opt{unmodified};
+$opt{'signal-stat'} //= exists $SIG{INFO} ? 'INFO' : 'QUIT';
 
 my (@lines, @values, @order);
 
-$SIG{$_} = \&show_stat for exists $SIG{INFO} ? 'INFO' : 'QUIT';
+$SIG{$_} = \&show_stat for $opt{'signal-stat'} || ();
 $SIG{ALRM} = sub {
        show_lines();
        alarm $opt{interval} if defined $opt{interval} and $opt{interval} > 0;
 };
+$SIG{INT} = \&show_exit;
 
 if (defined $opt{interval}) {
        $opt{interval} ||= 1;
@@ -103,12 +106,6 @@ if (defined $opt{interval}) {
        } or warn $@, "Expect slowdown with large datasets!\n";
 }
 
-$SIG{INT} = sub {
-       $SIG{INT} = 'DEFAULT';  # reset for subsequent attempts
-       exit if !$.;
-       'IGNORE' # continue after assumed eof
-};
-
 my $valmatch = qr/$opt{anchor} ( \h* -? [0-9]* \.? [0-9]+ (?: e[+-]?[0-9]+ )? |)/x;
 while (readline) {
        s/\r?\n\z//;
@@ -219,7 +216,6 @@ continue {
 say '' if $opt{spark};
 
 }
-show_lines();
 
 sub show_stat {
        if ($opt{hidemin} or $opt{hidemax}) {
@@ -239,7 +235,15 @@ sub show_stat {
        }
        say '';
 }
-show_stat() if $opt{stat};
+
+sub show_exit {
+       show_lines();
+       show_stat() if $opt{stat};
+       exit 130 if @_;  # 0x80+signo
+       exit;
+}
+
+show_exit();
 
 __END__
 =encoding utf8