Fixing DiffFormatter so it actually outputs valid diffs.
[lhc/web/wiklou.git] / includes / ParserOptions.php
index efa3606..f4ed78d 100644 (file)
@@ -3,7 +3,7 @@
 /**
  * Set options of the Parser
  * @todo document
- * @package MediaWiki
+ * @addtogroup Parser
  */
 class ParserOptions
 {
@@ -21,7 +21,9 @@ class ParserOptions
        var $mTidy;                      # Ask for tidy cleanup
        var $mInterfaceMessage;          # Which lang to call for PLURAL and GRAMMAR
        var $mMaxIncludeSize;            # Maximum size of template expansions, in bytes
+       var $mMaxPPNodeCount;            # Maximum number of nodes touched by PPFrame::expand()
        var $mRemoveComments;            # Remove HTML comments. ONLY APPLIES TO PREPROCESS OPERATIONS
+       var $mTemplateCallback;          # Callback for template fetching
 
        var $mUser;                      # Stored user object, just used to initialise the skin
 
@@ -36,9 +38,11 @@ class ParserOptions
        function getTidy()                          { return $this->mTidy; }
        function getInterfaceMessage()              { return $this->mInterfaceMessage; }
        function getMaxIncludeSize()                { return $this->mMaxIncludeSize; }
+       function getMaxPPNodeCount()                { return $this->mMaxPPNodeCount; }
        function getRemoveComments()                { return $this->mRemoveComments; }
+       function getTemplateCallback()              { return $this->mTemplateCallback; }
 
-       function &getSkin() {
+       function getSkin() {
                if ( !isset( $this->mSkin ) ) {
                        $this->mSkin = $this->mUser->getSkin();
                }
@@ -65,9 +69,11 @@ class ParserOptions
        function setSkin( $x )                      { $this->mSkin = $x; }
        function setInterfaceMessage( $x )          { return wfSetVar( $this->mInterfaceMessage, $x); }
        function setMaxIncludeSize( $x )            { return wfSetVar( $this->mMaxIncludeSize, $x ); }
+       function setMaxPPNodeCount( $x )            { return wfSetVar( $this->mMaxPPNodeCount, $x ); }
        function setRemoveComments( $x )            { return wfSetVar( $this->mRemoveComments, $x ); }
+       function setTemplateCallback( $x )          { return wfSetVar( $this->mTemplateCallback, $x ); }
 
-       function ParserOptions( $user = null ) {
+       function __construct( $user = null ) {
                $this->initialiseFromUser( $user );
        }
 
@@ -83,6 +89,7 @@ class ParserOptions
        function initialiseFromUser( $userInput ) {
                global $wgUseTeX, $wgUseDynamicDates, $wgInterwikiMagic, $wgAllowExternalImages;
                global $wgAllowExternalImagesFrom, $wgAllowSpecialInclusion, $wgMaxArticleSize;
+               global $wgMaxPPNodeCount;
                $fname = 'ParserOptions::initialiseFromUser';
                wfProfileIn( $fname );
                if ( !$userInput ) {
@@ -111,9 +118,11 @@ class ParserOptions
                $this->mTidy = false;
                $this->mInterfaceMessage = false;
                $this->mMaxIncludeSize = $wgMaxArticleSize * 1024;
+               $this->mMaxPPNodeCount = $wgMaxPPNodeCount;
                $this->mRemoveComments = true;
+               $this->mTemplateCallback = array( 'Parser', 'statelessFetchTemplate' );
                wfProfileOut( $fname );
        }
 }
 
-?>
+