From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on dcvr.yhbt.net X-Spam-Level: X-Spam-Status: No, score=-4.0 required=3.0 tests=ALL_TRUSTED,BAYES_00 shortcircuit=no autolearn=ham autolearn_force=no version=3.4.2 Received: from localhost (dcvr.yhbt.net [127.0.0.1]) by dcvr.yhbt.net (Postfix) with ESMTP id F0FF41F5AF for ; Tue, 7 Jul 2020 20:37:38 +0000 (UTC) From: Eric Wong To: meta@public-inbox.org Subject: [PATCH 1/5] viewvcs: allow "0" as a path name Date: Tue, 7 Jul 2020 20:37:34 +0000 Message-Id: <20200707203738.32677-2-e@yhbt.net> In-Reply-To: <20200707203738.32677-1-e@yhbt.net> References: <20200707203738.32677-1-e@yhbt.net> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit List-Id: 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 9ec04f480..053848a8b 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 e4ad515a4..2ea5d80db 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);