From: Don Armstrong Date: Wed, 23 Sep 2009 03:17:59 +0000 (-0700) Subject: * handle bugs assigned to a non-existant binary package as if they X-Git-Tag: release/2.6.0~434^2~3 X-Git-Url: https://git.donarmstrong.com/?a=commitdiff_plain;h=2a65291b8c26653fd72a48b3691e95da4a1d9263;p=debbugs.git * handle bugs assigned to a non-existant binary package as if they were assigned to a source package with the same name if that source package exists --- diff --git a/Debbugs/Packages.pm b/Debbugs/Packages.pm index fc86b6c7..cc403108 100644 --- a/Debbugs/Packages.pm +++ b/Debbugs/Packages.pm @@ -249,6 +249,29 @@ sub binary_to_source{ } } } + + if (not @source and not @versions and not @archs) { + # ok, we haven't found any results at all. If we weren't given + # a specific version and architecture, then we should try + # really hard to figure out the right source + + # if any the packages we've been given are a valid source + # package name, and there's no binary of the same name (we got + # here, so there isn't), return it. + + if (not tied %_sourcetobinary) { + tie %_sourcetobinary, MLDBM => $config{source_binary_map}, O_RDONLY or + die "Unable top open $gSourceBinaryMap for reading"; + } + for my $package (@package) { + if (exists $_sourcetobinary{$package}) { + push @source,[$package,$_] for keys %{$_sourcetobinary{$package}}; + } + } + # if @source is still empty here, it's probably a non-existant + # source package, so don't return anything. + } + my @result; if ($param{source_only}) { @@ -293,8 +316,8 @@ sub sourcetobinary { my ($srcname, $srcver) = @_; if (not tied %_sourcetobinary) { - tie %_sourcetobinary, MLDBM => $gSourceBinaryMap, O_RDONLY or - die "Unable top open $gSourceBinaryMap for reading"; + tie %_sourcetobinary, MLDBM => $config{source_binary_map}, O_RDONLY or + die "Unable top open $config{source_binary_map} for reading"; }