Anomie has uploaded a new change for review.
https://gerrit.wikimedia.org/r/54508
Change subject: Fix WDDX formatted output
......................................................................
Fix WDDX formatted output
WDDX formatted output was blowing up if a boolean crept into the result
data.
Also, the tests for "isHtml" were backwards, so it was inserting the
whitespaces for the unformatted output and leaving them out for the
formatted output.
Change-Id: I719d84c59cf25e5de6fcd6e914a50e4ba8938899
---
M RELEASE-NOTES-1.21
M includes/api/ApiFormatWddx.php
2 files changed, 10 insertions(+), 4 deletions(-)
git pull ssh://gerrit.wikimedia.org:29418/mediawiki/core
refs/changes/08/54508/1
diff --git a/RELEASE-NOTES-1.21 b/RELEASE-NOTES-1.21
index 295eb7b..fce42ff 100644
--- a/RELEASE-NOTES-1.21
+++ b/RELEASE-NOTES-1.21
@@ -205,6 +205,8 @@
* (bug 45143) jquery.badge: Treat non-Latin variants of zero as zero as well.
* (bug 46151) mwdocgen.php should not ignore exit code of doxygen command.
* (bug 41889) Fix $.tablesorter rowspan exploding for complex cases.
+* WDDX formatted output will actually be formatted (and normal output will no
+ longer be), and will no longer choke on booleans.
=== API changes in 1.21 ===
* prop=revisions can now report the contentmodel and contentformat.
diff --git a/includes/api/ApiFormatWddx.php b/includes/api/ApiFormatWddx.php
index 884a1dc..5685d93 100644
--- a/includes/api/ApiFormatWddx.php
+++ b/includes/api/ApiFormatWddx.php
@@ -46,7 +46,7 @@
} else {
// Don't do newlines and indentation if we weren't asked
// for pretty output
- $nl = ( $this->getIsHtml() ? '' : "\n" );
+ $nl = ( $this->getIsHtml() ? "\n" : '' );
$indstr = ' ';
$this->printText( "<?xml version=\"1.0\"?>$nl" );
$this->printText( "<wddxPacket version=\"1.0\">$nl" );
@@ -64,9 +64,9 @@
* @param $indent int
*/
function slowWddxPrinter( $elemValue, $indent = 0 ) {
- $indstr = ( $this->getIsHtml() ? '' : str_repeat( ' ', $indent
) );
- $indstr2 = ( $this->getIsHtml() ? '' : str_repeat( ' ', $indent
+ 2 ) );
- $nl = ( $this->getIsHtml() ? '' : "\n" );
+ $indstr = ( $this->getIsHtml() ? str_repeat( ' ', $indent ) :
'' );
+ $indstr2 = ( $this->getIsHtml() ? str_repeat( ' ', $indent + 2
) : '' );
+ $nl = ( $this->getIsHtml() ? "\n" : '' );
if ( is_array( $elemValue ) ) {
// Check whether we've got an associative array
(<struct>)
// or a regular array (<array>)
@@ -95,6 +95,10 @@
$this->printText( $indstr . Xml::element( 'number',
null, $elemValue ) . $nl );
} elseif ( is_string( $elemValue ) ) {
$this->printText( $indstr . Xml::element( 'string',
null, $elemValue ) . $nl );
+ } elseif ( is_bool( $elemValue ) ) {
+ $this->printText( $indstr . Xml::element( 'boolean',
+ array( 'value' => $elemValue ? 'true' : 'false'
) ) . $nl
+ );
} else {
ApiBase::dieDebug( __METHOD__, 'Unknown type ' .
gettype( $elemValue ) );
}
--
To view, visit https://gerrit.wikimedia.org/r/54508
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: I719d84c59cf25e5de6fcd6e914a50e4ba8938899
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/core
Gerrit-Branch: master
Gerrit-Owner: Anomie <[email protected]>
Gerrit-Reviewer: Yurik <[email protected]>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits