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 0/5] view*: minor cleanups and fixes
@ 2020-04-04  8:03  7% Eric Wong
  2020-04-04  8:03  6% ` [PATCH 4/5] viewdiff: reduce sub parameter count Eric Wong
  0 siblings, 1 reply; 2+ results
From: Eric Wong @ 2020-04-04  8:03 UTC (permalink / raw)
  To: meta

Just a few odds and ends which bother me when reading
the code or render HTML result.

Eric Wong (5):
  view: note we assume UTF-8 on unknown encodings
  view: use defined-or operator to simplify checks
  view: dedupe_subject: allow "0" is a valid Subject
  viewdiff: reduce sub parameter count
  view: inline flush_quote sub

 lib/PublicInbox/View.pm     | 37 +++++++++++++++----------------------
 lib/PublicInbox/ViewDiff.pm | 21 ++++++++++++---------
 2 files changed, 27 insertions(+), 31 deletions(-)

^ permalink raw reply	[relevance 7%]

* [PATCH 4/5] viewdiff: reduce sub parameter count
  2020-04-04  8:03  7% [PATCH 0/5] view*: minor cleanups and fixes Eric Wong
@ 2020-04-04  8:03  6% ` Eric Wong
  0 siblings, 0 replies; 2+ results
From: Eric Wong @ 2020-04-04  8:03 UTC (permalink / raw)
  To: meta

We're slowly moving towards doing all of our output buffering
into a single buffer, so passing that around on the stack as
a dedicated parameter is confusing.
---
 lib/PublicInbox/View.pm     |  2 +-
 lib/PublicInbox/ViewDiff.pm | 21 ++++++++++++---------
 2 files changed, 13 insertions(+), 10 deletions(-)

diff --git a/lib/PublicInbox/View.pm b/lib/PublicInbox/View.pm
index f0584cb7..12ef6431 100644
--- a/lib/PublicInbox/View.pm
+++ b/lib/PublicInbox/View.pm
@@ -589,7 +589,7 @@ sub add_text_body { # callback for msg_iter
 		if ($cur =~ /\A>/) {
 			flush_quote($rv, $l, \$cur);
 		} elsif ($diff) {
-			flush_diff($rv, $ctx, \$cur);
+			flush_diff($ctx, \$cur);
 		} else {
 			# regular lines, OK
 			$$rv .= $l->to_html($cur);
diff --git a/lib/PublicInbox/ViewDiff.pm b/lib/PublicInbox/ViewDiff.pm
index 5d391a13..f7422712 100644
--- a/lib/PublicInbox/ViewDiff.pm
+++ b/lib/PublicInbox/ViewDiff.pm
@@ -120,8 +120,8 @@ sub anchor1 ($$) {
 	$ok ? "<a\nhref=#i$attr\nid=$attr>diff</a> --git" : undef
 }
 
-sub diff_header ($$$$) {
-	my ($dst, $x, $ctx, $top) = @_;
+sub diff_header ($$$) {
+	my ($x, $ctx, $top) = @_;
 	my (undef, undef, $pa, $pb) = splice(@$top, 0, 4); # ignore oid_{a,b}
 	my $spfx = $ctx->{-spfx};
 	my $dctx = { spfx => $spfx };
@@ -159,15 +159,17 @@ sub diff_header ($$$$) {
 		warn "BUG? <$$x> had no ^index line";
 	}
 	$$x =~ s!^diff --git!anchor1($ctx, $pb) // 'diff --git'!ems;
+	my $dst = $ctx->{obuf};
 	$$dst .= qq(<span\nclass="head">);
 	$$dst .= $$x;
 	$$dst .= '</span>';
 	$dctx;
 }
 
-sub diff_before_or_after ($$$) {
-	my ($dst, $ctx, $x) = @_;
+sub diff_before_or_after ($$) {
+	my ($ctx, $x) = @_;
 	my $linkify = $ctx->{-linkify};
+	my $dst = $ctx->{obuf};
 	for my $y (split(/(^---\n)/sm, $$x)) {
 		if ($y =~ /\A---\n\z/s) {
 			$$dst .= "---\n"; # all HTML is "\r\n" => "\n"
@@ -186,20 +188,21 @@ sub diff_before_or_after ($$$) {
 }
 
 # callers must do CRLF => LF conversion before calling this
-sub flush_diff ($$$) {
-	my ($dst, $ctx, $cur) = @_;
+sub flush_diff ($$) {
+	my ($ctx, $cur) = @_;
 
 	my @top = split($EXTRACT_DIFFS, $$cur);
 	$$cur = undef;
 
 	my $linkify = $ctx->{-linkify};
+	my $dst = $ctx->{obuf};
 	my $dctx; # {}, keys: Q, oid_a, oid_b
 
 	while (defined(my $x = shift @top)) {
 		if (scalar(@top) >= 4 &&
 				$top[1] =~ $IS_OID &&
 				$top[0] =~ $IS_OID) {
-			$dctx = diff_header($dst, \$x, $ctx, \@top);
+			$dctx = diff_header(\$x, $ctx, \@top);
 		} elsif ($dctx) {
 			my $after = '';
 
@@ -238,9 +241,9 @@ sub flush_diff ($$$) {
 					$$dst .= $linkify->to_html($s);
 				}
 			}
-			diff_before_or_after($dst, $ctx, \$after) unless $dctx;
+			diff_before_or_after($ctx, \$after) unless $dctx;
 		} else {
-			diff_before_or_after($dst, $ctx, \$x);
+			diff_before_or_after($ctx, \$x);
 		}
 	}
 }

^ permalink raw reply related	[relevance 6%]

Results 1-2 of 2 | reverse | options above
-- pct% links below jump to the message on this page, permalinks otherwise --
2020-04-04  8:03  7% [PATCH 0/5] view*: minor cleanups and fixes Eric Wong
2020-04-04  8:03  6% ` [PATCH 4/5] viewdiff: reduce sub parameter count 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).