]> err.no Git - dpkg/commitdiff
Handle case in update-alternatives when there's no existing alternative
authorGuillem Jover <guillem@debian.org>
Wed, 9 May 2007 03:50:58 +0000 (03:50 +0000)
committerGuillem Jover <guillem@debian.org>
Wed, 9 May 2007 03:50:58 +0000 (03:50 +0000)
to configure. Closes: #260987, #353252, #367717, #392431

ChangeLog
debian/changelog
scripts/update-alternatives.pl

index 017a6cd3c81e79299a780408264c01d957198a0e..36bebb2a99b8863f7c26272cde06408b69f149c7 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@
+2007-05-09  Guillem Jover  <guillem@debian.org>
+
+       * scripts/update-alternatives.pl (config_message): Handle the case
+       when @versions is empty. Return a negative value if there's nothing to
+       do, 0 on success.
+       (config_alternatives): Check for config_message exit value to decide
+       to return instead of @versions being empty.
+
 2007-05-09  Guillem Jover  <guillem@debian.org>
 
        * scripts/dpkg-buildpackage.sh: Remove check for variable being empty,
index 2a5815e99218f1907b9421bc36f69076450e206a..47260ac4e1a189658ff9402fcb71b4d3714e969a 100644 (file)
@@ -1,6 +1,8 @@
 dpkg (1.14.2) UNRELEASED; urgency=low
 
   * Remove bashisms in dpkg-buildpackage. Closes: #422239
+  * Handle case in update-alternatives when there's no existing alternative
+    to configure. Closes: #260987, #353252, #367717, #392431
 
  -- Guillem Jover <guillem@debian.org>  Tue, 08 May 2007 18:48:22 +0300
 
index 08f175edcab259411a1811a5928af5eefeb0fd74..0fc26deaeef610d59c119ad6dfbd29e5e8312350 100755 (executable)
@@ -611,11 +611,17 @@ if ($manual eq 'auto') {
 }
 
 sub config_message {
+    if ($#versions < 0) {
+       print "\n";
+       printf _g("There is no program which provides %s.\n".
+                 "Nothing to configure.\n"), $name;
+       return -1;
+    }
     if ($#versions == 0) {
        print "\n";
        printf _g("There is only 1 program which provides %s\n".
                  "(%s). Nothing to configure.\n"), $name, $versions[0];
-       return;
+       return -1;
     }
     print STDOUT "\n";
     printf(STDOUT _g("There are %s alternatives which provide \`%s'.\n\n".
@@ -629,13 +635,13 @@ sub config_message {
            $i+1, $versions[$i]);
     }
     printf(STDOUT "\n"._g("Press enter to keep the default[*], or type selection number: "));
+    return 0;
 }
 
 sub config_alternatives {
     my $preferred;
     do {
-       &config_message;
-       if ($#versions == 0) { return; }
+       return if config_message() < 0;
        $preferred=<STDIN>;
        chop($preferred);
     } until $preferred eq '' || $preferred>=1 && $preferred<=$#versions+1 &&