Here's a naive first go at a patch. Let me know if you'd like more help - dpkg's perl can be difficult, and more hands may make it easier.
Take care, -- -------------------------------------------------------------------------- | Stephen Gran | One good turn usually gets most of the | | [EMAIL PROTECTED] | blanket. | | http://www.lobefin.net/~steve | | --------------------------------------------------------------------------
diff -Nru /tmp/Jef2swUUSO/dpkg-1.14.2/scripts/update-alternatives.pl /tmp/4pLagNt3Px/dpkg-1.14.3/scripts/update-alternatives.pl --- /tmp/Jef2swUUSO/dpkg-1.14.2/scripts/update-alternatives.pl 2007-05-09 18:58:40.000000000 +0100 +++ /tmp/4pLagNt3Px/dpkg-1.14.3/scripts/update-alternatives.pl 2007-05-13 00:08:03.000000000 +0100 @@ -458,7 +458,7 @@ for (my $j = 0; $j <= $#slavenames; $j++) { my $i; for ($i = 0; $i <= $#versions; $i++) { - last if $slavepath{$i,$j} ne ''; + last if (defined($slavepath{$i,$j}) && $slavepath{$i,$j} ne ''); } if ($i > $#versions) { &pr(sprintf(_g("Discarding obsolete slave link %s (%s)."), $slavenames[$j], $slavelinks[$j])) @@ -589,7 +589,7 @@ rename_mv("$slink.dpkg-tmp",$slink) || &quit(sprintf(_g("unable to install %s as %s: %s"), "$slink.dpkg-tmp", $slink, $!)); } - $spath= $slavepath{$bestnum,$j}; + $spath= $slavepath{$bestnum,$j} || ''; unlink("$altdir/$sname.dpkg-tmp") || $! == &ENOENT || &quit(sprintf(_g("unable to ensure %s nonexistent: %s"), "$altdir/$sname.dpkg-tmp", $!)); if ($spath eq '') { @@ -714,6 +714,10 @@ sub pr { print(STDOUT "@_\n") || &quit(sprintf(_g("error writing stdout: %s"), $!)); } sub paf { + unless (defined($_) && length($_)) { + print AF "\n"; + return; + } $_[0] =~ m/\n/ && &quit(sprintf(_g("newlines prohibited in update-alternatives files (%s)"), $_[0])); print(AF "$_[0]\n") || &quit(sprintf(_g("error writing stdout: %s"), $!)); }
signature.asc
Description: Digital signature