lib/PublicInbox/WwwListing.pm | 17 ++++++++++++----- diff --git a/lib/PublicInbox/WwwListing.pm b/lib/PublicInbox/WwwListing.pm index a9290802397eb40d0f0d4df9beb43a098299f901..79c0a8ec209ff37081086f6a301114538e7a8ef4 100644 --- a/lib/PublicInbox/WwwListing.pm +++ b/lib/PublicInbox/WwwListing.pm @@ -11,6 +11,7 @@ use PublicInbox::GzipFilter qw(gzf_maybe); use PublicInbox::ConfigIter; use PublicInbox::WwwStream; use URI::Escape qw(uri_escape_utf8); +use PublicInbox::MID qw(mid_escape); sub ibx_entry { my ($ctx, $ibx, $ce) = @_; @@ -135,6 +136,13 @@ bless $ctx, $class; my ($re, $qs) = $ctx->url_filter; $re // return $ctx->psgi_triple; if (my $ALL = $ctx->{www}->{pi_cfg}->ALL) { # fast path + if ($ctx->{qp}->{a} && # "search all inboxes" + $ctx->{qp}->{'q'}) { + my $u = 'all/?q='.mid_escape($ctx->{qp}->{'q'}); + return [ 302, [ 'Location' => $u, + qw(Content-Type text/plain) ], + [ "Redirecting to $u\n" ] ]; + } # FIXME: test this in t/ $ALL->misc->reopen->retry_reopen(\&add_misc_ibx, $ctx, $re, $qs); @@ -166,11 +174,10 @@ $qh = ascii_html($qh); $qh = qq[\nvalue="$qh"] if $qh ne ''; my $rv = <
+action="./">
 EOM
 	chomp $rv;
 	if (defined($q->{'q'})) {