[Pkg-asv-commits] r28 - trunk
ahoenen-guest at alioth.debian.org
ahoenen-guest at alioth.debian.org
Sat Mar 29 09:50:22 UTC 2008
Author: ahoenen-guest
Date: 2008-03-29 09:50:21 +0000 (Sat, 29 Mar 2008)
New Revision: 28
Modified:
trunk/apt-show-versions
Log:
Do not crash on packages for which the policy can't be determined:
Christoph Martin reported the strange case of a package for which $aversion is
set, but $cache->{$package} is not defined.
Modified: trunk/apt-show-versions
===================================================================
--- trunk/apt-show-versions 2008-03-21 10:50:54 UTC (rev 27)
+++ trunk/apt-show-versions 2008-03-29 09:50:21 UTC (rev 28)
@@ -295,23 +295,26 @@
sub print_version {
my ($archiv, $package, $iversion, $aversion) = @_;
- if ((defined $aversion) and
- ($aversion eq $policy->candidate($cache->{$package})->{VerStr}))
- {
- my $cmp_versions = $vs->compare($aversion, $iversion);
- if ($cmp_versions != 0) {
- my $direction = ($cmp_versions > 0) ? 'up' : 'down';
- return(2, "$package/$archiv", (defined($opts{'brief'})) ? "\n"
- : " ${direction}gradeable from $iversion to $aversion\n");
+ if (defined($aversion) and $cache->{$package}) {
+ my $cand = $policy->candidate($cache->{$package});
+ if ($cand and $aversion eq $cand->{VerStr})
+ {
+ my $cmp_versions = $vs->compare($aversion, $iversion);
+ if ($cmp_versions != 0) {
+ my $direction = ($cmp_versions > 0) ? 'up' : 'down';
+ return(2, "$package/$archiv",
+ (defined($opts{'brief'})) ? "\n" :
+ " ${direction}gradeable from $iversion to $aversion\n");
+ }
+ else {
+ return(1, "$package/$archiv", defined($opts{'brief'}) ? "\n"
+ : " uptodate $iversion\n");
+ }
}
- else {
- return(1, "$package/$archiv", defined($opts{'brief'}) ? "\n"
- : " uptodate $iversion\n");
- }
}
- else {
- return 0;
- }
+ # Default outcome: either version is definitely not to be installed/kept
+ # or information for a decicion is lacking.
+ return(0, undef);
}
# print information about package
More information about the Pkg-asv-commits
mailing list