Merge "Export revision IDs to JS config on diff pages"
authorjenkins-bot <jenkins-bot@gerrit.wikimedia.org>
Tue, 18 Jul 2017 15:40:00 +0000 (15:40 +0000)
committerGerrit Code Review <gerrit@wikimedia.org>
Tue, 18 Jul 2017 15:40:00 +0000 (15:40 +0000)
1  2 
includes/diff/DifferenceEngine.php

@@@ -377,6 -377,11 +377,11 @@@ class DifferenceEngine extends ContextS
                        }
                }
  
+               $out->addJsConfigVars( [
+                       'wgDiffOldId' => $this->mOldid,
+                       'wgDiffNewId' => $this->mNewid,
+               ] );
                # Make "next revision link"
                # Skip next link on the top revision
                if ( $samePage && !$this->mNewRev->isCurrent() ) {
                        $wgExternalDiffEngine = false;
                }
  
 +              // Better external diff engine, the 2 may some day be dropped
 +              // This one does the escaping and segmenting itself
                if ( function_exists( 'wikidiff2_do_diff' ) && $wgExternalDiffEngine === false ) {
 -                      # Better external diff engine, the 2 may some day be dropped
 -                      # This one does the escaping and segmenting itself
 -                      $text = wikidiff2_do_diff( $otext, $ntext, 2 );
 +                      $wikidiff2Version = phpversion( 'wikidiff2' );
 +                      if (
 +                              $wikidiff2Version !== false &&
 +                              version_compare( $wikidiff2Version, '0.3.0', '>=' )
 +                      ) {
 +                              $text = wikidiff2_do_diff(
 +                                      $otext,
 +                                      $ntext,
 +                                      2,
 +                                      $this->getConfig()->get( 'WikiDiff2MovedParagraphDetectionCutoff' )
 +                              );
 +                      } else {
 +                              // Don't pass the 4th parameter for compatibility with older versions of wikidiff2
 +                              $text = wikidiff2_do_diff(
 +                                      $otext,
 +                                      $ntext,
 +                                      2
 +                              );
 +
 +                              // Log a warning in case the configuration value is set to not silently ignore it
 +                              if ( $this->getConfig()->get( 'WikiDiff2MovedParagraphDetectionCutoff' ) > 0 ) {
 +                                      wfLogWarning( '$wgWikiDiff2MovedParagraphDetectionCutoff is set but has no
 +                                              effect since the used version of WikiDiff2 does not support it.' );
 +                              }
 +                      }
 +
                        $text .= $this->debug( 'wikidiff2' );
  
                        return $text;