my $self = $_[0]; # $_[1] => input
my $err = $self->{gz}->deflate($_[1], $self->{zbuf});
die "gzip->deflate: $err" if $err != Z_OK;
- '';
+ undef;
}
# flushes and returns the final bit of gzipped data
package PublicInbox::NoopFilter;
use strict;
-sub new { bless \(my $ignore), __PACKAGE__ }
+sub new { bless \(my $self = ''), __PACKAGE__ }
# noop workalike for PublicInbox::GzipFilter methods
-sub translate { $_[1] // '' }
-sub zmore { $_[1] }
-sub zflush { $_[1] // '' }
+sub translate {
+ my $self = $_[0];
+ my $ret = $$self .= ($_[1] // '');
+ $$self = '';
+ $ret;
+}
+
+sub zmore {
+ ${$_[0]} .= $_[1];
+ undef;
+}
+
+sub zflush { translate($_[0], $_[1]) }
+
1;
my $h = [ 'Content-Type', 'text/html; charset=UTF-8',
'Content-Length', undef ];
my $gzf = gzf_maybe($h, $env) || PublicInbox::NoopFilter::new();
- my $out = $gzf->zmore('<html><head><title>' .
+ $gzf->zmore('<html><head><title>' .
'public-inbox listing</title>' .
'</head><body><pre>');
my $code = 404;
my $tmp = join("\n", map { ibx_entry(@$_, $env) } @$list);
my $l = PublicInbox::Linkify->new;
- $out .= $gzf->zmore($l->to_html($tmp));
+ $gzf->zmore($l->to_html($tmp));
} else {
- $out .= $gzf->zmore('no inboxes, yet');
+ $gzf->zmore('no inboxes, yet');
}
- $out .= $gzf->zflush('</pre><hr><pre>'.
+ my $out = $gzf->zflush('</pre><hr><pre>'.
PublicInbox::WwwStream::code_footer($env) .
'</pre></body></html>');
$h->[3] = bytes::length($out);