X-Git-Url: http://www.git.stargrave.org/?a=blobdiff_plain;f=lib%2FPublicInbox%2FWWW.pm;h=196486f25e9b0358849d74c4f8df627897d5294a;hb=5422a844b7384c32b3532d128e15e0b50d24435b;hp=f1f4abd5f86d517383683bb67fc989fdcd3f0c0e;hpb=4b313dc74bc9bb84a542b7ec920cdb92879e7523;p=public-inbox.git diff --git a/lib/PublicInbox/WWW.pm b/lib/PublicInbox/WWW.pm index f1f4abd5..196486f2 100644 --- a/lib/PublicInbox/WWW.pm +++ b/lib/PublicInbox/WWW.pm @@ -23,7 +23,7 @@ require PublicInbox::Git; use PublicInbox::GitHTTPBackend; our $INBOX_RE = qr!\A/([\w\.\-]+)!; our $MID_RE = qr!([^/]+)!; -our $END_RE = qr!(T/|t/|t\.mbox(?:\.gz)?|t\.atom|raw|)!; +our $END_RE = qr!(t/|t\.mbox(?:\.gz)?|t\.atom|raw|)!; our $ATTACH_RE = qr!(\d[\.\d]*)-([[:alnum:]][\w\.-]+[[:alnum:]])!i; sub new { @@ -48,6 +48,7 @@ sub call { my %qp = map { my ($k, $v) = split('=', $_, 2); $v = '' unless defined $v; + $v =~ tr/+/ /; ($k, $v) } split(/[&;]/, uri_unescape($env->{QUERY_STRING})); $ctx->{qp} = \%qp; @@ -90,10 +91,9 @@ sub call { invalid_inbox_mid($self, $ctx, $1, $2) || get_attach($ctx, $idx, $fn); # in case people leave off the trailing slash: - } elsif ($path_info =~ m!$INBOX_RE/$MID_RE/(T|t)\z!o) { - my ($inbox, $mid, $suffix) = ($1, $2, $3); - $suffix .= $suffix =~ /\A[tT]\z/ ? '/#u' : '/'; - r301($ctx, $inbox, $mid, $suffix); + } elsif ($path_info =~ m!$INBOX_RE/$MID_RE/(?:T|T/|t)\z!o) { + my ($inbox, $mid) = ($1, $2); + r301($ctx, $inbox, $mid, 't/#u'); } elsif ($path_info =~ m!$INBOX_RE/$MID_RE/R/?\z!o) { my ($inbox, $mid) = ($1, $2); @@ -233,12 +233,10 @@ sub get_mid_html { # /$INBOX/$MESSAGE_ID/t/ sub get_thread { - my ($ctx, $flat) = @_; - my $srch = searcher($ctx) or return need_search($ctx); + my ($ctx) = @_; + searcher($ctx) or return need_search($ctx); require PublicInbox::View; - my $foot = footer($ctx); - $ctx->{flat} = $flat; - PublicInbox::View::thread_html($ctx, $foot, $srch); + PublicInbox::View::thread_html($ctx); } sub ctx_get { @@ -414,7 +412,6 @@ sub msg_page { 't.atom' eq $e and return get_thread_atom($ctx); 't.mbox' eq $e and return get_thread_mbox($ctx); 't.mbox.gz' eq $e and return get_thread_mbox($ctx, '.gz'); - 'T/' eq $e and return get_thread($ctx, 1); 'raw' eq $e and return get_mid_txt($ctx); # legacy, but no redirect for compatibility: