Merge "Http::getProxy() method to get proxy configuration"
[lhc/web/wiklou.git] / includes / diff / DiffFormatter.php
index 33ca931..4b44b3c 100644 (file)
@@ -49,6 +49,9 @@ abstract class DiffFormatter {
         */
        protected $trailingContextLines = 0;
 
+       /** @var string The output buffer; holds the output while it is built. */
+       private $result = '';
+
        /**
         * Format a diff.
         *
@@ -60,7 +63,7 @@ abstract class DiffFormatter {
 
                $xi = $yi = 1;
                $block = false;
-               $context = array();
+               $context = [];
 
                $nlead = $this->leadingContextLines;
                $ntrail = $this->trailingContextLines;
@@ -91,7 +94,7 @@ abstract class DiffFormatter {
                                        $context = array_slice( $context, count( $context ) - $nlead );
                                        $x0 = $xi - count( $context );
                                        $y0 = $yi - count( $context );
-                                       $block = array();
+                                       $block = [];
                                        if ( $context ) {
                                                $block[] = new DiffOpCopy( $context );
                                        }
@@ -146,15 +149,24 @@ abstract class DiffFormatter {
        }
 
        protected function startDiff() {
-               ob_start();
+               $this->result = '';
+       }
+
+       /**
+        * Writes a string to the output buffer.
+        *
+        * @param string $text
+        */
+       protected function writeOutput( $text ) {
+               $this->result .= $text;
        }
 
        /**
         * @return string
         */
        protected function endDiff() {
-               $val = ob_get_contents();
-               ob_end_clean();
+               $val = $this->result;
+               $this->result = '';
 
                return $val;
        }
@@ -185,7 +197,7 @@ abstract class DiffFormatter {
         * @param string $header
         */
        protected function startBlock( $header ) {
-               echo $header . "\n";
+               $this->writeOutput( $header . "\n" );
        }
 
        /**
@@ -203,7 +215,7 @@ abstract class DiffFormatter {
         */
        protected function lines( $lines, $prefix = ' ' ) {
                foreach ( $lines as $line ) {
-                       echo "$prefix $line\n";
+                       $this->writeOutput( "$prefix $line\n" );
                }
        }
 
@@ -236,7 +248,7 @@ abstract class DiffFormatter {
         */
        protected function changed( $orig, $closing ) {
                $this->deleted( $orig );
-               echo "---\n";
+               $this->writeOutput( "---\n" );
                $this->added( $closing );
        }