diff options
author | espie <espie@openbsd.org> | 2019-11-15 18:28:13 +0000 |
---|---|---|
committer | espie <espie@openbsd.org> | 2019-11-15 18:28:13 +0000 |
commit | b48a274eed59ba227f0bf6a05bb075837e7d8d4a (patch) | |
tree | f31115cec257142ab5a06cd80eb1d98ade4c09cb /usr.sbin/pkg_add | |
parent | Remove gratuitous #ifdef. (diff) | |
download | wireguard-openbsd-b48a274eed59ba227f0bf6a05bb075837e7d8d4a.tar.xz wireguard-openbsd-b48a274eed59ba227f0bf6a05bb075837e7d8d4a.zip |
nicer order of multi-choice packages (by version if everything else is
equal, alphabetically otherwise)
prompted by claudio@, okay claudio@ kmos@
Diffstat (limited to 'usr.sbin/pkg_add')
-rw-r--r-- | usr.sbin/pkg_add/OpenBSD/AddDelete.pm | 16 |
1 files changed, 14 insertions, 2 deletions
diff --git a/usr.sbin/pkg_add/OpenBSD/AddDelete.pm b/usr.sbin/pkg_add/OpenBSD/AddDelete.pm index b335f5b7cc9..901e949d9d7 100644 --- a/usr.sbin/pkg_add/OpenBSD/AddDelete.pm +++ b/usr.sbin/pkg_add/OpenBSD/AddDelete.pm @@ -1,5 +1,5 @@ # ex:ts=8 sw=4: -# $OpenBSD: AddDelete.pm,v 1.91 2019/08/19 12:09:07 espie Exp $ +# $OpenBSD: AddDelete.pm,v 1.92 2019/11/15 18:28:13 espie Exp $ # # Copyright (c) 2007-2010 Marc Espie <espie@openbsd.org> # @@ -407,7 +407,19 @@ sub choose_location if ($state->is_interactive) { $h{'<None>'} = undef; $state->progress->clear; - my $result = $state->ask_list("Ambiguous: choose package for $name", sort keys %h); + my $cmp = sub { + return -1 if !defined $h{$a}; + return 1 if !defined $h{$b}; + my $r = $h{$a}->pkgname->to_pattern cmp + $h{$b}->pkgname->to_pattern; + if ($r == 0) { + return $h{$a}->pkgname->{version}-> + compare($h{$b}->pkgname->{version}); + } else { + return $r; + } + }; + my $result = $state->ask_list("Ambiguous: choose package for $name", sort $cmp keys %h); return $h{$result}; } else { $state->errsay("Ambiguous: #1 could be #2", |