Trim redundant code
[u/fanf2/git-graph.git] / git-graph
index 897ba13..b458693 100755 (executable)
--- a/git-graph
+++ b/git-graph
@@ -16,11 +16,11 @@ GetOptions(\%opt, qw{
        stack|s
 }) or exit 1;
 
-$opt{stack} = 1 unless $opt{cancel} or $opt{overlay};
+$opt{overlay} = 1 unless $opt{cancel} or $opt{stack};
 
 my @terminal = GetTerminalSize;
 my $width = $terminal[0] - 11;
-my $height = $terminal[1];
+my $height = $terminal[1] - 2;
 
 my %add;
 my %del;
@@ -60,35 +60,25 @@ my $scale = $width / $max;
 my $today = int (time / 86400);
 
 for my $date ($today - $height .. $today) {
-       my $add;
-       my $del;
-       my $mod;
+       my $add = 0;
+       my $del = 0;
+       my $mod = 0;
        $add{$date} //= 0;
        $del{$date} //= 0;
-       if ($opt{cancel}) {
+       if ($opt{cancel} or $opt{overlay}) {
                if ($add{$date} > $del{$date}) {
                        $add = $add{$date} - $del{$date};
-                       $del = $mod = 0;
                } else {
                        $del = $del{$date} - $add{$date};
-                       $add = $mod = 0;
                }
        }
        if ($opt{overlay}) {
-               if ($add{$date} > $del{$date}) {
-                       $add = $add{$date} - $del{$date};
-                       $del = 0;
-                       $mod = $del{$date};
-               } else {
-                       $del = $del{$date} - $add{$date};
-                       $add = 0;
-                       $mod = $add{$date};
-               }
+               $mod = $add{$date} < $del{$date} ?
+                      $add{$date} : $del{$date};
        }
        if ($opt{stack}) {
                $add = $add{$date};
                $del = $del{$date};
-               $mod = 0;
        }
        my $greg = strftime "%b %d %w", localtime $date * 86400;
        $greg =~ s{(\d)$}{substr "sMTWTFs", $1, 1}e;
@@ -97,3 +87,7 @@ for my $date ($today - $height .. $today) {
            "+" x ($add && 1 + $add * $scale),
            "-" x ($del && 1 + $del * $scale);
 }
+printf "         \e[33m#\e[0m <- %-8.1f %s %8d ->\n",
+    1/$scale,
+    " " x ($width - 25),
+    $max;