user/dev discussion of public-inbox itself
 help / color / mirror / code / Atom feed
Search results ordered by [date|relevance]  view[summary|nested|Atom feed]
thread overview below | download mbox.gz: |
* [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).