diff options
author | Eric Wong <e@80x24.org> | 2021-05-28 00:07:52 +0000 |
---|---|---|
committer | Eric Wong <e@80x24.org> | 2021-05-28 03:46:33 +0000 |
commit | 2bc155b455048b127e5ae883a0e5a9964ef437ae (patch) | |
tree | a5ff847b3bf728698e09f7b8f07981874b3fda1f /lib | |
parent | ff96ecca608fbb444cce464d74047354585d852d (diff) | |
download | public-inbox-2bc155b455048b127e5ae883a0e5a9964ef437ae.tar.gz |
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.
Diffstat (limited to 'lib')
-rw-r--r-- | lib/PublicInbox/ViewDiff.pm | 9 |
1 files 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); } |