From 328d2e672e42617fa4e46c8c274a52e0313456a2 Mon Sep 17 00:00:00 2001 From: Ian Jackson Date: Fri, 12 Feb 2016 01:47:04 +0000 Subject: [PATCH 1/1] commitid.scad.pl: Track what we have included and whether it is truncated, and sort by that in Best --- commitid.scad.pl | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/commitid.scad.pl b/commitid.scad.pl index 7245373..6d02726 100755 --- a/commitid.scad.pl +++ b/commitid.scad.pl @@ -428,14 +428,17 @@ our $do_git_untracked = 1; our $argcounter; our @forms; +our %included; # 0 = not at all; 1 = truncated; 2 = full sub rjustt ($$$;$) { # right justify and truncate (ie, pad and truncate at left) # always includes prefix + # sets $included{$what} my ($sz, $what, $whole, $prefix) = @_; $prefix //= ''; my $lw = length $whole; my $spare = $sz - $lw - (length $prefix); + $included{$what}= 1 + ($spare > 0); return ($spare > 0 ? (' ' x $spare) : ''). $prefix. @@ -446,10 +449,12 @@ sub ljustt ($$$;$) { my ($sz, $what, $whole, $suffix) = @_; $suffix //= ''; $sz -= length $suffix; + $included{$what} = 1 + ($sz >= length $whole); return sprintf "%-${sz}.${sz}s%s", $whole, $suffix; } sub genform_prep() { + $included{$_}=0 foreach qw(Objid Count); } sub genform ($@) { @@ -460,6 +465,7 @@ sub genform ($@) { Chars => (length join '', @lines), Lines => (scalar @lines), Ambiguous => ($form =~ m/Full/ && !grep { m/\W/ } @lines), + Included => { %included }, }; push @forms, $f; } @@ -584,6 +590,7 @@ sub do_some_best ($$) { my @do; foreach my $f ( sort { + $b->{Included}{$bestwhat} <=> $a->{Included}{$bestwhat} or $b->{Chars} <=> $a->{Chars} or $a->{Lines} <=> $b->{Chars} } -- 2.30.2