summaryrefslogtreecommitdiff
path: root/utils
diff options
context:
space:
mode:
authorIgor Pashev <pashev.igor@gmail.com>2013-02-17 01:48:04 +0000
committerIgor Pashev <pashev.igor@gmail.com>2013-02-17 01:48:04 +0000
commitc5824ca36f72355f35426f7c88f1595ac21b4024 (patch)
tree2ef88cbe373ebdd48afd95fda2f82d5d5bf4040e /utils
parente991a77fa1a69886756a41b89adab2c731b0a5f2 (diff)
parentc62b36ff0a52078c0a7404fd1aa0033fa9861c3a (diff)
downloaddpkg-c5824ca36f72355f35426f7c88f1595ac21b4024.tar.gz
Merge git://anonscm.debian.org/dpkg/dpkg
Conflicts: debian/changelog
Diffstat (limited to 'utils')
-rw-r--r--utils/t/100_update_alternatives.t37
-rw-r--r--utils/update-alternatives.c4
2 files changed, 23 insertions, 18 deletions
diff --git a/utils/t/100_update_alternatives.t b/utils/t/100_update_alternatives.t
index 40a5990bf..4a786777f 100644
--- a/utils/t/100_update_alternatives.t
+++ b/utils/t/100_update_alternatives.t
@@ -260,7 +260,8 @@ check_choice(0, "auto", "initial install 3");
open(FILE, "<", "$admindir/generic-test") or die $!;
my $content = <FILE>;
close(FILE);
- is($content,
+
+ my $expected =
"auto
$bindir/generic-test
slave1
@@ -272,26 +273,28 @@ $bindir/slave3
slave4
$bindir/slave4
-$paths{false}
-10
-$paths{date}
-
-
-
-$paths{sleep}
-5
-
+";
+ my %slaves;
+ # Store slaves in a hash to easily retrieve present and missing ones.
+ foreach my $alt (@choices) {
+ foreach my $slave (@{$alt->{slaves}}) {
+ $slaves{$slave->{name}}{$alt->{path}} = $slave;
+ }
+ }
-$paths{true}
-20
-$paths{yes}
-$paths{cat}
-$paths{cat}
-$paths{cat}
+ foreach my $alt (sort { $a->{path} cmp $b->{path} } @choices) {
+ $expected .= $alt->{path} . "\n";
+ $expected .= $alt->{priority} . "\n";
+ foreach my $slave_name (sort keys %slaves) {
+ $expected .= $slaves{$slave_name}{$alt->{path}}{path} || "";
+ $expected .= "\n";
+ }
+ }
+ $expected .= "\n";
-", "administrative file is as expected");
+ is($content, $expected, "administrative file is as expected");
}
# manual change with --set-selections
diff --git a/utils/update-alternatives.c b/utils/update-alternatives.c
index a4f38a332..5f4364b09 100644
--- a/utils/update-alternatives.c
+++ b/utils/update-alternatives.c
@@ -455,6 +455,7 @@ subcall(const char *prog, ...)
/* Run the command */
res = spawn(prog, cmd);
+ free(cmd);
if (WIFEXITED(res) && WEXITSTATUS(res) == 0)
return;
if (WIFEXITED(res))
@@ -2532,7 +2533,8 @@ main(int argc, char **argv)
char *slink, *sname, *spath;
struct slave_link *sl;
- if (action && strcmp(action, "install") != 0)
+ if (action == NULL ||
+ (action && strcmp(action, "install") != 0))
badusage(_("--slave only allowed with --install"));
if (MISSING_ARGS(3))
badusage(_("--slave needs <link> <name> <path>"));