Another step towards making our internal APIs more writev-like
and reducing the copies needed for `join' or `.=' concatenation.
---
lib/PublicInbox/View.pm | 4 ++--
lib/PublicInbox/ViewVCS.pm | 6 +++---
lib/PublicInbox/WWW.pm | 2 +-
lib/PublicInbox/WwwAltId.pm | 6 +++---
lib/PublicInbox/WwwStream.pm | 7 +++----
lib/PublicInbox/WwwText.pm | 2 +-
6 files changed, 13 insertions(+), 14 deletions(-)
diff --git a/lib/PublicInbox/View.pm b/lib/PublicInbox/View.pm
index 158feb6a..5fbdd1fa 100644
--- a/lib/PublicInbox/View.pm
+++ b/lib/PublicInbox/View.pm
@@ -64,7 +64,7 @@ sub no_over_html ($) {
}
delete $ctx->{obuf};
eval { $$obuf .= html_footer($ctx, $eml) };
- html_oneshot($ctx, 200, $obuf);
+ html_oneshot($ctx, 200, $$obuf);
}
# public functions: (unstable)
@@ -1222,7 +1222,7 @@ sub pagination_footer ($$) {
$next = $next ? "$next | " : ' | ';
$prev .= qq[ | <a\nhref="$latest">latest</a>];
}
- ($next || $prev) ? \"<hr><pre>page: $next$prev</pre>" : \'';
+ ($next || $prev) ? "<hr><pre>page: $next$prev</pre>" : '';
}
sub paginate_recent ($$) {
diff --git a/lib/PublicInbox/ViewVCS.pm b/lib/PublicInbox/ViewVCS.pm
index b04a5672..23524ac0 100644
--- a/lib/PublicInbox/ViewVCS.pm
+++ b/lib/PublicInbox/ViewVCS.pm
@@ -36,11 +36,11 @@ my $BIN_DETECT = 8000; # same as git
my $SHOW_FMT = '--pretty=format:'.join('%n', '%P', '%p', '%H', '%T', '%s',
'%an <%ae> %ai', '%cn <%ce> %ci', '%b%x00');
-sub html_page ($$$) {
- my ($ctx, $code, $str) = @_;
+sub html_page ($$;@) {
+ my ($ctx, $code) = @_[0, 1];
my $wcb = delete $ctx->{-wcb};
$ctx->{-upfx} = '../../'; # from "/$INBOX/$OID/s/"
- my $res = html_oneshot($ctx, $code, \$str);
+ my $res = html_oneshot($ctx, $code, @_[2..$#_]);
$wcb ? $wcb->($res) : $res;
}
diff --git a/lib/PublicInbox/WWW.pm b/lib/PublicInbox/WWW.pm
index 77f463d3..1df5572d 100644
--- a/lib/PublicInbox/WWW.pm
+++ b/lib/PublicInbox/WWW.pm
@@ -320,7 +320,7 @@ sub get_altid_dump {
sub need {
my ($ctx, $extra) = @_;
require PublicInbox::WwwStream;
- PublicInbox::WwwStream::html_oneshot($ctx, 501, \<<EOF);
+ PublicInbox::WwwStream::html_oneshot($ctx, 501, <<EOF);
<pre>$extra is not available for this public-inbox
<a\nhref="../">Return to index</a></pre>
EOF
diff --git a/lib/PublicInbox/WwwAltId.pm b/lib/PublicInbox/WwwAltId.pm
index e107dfe0..47056160 100644
--- a/lib/PublicInbox/WwwAltId.pm
+++ b/lib/PublicInbox/WwwAltId.pm
@@ -33,14 +33,14 @@ sub sqldump ($$) {
my $altid_map = $ibx->altid_map;
my $fn = $altid_map->{$altid_pfx};
unless (defined $fn) {
- return html_oneshot($ctx, 404, \<<EOF);
+ return html_oneshot($ctx, 404, <<EOF);
<pre>`$altid_pfx' is not a valid altid for this inbox</pre>
EOF
}
if ($env->{REQUEST_METHOD} ne 'POST') {
my $url = $ibx->base_url($ctx->{env}) . "$altid_pfx.sql.gz";
- return html_oneshot($ctx, 405, \<<EOF);
+ return html_oneshot($ctx, 405, <<EOF);
<pre>A POST request is required to retrieve $altid_pfx.sql.gz
curl -d '' -O $url
@@ -54,7 +54,7 @@ or
EOF
}
- $sqlite3 //= which('sqlite3') // return html_oneshot($ctx, 501, \<<EOF);
+ $sqlite3 //= which('sqlite3') // return html_oneshot($ctx, 501, <<EOF);
<pre>sqlite3 not available
The administrator needs to install the sqlite3(1) binary
diff --git a/lib/PublicInbox/WwwStream.pm b/lib/PublicInbox/WwwStream.pm
index ab006c40..f2777fdc 100644
--- a/lib/PublicInbox/WwwStream.pm
+++ b/lib/PublicInbox/WwwStream.pm
@@ -164,8 +164,8 @@ sub getline {
$ctx->zflush(_html_end($ctx));
}
-sub html_oneshot ($$;$) {
- my ($ctx, $code, $sref) = @_;
+sub html_oneshot ($$;@) {
+ my ($ctx, $code) = @_[0, 1];
my $res_hdr = [ 'Content-Type' => 'text/html; charset=UTF-8',
'Content-Length' => undef ];
bless $ctx, __PACKAGE__;
@@ -174,8 +174,7 @@ sub html_oneshot ($$;$) {
$ctx->zmore(html_top($ctx));
$ctx->{base_url} = base_url($ctx);
};
- $ctx->zmore($$sref) if $sref;
- my $bdy = $ctx->zflush(_html_end($ctx));
+ my $bdy = $ctx->zflush(@_[2..$#_], _html_end($ctx));
$res_hdr->[3] = length($bdy);
[ $code, $res_hdr, [ $bdy ] ]
}
diff --git a/lib/PublicInbox/WwwText.pm b/lib/PublicInbox/WwwText.pm
index c6957e81..3f840c44 100644
--- a/lib/PublicInbox/WwwText.pm
+++ b/lib/PublicInbox/WwwText.pm
@@ -70,7 +70,7 @@ sub get_text {
$txt =~ s!\bPOP3\b!<a\nid=pop3>POP3</a>!;
$txt =~ s!\b(Newsgroups?)\b!<a\nid=nntp>$1</a>!;
$txt =~ s!\bIMAP\b!<a\nid=imap>IMAP</a>!;
- PublicInbox::WwwStream::html_oneshot($ctx, $code, \$txt);
+ PublicInbox::WwwStream::html_oneshot($ctx, $code, $txt);
}
sub _srch_prefix ($$) {