From: Bryan Tong Minh
Date: Sat, 26 Feb 2011 12:08:59 +0000 (+0000)
Subject: (bug 27679) Broken embedded files with special characters are no longer double HTML...
X-Git-Tag: 1.31.0-rc.0~31764
X-Git-Url: http://git.cyclocoop.org/%22%2C%20generer_url_ecrire%28?a=commitdiff_plain;h=bf067d3395c6f9f96df87cf4cf43c3d4912fd53b;p=lhc%2Fweb%2Fwiklou.git
(bug 27679) Broken embedded files with special characters are no longer double HTML escaped
Was a double escape in Linker::makeBrokenImageLinkObj. I checked the callers and other usages in the function and $prefix and $inside appear to be assumed HTML fragments
Added parser tests: Passed 622 of 624 tests (99.68%)... 2 tests failed! Those two tests already failed for me before this patch
---
diff --git a/RELEASE-NOTES b/RELEASE-NOTES
index f6f8bdeba3..c19e677e39 100644
--- a/RELEASE-NOTES
+++ b/RELEASE-NOTES
@@ -142,6 +142,9 @@ it from source control: http://www.mediawiki.org/wiki/Download_from_SVN
* (bug 15905) Nostalgia skin could become more usable by including a Talk:
link at the top of the page
* (bug 27560) Search queries no longer fail in walloon language
+* (bug 27679) Broken embedded files with special characters longer double HTML
+ escaped
+
=== API changes in 1.18 ===
* (bug 26339) Throw warning when truncating an overlarge API result
diff --git a/includes/Linker.php b/includes/Linker.php
index 568ac61bcf..08415171da 100644
--- a/includes/Linker.php
+++ b/includes/Linker.php
@@ -686,10 +686,10 @@ class Linker {
* Make a "broken" link to an image
*
* @param $title Title object
- * @param $text String: link label
+ * @param $text String: link label in unescaped text form
* @param $query String: query string
- * @param $trail String: link trail
- * @param $prefix String: link prefix
+ * @param $trail String: link trail (HTML fragment)
+ * @param $prefix String: link prefix (HTML fragment)
* @param $time Boolean: a file of a certain timestamp was requested
* @return String
*/
@@ -716,7 +716,7 @@ class Linker {
wfProfileOut( __METHOD__ );
return '' .
- htmlspecialchars( $prefix . $text . $inside, ENT_NOQUOTES ) . '' . $trail;
+ "$prefix$text$inside$trail";
} else {
wfProfileOut( __METHOD__ );
return $this->linkKnown( $title, "$prefix$text$inside", array(), $query ) . $trail;
diff --git a/tests/parser/parserTests.txt b/tests/parser/parserTests.txt
index a66f738078..c5063dc3e9 100644
--- a/tests/parser/parserTests.txt
+++ b/tests/parser/parserTests.txt
@@ -8422,6 +8422,28 @@ percent-encoding and + signs in internal links (Bug 26410)
!! end
+!! test
+Special characters in embedded file links (bug 27679)
+!! input
+[[File:Contains & ampersand.jpg]]
+[[File:Does not exist.jpg|Title with & ampersand]]
+!! result
+File:Contains & ampersand.jpg
+Title with & ampersand
+
+!! end
+
+!! test
+Special characters in embedded file links (bug 27679)
+!! input
+[[File:Contains & ampersand.jpg]]
+[[File:Does not exist.jpg|Title with & ampersand]]
+!! result
+File:Contains & ampersand.jpg
+Title with & ampersand
+
+!! end
+
TODO:
more images
more tables