]> Sergey Matveev's repositories - public-inbox.git/blobdiff - lib/PublicInbox/Feed.pm
view: merge $state hash with existing $ctx
[public-inbox.git] / lib / PublicInbox / Feed.pm
index 73986e832c72d46de1a515b0dfb5b9c8ef0547b3..ddc1e3c14f8b3fc4860f73363ac10cf8c6f84efe 100644 (file)
@@ -141,7 +141,9 @@ sub emit_html_index {
        $ctx->{-upfx} = '';
 
        my ($footer, $param, $last);
-       my $state = { ctx => $ctx, seen => {}, anchor_idx => 0, fh => $fh };
+       $ctx->{seen} = {};
+       $ctx->{anchor_idx} = 0;
+       $ctx->{fh} = $fh;
        my $srch = $ctx->{srch};
        $fh->write(_html_index_top($feed_opts, $srch));
 
@@ -149,14 +151,13 @@ sub emit_html_index {
        # which we must continue supporting:
        my $qp = $ctx->{qp};
        if ($qp && !$qp->{r} && $srch) {
-               $state->{srch} = $srch;
-               $last = PublicInbox::View::emit_index_topics($state);
+               $last = PublicInbox::View::emit_index_topics($ctx);
                $param = 'o';
        } else {
-               $last = emit_index_nosrch($ctx, $state);
+               $last = emit_index_nosrch($ctx);
                $param = 'r';
        }
-       $footer = nav_footer($ctx, $last, $feed_opts, $state, $param);
+       $footer = nav_footer($ctx, $last, $feed_opts, $param);
        if ($footer) {
                my $list_footer = $ctx->{footer};
                $footer .= "\n\n" . $list_footer if $list_footer;
@@ -167,28 +168,28 @@ sub emit_html_index {
 }
 
 sub emit_index_nosrch {
-       my ($ctx, $state) = @_;
+       my ($ctx) = @_;
        my $ibx = $ctx->{-inbox};
-       my $fh = $state->{fh};
+       my $fh = $ctx->{fh};
        my (undef, $last) = each_recent_blob($ctx, sub {
                my ($path, $commit, $ts, $u, $subj) = @_;
-               $state->{first} ||= $commit;
+               $ctx->{first} ||= $commit;
 
                my $mime = do_cat_mail($ibx, $path) or return 0;
-               $fh->write(PublicInbox::View::index_entry($mime, $state, 1));
+               $fh->write(PublicInbox::View::index_entry($mime, $ctx, 1));
                1;
        });
        $last;
 }
 
 sub nav_footer {
-       my ($ctx, $last, $feed_opts, $state, $param) = @_;
+       my ($ctx, $last, $feed_opts, $param) = @_;
        my $qp = $ctx->{qp} or return '';
        my $old_r = $qp->{$param};
        my $head = '    ';
        my $next = '    ';
-       my $first = $state->{first};
-       my $anchor = $state->{anchor_idx};
+       my $first = $ctx->{first};
+       my $anchor = $ctx->{anchor_idx};
 
        if ($last) {
                $next = qq!<a\nhref="?$param=$last"\nrel=next>next</a>!;