parser: Count occurrences of newlines
authorArlo Breault <abreault@wikimedia.org>
Wed, 20 Mar 2019 20:32:10 +0000 (16:32 -0400)
committerArlo Breault <abreault@wikimedia.org>
Wed, 20 Mar 2019 20:33:55 +0000 (16:33 -0400)
StringUtils::explode() returns an ExplodeIterator if the number of
separators is too high, which doesn't implement count.

So count the way that explode does.

Bug: T218817
Change-Id: I22eebb70af1b19d7c25241fc78bfcced4470e78a

includes/parser/BlockLevelPass.php

index b2bcc8c..6611e20 100644 (file)
@@ -192,6 +192,7 @@ class BlockLevelPass {
                # happening here is handling of block-level elements p, pre,
                # and making lists from lines starting with * # : etc.
                $textLines = StringUtils::explode( "\n", $text );
+               $lineCount = substr_count( $text, "\n" ) + 1;
 
                $lastPrefix = $output = '';
                $this->DTopen = $inBlockElem = false;
@@ -199,7 +200,6 @@ class BlockLevelPass {
                $pendingPTag = false;
                $inBlockquote = false;
 
-               $lineCount = count( $textLines );
                foreach ( $textLines as $i => $inputLine ) {
                        # Fix up $lineStart
                        if ( !$this->lineStart ) {