* [PATCH 1/6] viewdiff: make $UNSAFE a variable
2021-05-28 0:07 5% ` [PATCH 0/6] lei: odds and ends and a resend Eric Wong
@ 2021-05-28 0:07 7% ` Eric Wong
0 siblings, 0 replies; 2+ results
From: Eric Wong @ 2021-05-28 0:07 UTC (permalink / raw)
To: meta
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);
}
^ permalink raw reply related [relevance 7%]
* [PATCH 0/6] lei: odds and ends and a resend
@ 2021-05-28 0:07 5% ` Eric Wong
2021-05-28 0:07 7% ` [PATCH 1/6] viewdiff: make $UNSAFE a variable Eric Wong
0 siblings, 1 reply; 2+ results
From: Eric Wong @ 2021-05-28 0:07 UTC (permalink / raw)
To: meta
"lei: handle a single IMAP message in most places" didn't actually
apply, since I was still running 3/6 in this series. I've been
having trouble reproducing the uncommitted transaction error
messages I've been seeing from lms, but hopefully 3/6 can
eventually find it.
1/6 and 2/6 were somethings I noticed randomly. Been looking
into FUSE support for exposing lei/store as a Maildir, too.
Eric Wong (6):
viewdiff: make $UNSAFE a variable
viewdiff: escape '{' and '}' for regexp
lei_mail_sync: debug code for uncommitted txn
lei: mark reorder-and-rewrite-local-history as a TODO item
lei: handle a single IMAP message in most places
lei: add TODO item for FUSE mount
lib/PublicInbox/LEI.pm | 13 ++++++-------
lib/PublicInbox/LeiInspect.pm | 24 ++++++++++++++++++++++--
lib/PublicInbox/LeiLcat.pm | 33 ++++++++++++++++++++-------------
lib/PublicInbox/LeiMailSync.pm | 33 +++++++++++++++++++++++++++++++++
lib/PublicInbox/LeiToMail.pm | 8 +++++++-
lib/PublicInbox/LeiXSearch.pm | 3 +++
lib/PublicInbox/NetReader.pm | 9 +++++++--
lib/PublicInbox/ViewDiff.pm | 11 +++++------
t/lei-import-imap.t | 15 +++++++++++++++
9 files changed, 118 insertions(+), 31 deletions(-)
^ permalink raw reply [relevance 5%]
Results 1-2 of 2 | reverse | options above
-- pct% links below jump to the message on this page, permalinks otherwise --
2021-05-27 10:49 [PATCH] lei: handle a single IMAP message in most places Eric Wong
2021-05-28 0:07 5% ` [PATCH 0/6] lei: odds and ends and a resend Eric Wong
2021-05-28 0:07 7% ` [PATCH 1/6] viewdiff: make $UNSAFE a variable Eric Wong
Code repositories for project(s) associated with this public inbox
https://80x24.org/public-inbox.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).