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 ($$) {

Reply via email to