From bc18c05b1681acc9a468b298c34b12ca4db3e5bb Mon Sep 17 00:00:00 2001 From: Eric Wong Date: Tue, 7 Jul 2020 20:37:34 +0000 Subject: [PATCH] viewvcs: allow "0" as a path name This means we need to filter out "" from query parameters. While we're at it, update comments for the WWW endpoint. --- lib/PublicInbox/ViewVCS.pm | 6 ++++-- lib/PublicInbox/WWW.pm | 5 ++--- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/lib/PublicInbox/ViewVCS.pm b/lib/PublicInbox/ViewVCS.pm index 9ec04f48..053848a8 100644 --- a/lib/PublicInbox/ViewVCS.pm +++ b/lib/PublicInbox/ViewVCS.pm @@ -127,7 +127,7 @@ sub solve_result { my ($git, $oid, $type, $size, $di) = @$res; return show_other($ctx, $res, \$log, $fn) if $type ne 'blob'; - my $path = to_filename($di->{path_b} || $hints->{path_b} || 'blob'); + my $path = to_filename($di->{path_b} // $hints->{path_b} // 'blob'); my $raw_link = "(raw)"; if ($size > $MAX_SIZE) { return stream_large_blob($ctx, $res, \$log, $fn) if defined $fn; @@ -184,13 +184,15 @@ sub solve_result { html_page($ctx, 200, \$log); } +# GET /$INBOX/$GIT_OBJECT_ID/s/ +# GET /$INBOX/$GIT_OBJECT_ID/s/$FILENAME sub show ($$;$) { my ($ctx, $oid_b, $fn) = @_; my $qp = $ctx->{qp}; my $hints = $ctx->{hints} = {}; while (my ($from, $to) = each %QP_MAP) { defined(my $v = $qp->{$from}) or next; - $hints->{$to} = $v; + $hints->{$to} = $v if $v ne ''; } $ctx->{'log'} = tmpfile("solve.$oid_b"); diff --git a/lib/PublicInbox/WWW.pm b/lib/PublicInbox/WWW.pm index e4ad515a..2ea5d80d 100644 --- a/lib/PublicInbox/WWW.pm +++ b/lib/PublicInbox/WWW.pm @@ -301,9 +301,8 @@ sub get_text { } # show git objects (blobs and commits) -# /$INBOX/_/$OBJECT_ID/show -# /$INBOX/_/${OBJECT_ID}_${FILENAME} -# KEY may contain slashes +# /$INBOX/$GIT_OBJECT_ID/s/ +# /$INBOX/$GIT_OBJECT_ID/s/$FILENAME sub get_vcs_object ($$$;$) { my ($ctx, $inbox, $oid, $filename) = @_; my $r404 = invalid_inbox($ctx, $inbox); -- 2.48.1