diff options
author | Igor Pashev <pashev.igor@gmail.com> | 2013-02-17 01:48:04 +0000 |
---|---|---|
committer | Igor Pashev <pashev.igor@gmail.com> | 2013-02-17 01:48:04 +0000 |
commit | c5824ca36f72355f35426f7c88f1595ac21b4024 (patch) | |
tree | 2ef88cbe373ebdd48afd95fda2f82d5d5bf4040e /utils | |
parent | e991a77fa1a69886756a41b89adab2c731b0a5f2 (diff) | |
parent | c62b36ff0a52078c0a7404fd1aa0033fa9861c3a (diff) | |
download | dpkg-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.t | 37 | ||||
-rw-r--r-- | utils/update-alternatives.c | 4 |
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>")); |