X-Git-Url: https://git.deb.at/w?a=blobdiff_plain;f=lib%2FPackages%2FHTML.pm;h=4aeb675cae42f879356f0bdea0541d75543a8b65;hb=33c3adfb631d4c1fb6690a02117674a984d0e6ee;hp=859467a9da06daf65cf19497c5fc2d5cb9ab6b00;hpb=56d4b3ed57e20359e5ea46feabb850cf4a94caf2;p=deb%2Fpackages.git
diff --git a/lib/Packages/HTML.pm b/lib/Packages/HTML.pm
index 859467a..4aeb675 100644
--- a/lib/Packages/HTML.pm
+++ b/lib/Packages/HTML.pm
@@ -238,6 +238,19 @@ sub dep_item {
return "$link$name$post_link$info$desc";
} # end dep_item
+sub provides_string {
+ my ($path, $entry,$also) = @_;
+ my @provided_by = split /\s/, $entry;
+ my $short_desc = $also ? _g("also a virtual package provided by ")
+ : _g("virtual package provided by ");
+ if (@provided_by < 10) {
+ $short_desc .= join( ', ',map { "$_" } @provided_by);
+ } else {
+ $short_desc .= sprintf( _g("%s packages"), scalar(@provided_by));
+ }
+ return $short_desc;
+}
+
sub print_deps {
my ( $packages, $opts, $pkg, $relations, $type) = @_;
my %dep_type = ('depends' => 'dep', 'recommends' => 'rec',
@@ -246,10 +259,9 @@ sub print_deps {
my $res = "
\n";
my $first = 1;
my $suite = $opts->{suite}[0];
- my $one_archive = @{$opts->{archive}} > 1 ? '': $opts->{archive}[0];
# use Data::Dumper;
-# debug( "print_deps called:\n".Dumper( $pkg, $relations, \$type ), 3 );
+# debug( "print_deps called:\n".Dumper( $pkg, $relations, \$type ), 3 ) if DEBUG;
foreach my $rel (@$relations) {
my $is_old_pkgs = $rel->[0];
@@ -286,27 +298,25 @@ sub print_deps {
my $entry = $entries{$p_name} ||
read_entry_simple( $packages, $p_name, $opts->{h_archives}, $suite);
my $short_desc = $entry->[-1];
- my $arch = $entry->[2];
- my $archive = $entry->[0];
+ my $arch = $entry->[3];
+ my $archive = $entry->[1];
if ( $short_desc ) {
- my $path = $one_archive eq $archive ? "$suite/$archive" :
- $suite;
+ my $path = $suite;
if ( $is_old_pkgs ) {
push @res_pkgs, dep_item( "$ROOT/$path/$p_name",
$p_name, "$pkg_version$arch_str" );
- } elsif ($arch eq 'virtual') {
- my @provided_by = split /\s/, $short_desc;
- $short_desc = "virtual package provided by ";
- if (@provided_by < 10) {
- $short_desc .= join( ', ',map { "$_" } @provided_by);
- } else {
- $short_desc .= scalar(@provided_by)." packages";
- }
- push @res_pkgs, dep_item( "$ROOT/$path/$p_name",
- $p_name, "$pkg_version$arch_str", $short_desc );
- } else {
+ } elsif (defined $entry->[1]) {
$entries{$p_name} ||= $entry;
$short_desc = encode_entities( $short_desc, "<>&\"" );
+ $short_desc .= "
".provides_string( "$ROOT/$path",
+ $entry->[0],
+ 1 )
+ if defined $entry->[0];
+ push @res_pkgs, dep_item( "$ROOT/$path/$p_name",
+ $p_name, "$pkg_version$arch_str", $short_desc );
+ } elsif (defined $entry->[0]) {
+ $short_desc = provides_string( "$ROOT/$path",
+ $entry->[0] );
push @res_pkgs, dep_item( "$ROOT/$path/$p_name",
$p_name, "$pkg_version$arch_str", $short_desc );
}
@@ -382,12 +392,7 @@ sub header {
$search_in_header = <