Commit 9bdb05b4 authored by Dan Fandrich's avatar Dan Fandrich
Browse files

When displaying log files, truncate the really longs ones such as you

would get from a torture test.
parent 94b253fd
Loading
Loading
Loading
Loading
+23 −2
Original line number Diff line number Diff line
@@ -2446,10 +2446,15 @@ open(CMDLOG, ">$CURLLOG") ||

#######################################################################

# Display the contents of the given file.  Line endings are canonicalized
# and excessively long files are truncated
sub displaylogcontent {
    my ($file)=@_;
    if(open(my $SINGLE, "<$file")) {
        my $lfcount;
        my $linecount = 0;
        my $truncate;
        my @tail;
        while(my $string = <$SINGLE>) {
            $string =~ s/\r\n/\n/g;
            $string =~ s/[\r\f\032]/\n/g;
@@ -2458,15 +2463,31 @@ sub displaylogcontent {
            if($lfcount == 1) {
                $string =~ s/\n//;
                $string =~ s/\s*\!$//;
                $linecount++;
                if ($truncate) {
                    push @tail, " $string\n";
                } else {
                    logmsg " $string\n";
                }
            }
            else {
                for my $line (split("\n", $string)) {
                    $line =~ s/\s*\!$//;
                    $linecount++;
                    if ($truncate) {
                        push @tail, " $line\n";
                    } else {
                        logmsg " $line\n";
		    }
                }
            }
            $truncate = $linecount > 1000;
        }
        if (@tail) {
            logmsg "=== File too long: lines here were removed\n";
            # This won't work properly if time stamps are enabled in logmsg
            logmsg join('',@tail[$#tail-200..$#tail]);
        }
        close($SINGLE);
    }
}