r42257 - Code Review

From MediaWiki.org

Jump to: navigation, search
Repository:MediaWiki
Revision:r42256 | r42257 (on ViewVC) | r42258 >
Date:06:46, 20 October 2008
Author:krimpet
Status:ok (Comments)
Tags:
Comment:Convert literal tabs to 	 when passing them through Tidy, to prevent them from being clobbered.
Modified paths:

Diff [purge]

Index: trunk/phase3/includes/parser/Parser.php
===================================================================
--- trunk/phase3/includes/parser/Parser.php	(revision 42256)
+++ trunk/phase3/includes/parser/Parser.php	(revision 42257)
@@ -665,9 +665,14 @@
 	 */
 	function tidy( $text ) {
 		global $wgTidyInternal;
+
 		$wrappedtext = '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"'.
 ' "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html>'.
 '<head><title>test</title></head><body>'.$text.'</body></html>';
+
+		# Tidy is known to clobber tabs; convert 'em to entities
+		$wrappedtext = str_replace("\t", '&#9;', $wrappedtext);
+
 		if( $wgTidyInternal ) {
 			$correctedtext = self::internalTidy( $wrappedtext );
 		} else {
@@ -677,6 +682,10 @@
 			wfDebug( "Tidy error detected!\n" );
 			return $text . "\n<!-- Tidy found serious XHTML errors -->\n";
 		}
+
+		# Convert the tabs back from entities
+		$correctedtext = str_replace('&#9;', "\t", $correctedtext);
+
 		return $correctedtext;
 	}
 

Comments

#Comment by Brion VIBBER (Talk | contribs)   23:04, 23 October 2008

whee

There is a tiny possibility that this might clobber JS code in CDATA sections, but practically I think it will not be an issue. :) In that case the literal \t will probably be fine. ;)

#Comment by Platonides (Talk | contribs)   23:10, 25 October 2008

This revision breaks <inputbox>, see bugzilla:16108.

What's it fixing? We have always had tabs on the wiki without this conversion.

Views
Toolbox