]> git.donarmstrong.com Git - debbugs.git/blobdiff - Debbugs/Packages.pm
make the limit transcript quote things to track down some bugs
[debbugs.git] / Debbugs / Packages.pm
index cc4031082ed191311fd36f184d0114bf19b81fc9..482938da9310a672ddf36dc37fce57768789f64f 100644 (file)
@@ -139,6 +139,9 @@ arch(s), and verion(s) passed.
 In SCALAR context, only the corresponding source packages are
 returned, concatenated with ', ' if necessary.
 
+If no source can be found, returns undef in scalar context, or the
+empty list in list context.
+
 =over
 
 =item binary -- binary package name(s) as a SCALAR or ARRAYREF
@@ -162,7 +165,10 @@ binary_to_source.
 
 =cut
 
+# the two global variables below are used to tie the source maps; we
+# probably should be retying them in long lived processes.
 our %_binarytosource;
+our %_sourcetobinary;
 sub binary_to_source{
     my %param = validate_with(params => \@_,
                              spec   => {binary => {type => SCALAR|ARRAYREF,
@@ -263,9 +269,9 @@ sub binary_to_source{
            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}};
+       for my $maybe_sourcepkg (@binaries) {
+           if (exists $_sourcetobinary{$maybe_sourcepkg}) {
+               push @source,[$maybe_sourcepkg,$_] for keys %{$_sourcetobinary{$maybe_sourcepkg}};
            }
        }
        # if @source is still empty here, it's probably a non-existant
@@ -311,7 +317,6 @@ returned, without the architecture.
 
 =cut
 
-our %_sourcetobinary;
 sub sourcetobinary {
     my ($srcname, $srcver) = @_;
 
@@ -606,7 +611,7 @@ sub make_source_versions {
                    }
                    my @srcinfo = binary_to_source(binary => $pkg,
                                                   version => $version,
-                                                  arch    => $arch);
+                                                  length($arch)?(arch    => $arch):());
                    if (not @srcinfo) {
                        # We don't have explicit information about the
                        # binary-to-source mapping for this version