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-ASN: 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 7BDF51F9E5 for ; Fri, 28 May 2021 00:07:57 +0000 (UTC) From: Eric Wong To: meta@public-inbox.org Subject: [PATCH 1/6] viewdiff: make $UNSAFE a variable Date: Fri, 28 May 2021 00:07:52 +0000 Message-Id: <20210528000757.20500-2-e@80x24.org> In-Reply-To: <20210528000757.20500-1-e@80x24.org> References: <20210528000757.20500-1-e@80x24.org> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit List-Id: There's no sense in using a constant here since it gets copied into the uri_escape_utf8 function anyways. Furthermore, inlined constants still leave behind a subroutine and subs cost several KB of memory. Finally, add a comment as to why it's different than the default escape, since I just spent a minute wondering that. --- lib/PublicInbox/ViewDiff.pm | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/lib/PublicInbox/ViewDiff.pm b/lib/PublicInbox/ViewDiff.pm index d2c5fabe..05acc242 100644 --- a/lib/PublicInbox/ViewDiff.pm +++ b/lib/PublicInbox/ViewDiff.pm @@ -15,8 +15,7 @@ use URI::Escape qw(uri_escape_utf8); use PublicInbox::Hval qw(ascii_html to_attr); use PublicInbox::Git qw(git_unquote); -sub UNSAFE () { "^A-Za-z0-9\-\._~/" } - +my $UNSAFE = "^A-Za-z0-9\-\._~/"; # '/' + $URI::Escape::Unsafe{RFC3986} my $OID_NULL = '0{7,}'; my $OID_BLOB = '[a-f0-9]{7,}'; my $LF = qr!\n!; @@ -124,14 +123,14 @@ sub diff_header ($$$) { $pa = (split(m'/', git_unquote($pa), 2))[1] if $pa ne '/dev/null'; $pb = (split(m'/', git_unquote($pb), 2))[1] if $pb ne '/dev/null'; if ($pa eq $pb && $pb ne '/dev/null') { - $dctx->{Q} = "?b=".uri_escape_utf8($pb, UNSAFE); + $dctx->{Q} = "?b=".uri_escape_utf8($pb, $UNSAFE); } else { my @q; if ($pb ne '/dev/null') { - push @q, 'b='.uri_escape_utf8($pb, UNSAFE); + push @q, 'b='.uri_escape_utf8($pb, $UNSAFE); } if ($pa ne '/dev/null') { - push @q, 'a='.uri_escape_utf8($pa, UNSAFE); + push @q, 'a='.uri_escape_utf8($pa, $UNSAFE); } $dctx->{Q} = '?'.join('&', @q); }