X-Git-Url: http://www.git.stargrave.org/?a=blobdiff_plain;f=lib%2FPublicInbox%2FViewVCS.pm;h=069937c132af90d6d9fff3c80e55c092e0dc3b49;hb=2fc67a18b7ccd75ea6eb945f18203cbf4bcf228f;hp=77b3ca2814e104aea306c19e179ceece1167d7ef;hpb=02cdbe1c1638ba8e80351b39029c08343fab018b;p=public-inbox.git
diff --git a/lib/PublicInbox/ViewVCS.pm b/lib/PublicInbox/ViewVCS.pm
index 77b3ca28..069937c1 100644
--- a/lib/PublicInbox/ViewVCS.pm
+++ b/lib/PublicInbox/ViewVCS.pm
@@ -1,4 +1,4 @@
-# Copyright (C) 2019 all contributors
+# Copyright (C) 2019-2020 all contributors
# License: AGPL-3.0+
# show any VCS object, similar to "git show"
@@ -18,7 +18,7 @@ use strict;
use warnings;
use bytes (); # only for bytes::length
use PublicInbox::SolverGit;
-use PublicInbox::WwwStream;
+use PublicInbox::WwwStream qw(html_oneshot);
use PublicInbox::Linkify;
use PublicInbox::Tmpfile;
use PublicInbox::Hval qw(ascii_html to_filename);
@@ -31,17 +31,11 @@ my %QP_MAP = ( A => 'oid_a', B => 'oid_b', a => 'path_a', b => 'path_b' );
our $MAX_SIZE = 1024 * 1024; # TODO: configurable
my $BIN_DETECT = 8000; # same as git
-sub html_i { # WwwStream::getline callback
- my ($nr, $ctx) = @_;
- $nr == 1 ? ${delete $ctx->{obuf}} : undef;
-}
-
sub html_page ($$$) {
my ($ctx, $code, $strref) = @_;
my $wcb = delete $ctx->{-wcb};
$ctx->{-upfx} = '../../'; # from "/$INBOX/$OID/s/"
- $ctx->{obuf} = $strref;
- my $res = PublicInbox::WwwStream->response($ctx, $code, \&html_i);
+ my $res = html_oneshot($ctx, $code, $strref);
$wcb ? $wcb->($res) : $res;
}
@@ -164,7 +158,7 @@ sub solve_result {
# TODO: detect + convert to ensure validity
utf8::decode($$blob);
- my $nl = ($$blob =~ tr/\n/\n/);
+ my $nl = ($$blob =~ s/\r?\n/\n/sg);
my $pad = length($nl);
$l->linkify_1($$blob);