lib/PublicInbox/Feed.pm | 44 +++++++++++++++++++++++---------------------
lib/PublicInbox/SearchView.pm | 3 ++-
diff --git a/lib/PublicInbox/Feed.pm b/lib/PublicInbox/Feed.pm
index d88421b0d98ef11e4052770e85c592e3e5aede02..07dce9eee83bf2458eb933548c02f638ca247f53 100644
--- a/lib/PublicInbox/Feed.pm
+++ b/lib/PublicInbox/Feed.pm
@@ -72,7 +72,9 @@ if (defined $x) {
$fh->write($x . feed_updated(undef, $ts));
$x = undef;
}
- add_to_feed($feed_opts, $fh, $path, $git);
+ my $s = feed_entry($feed_opts, $path, $git) or return 0;
+ $fh->write($s);
+ 1;
});
end_feed($fh);
}
@@ -103,7 +105,8 @@ $feed_opts->{emit_header} = 1;
my $git = $ctx->{git} ||= PublicInbox::Git->new($ctx->{git_dir});
foreach my $msg (@{$res->{msgs}}) {
- add_to_feed($feed_opts, $fh, mid2path($msg->mid), $git);
+ my $s = feed_entry($feed_opts, mid2path($msg->mid), $git);
+ $fh->write($s) if defined $s;
}
end_feed($fh);
}
@@ -306,52 +309,51 @@
'
) . - PublicInbox::View::multipart_text_as_html($mime, $href) . - ''; my $date = $header_obj->header('Date'); my $updated = feed_updated($date); my $title = $header_obj->header('Subject'); - defined $title or return 0; + defined $title or return; $title = title_tag($title); - my $from = $header_obj->header('From') or return 0; + my $from = $header_obj->header('From') or return; my ($email) = PublicInbox::Address::emails($from); my $name = PublicInbox::Address::from_name($from); $name = ascii_html($name); $email = ascii_html($email); + my $s = ''; if (delete $feed_opts->{emit_header}) { - $fh->write(atom_header($feed_opts, $title) . $updated); + $s .= atom_header($feed_opts, $title) . $updated; } - $fh->write("
) . + PublicInbox::View::multipart_text_as_html($mime, $href) . + ''; $add =~ tr!/!!d; my $h = '[a-f0-9]'; my (@uuid5) = ($add =~ m!\A($h{8})($h{4})($h{4})($h{4})($h{12})!o); my $id = 'urn:uuid:' . join('-', @uuid5); - $fh->write(qq!