package PublicInbox::Feed;
use strict;
use warnings;
-use PublicInbox::MIME;
use PublicInbox::View;
use PublicInbox::WwwAtomStream;
use PublicInbox::Smsg; # this loads w/o Search::Xapian
sub generate_i {
my ($ctx) = @_;
- while (my $smsg = shift @{$ctx->{msgs}}) {
- $ctx->{-inbox}->smsg_mime($smsg) and return $smsg;
- }
+ shift @{$ctx->{msgs}};
}
# main function
}
sub new_html_i {
- my ($nr, $ctx) = @_;
- my $msgs = $ctx->{msgs};
- while (my $smsg = shift @$msgs) {
- my $m = $ctx->{-inbox}->smsg_mime($smsg) or next;
- my $more = scalar @$msgs;
- return PublicInbox::View::index_entry($m, $ctx, $more);
- }
- PublicInbox::View::pagination_footer($ctx, './new.html');
+ my ($ctx, $eml) = @_;
+ $ctx->zmore($ctx->html_top) if exists $ctx->{-html_tip};
+
+ $eml and return PublicInbox::View::eml_entry($ctx, $eml);
+ my $smsg = shift @{$ctx->{msgs}} or
+ $ctx->zmore(PublicInbox::View::pagination_footer(
+ $ctx, './new.html'));
+ $smsg;
}
sub new_html {
$ctx->{-html_tip} = '<pre>';
$ctx->{-upfx} = '';
$ctx->{-hr} = 1;
- PublicInbox::WwwStream->response($ctx, 200, \&new_html_i);
+ PublicInbox::WwwStream::aresponse($ctx, 200, \&new_html_i);
}
# private subs
my $hex = '[a-f0-9]';
my $addmsg = qr!^:000000 100644 \S+ (\S+) A\t${hex}{2}/${hex}{38}$!;
my $delmsg = qr!^:100644 000000 (\S+) \S+ D\t(${hex}{2}/${hex}{38})$!;
- my $refhex = qr/(?:HEAD|${hex}{4,40})(?:~[0-9]+)?/;
+ my $refhex = qr/(?:HEAD|${hex}{4,})(?:~[0-9]+)?/;
# revision ranges may be specified
my $range = 'HEAD';
if ($last) {
local $/ = "\n";
while (my $line = <$log>) {
- if ($line =~ /^(${hex}{7,40})/) {
+ if ($line =~ /^(${hex}{7,})/) {
$last_commit = $1;
last;
}
}
}
- $ctx->{next_page} = "r=$last_commit" if $last_commit;
+ $last_commit and
+ $ctx->{next_page} = qq[<a\nhref="?r=$last_commit"\nrel=next>] .
+ 'next (older)</a>';
+
[ map { bless {blob => $_ }, 'PublicInbox::Smsg' } @oids ];
}