Remove most named character references from output
authorAryeh Gregor <simetrical@users.mediawiki.org>
Sun, 30 May 2010 17:33:59 +0000 (17:33 +0000)
committerAryeh Gregor <simetrical@users.mediawiki.org>
Sun, 30 May 2010 17:33:59 +0000 (17:33 +0000)
Recommit of r66254 to trunk.  This was just

find extensions phase3 -iname '*.php' \! -iname '*.i18n.php' \! -iname 'Messages*.php' \! -iname '*_Messages.php' -exec sed -i 's/&nbsp;/\&#160;/g;s/&mdash;/―/g;s/&bull;/•/g;s/&aacute;/á/g;s/&acute;/´/g;s/&agrave;/à/g;s/&alpha;/α/g;s/&auml;/ä/g;s/&ccedil;/ç/g;s/&copy;/©/g;s/&darr;/↓/g;s/&deg;/°/g;s/&eacute;/é/g;s/&ecirc;/ê/g;s/&euml;/ë/g;s/&egrave;/è/g;s/&euro;/€/g;s/&harr;//g;s/&hellip;/…/g;s/&iacute;/í/g;s/&igrave;/ì/g;s/&larr;/←/g;s/&ldquo;/“/g;s/&middot;/·/g;s/&minus;/−/g;s/&ndash;/–/g;s/&oacute;/ó/g;s/&ocirc;/ô/g;s/&oelig;/œ/g;s/&ograve;/ò/g;s/&otilde;/õ/g;s/&ouml;/ö/g;s/&pound;/£/g;s/&prime;/′/g;s/&Prime;/″/g;s/&raquo;/»/g;s/&rarr;/→/g;s/&rdquo;/”/g;s/&Sigma;/Σ/g;s/&times;/×/g;s/&uacute;/ú/g;s/&uarr;/↑/g;s/&uuml;/ü/g;s/&yen;/¥/g' {} +

followed by reading over every single line of the resulting diff and
fixing a whole bunch of false positives.  The reason for this change is
given in <http://lists.wikimedia.org/pipermail/wikitech-l/2010-April/047617.html>.
I cleared it with Tim and Brion on IRC before committing.  It might
cause a few problems, but I tried to be careful; please report any
issues.

I skipped all messages files.  I plan to make a follow-up commit that
alters wfMsgExt() with 'escapenoentities' to sanitize all the entities.
That way, the only messages that will be problems will be ones that
output raw HTML, and we want to get rid of those anyway.

This should get rid of all named entities everywhere except messages.  I
skipped a few things like &nbsp that I noticed in manual inspection,
because they weren't well-formed XML anyway.

Also, to everyone who uses non-breaking spaces when they could use a
normal space, or nothing at all, or CSS padding: I still hate you.  Die.

41 files changed:
config/Installer.php
includes/Article.php
includes/ChangeTags.php
includes/ChangesList.php
includes/EditPage.php
includes/GlobalFunctions.php
includes/HTMLForm.php
includes/HistoryPage.php
includes/LogEventsList.php
includes/MessageCache.php
includes/Pager.php
includes/Preferences.php
includes/Sanitizer.php
includes/Skin.php
includes/Xml.php
includes/diff/DifferenceEngine.php
includes/diff/DifferenceInterface.php
includes/installer/WebInstaller.php
includes/parser/Parser.php
includes/specials/SpecialAllmessages.php
includes/specials/SpecialBlockip.php
includes/specials/SpecialBooksources.php
includes/specials/SpecialContributions.php
includes/specials/SpecialExport.php
includes/specials/SpecialIpblocklist.php
includes/specials/SpecialListusers.php
includes/specials/SpecialLockdb.php
includes/specials/SpecialMergeHistory.php
includes/specials/SpecialMovepage.php
includes/specials/SpecialProtectedpages.php
includes/specials/SpecialProtectedtitles.php
includes/specials/SpecialUndelete.php
includes/specials/SpecialUnlockdb.php
includes/specials/SpecialUpload.php
includes/specials/SpecialWatchlist.php
includes/specials/SpecialWhatlinkshere.php
includes/templates/Userlogin.php
languages/Language.php
profileinfo.php
skins/MonoBook.php
skins/Vector.php

index 069d806..66190dd 100644 (file)
@@ -1582,7 +1582,7 @@ if( count( $errs ) ) {
                <div class="config-input">
                        <label class="column">Superuser account:</label>
                        <input type="checkbox" name="useroot" id="useroot" <?php if( $useRoot ) { ?>checked="checked" <?php } ?> />
-                       &nbsp;<label for="useroot">Use superuser account</label>
+                       &#160;<label for="useroot">Use superuser account</label>
                </div>
                <div class="config-input"><?php aField( $conf, "RootUser", "Superuser name:", "text" ); ?></div>
                <div class="config-input"><?php aField( $conf, "RootPW", "Superuser password:", "password" ); ?></div>
@@ -1689,7 +1689,7 @@ if( count( $errs ) ) {
        </fieldset>
 
        <div class="config-input" style="padding:2em 0 3em">
-               <label class='column'>&nbsp;</label>
+               <label class='column'>&#160;</label>
                <input type="submit" value="Install MediaWiki!" class="btn-install" />
        </div>
 </div>
index aa5a997..5b56bd4 100644 (file)
@@ -1562,7 +1562,7 @@ class Article {
                $imageDir = $wgContLang->getDir();
                $imageUrl = $wgStylePath . '/common/images/redirect' . $imageDir . '.png';
                $imageUrl2 = $wgStylePath . '/common/images/nextredirect' . $imageDir . '.png';
-               $alt2 = $wgContLang->isRTL() ? '&larr;' : '&rarr;'; // should -> and <- be used instead of entities?
+               $alt2 = $wgContLang->isRTL() ? '←' : '→'; // should -> and <- be used instead of Unicode?
 
                if ( $appendSubtitle ) {
                        $wgOut->appendSubtitle( wfMsgHtml( 'redirectpagesub' ) );
index 8dce679..3589560 100644 (file)
@@ -168,7 +168,7 @@ class ChangeTags {
                        return $data;
                }
 
-               $html = implode( '&nbsp;', $data );
+               $html = implode( '&#160;', $data );
                $html .= "\n" . Xml::element( 'input', array( 'type' => 'submit', 'value' => wfMsg( 'tag-filter-submit' ) ) );
                $html .= "\n" . Xml::hidden( 'title', $wgTitle-> getPrefixedText() );
                $html = Xml::tags( 'form', array( 'action' => $wgTitle->getLocalURL(), 'method' => 'get' ), $html );
index 442d011..fe75bf0 100644 (file)
@@ -87,7 +87,7 @@ class ChangesList {
         * @param $bot Boolean
         * @return String
         */
-       protected function recentChangesFlags( $new, $minor, $patrolled, $nothing = '&nbsp;', $bot = false ) {
+       protected function recentChangesFlags( $new, $minor, $patrolled, $nothing = '&#160;', $bot = false ) {
                $f = $new ? self::flag( 'newpage' ) : $nothing;
                $f .= $minor ? self::flag( 'minor' ) : $nothing;
                $f .= $bot ? self::flag( 'bot' ) : $nothing;
@@ -843,13 +843,13 @@ class EnhancedChangesList extends ChangesList {
 
                $tl = "<span id='mw-rc-openarrow-$jsid' class='mw-changeslist-expanded' style='visibility:hidden'><a href='#' $toggleLink title='$expandTitle'>" . $this->sideArrow() . "</a></span>";
                $tl .= "<span id='mw-rc-closearrow-$jsid' class='mw-changeslist-hidden' style='display:none'><a href='#' $toggleLink title='$closeTitle'>" . $this->downArrow() . "</a></span>";
-               $r .= '<td class="mw-enhanced-rc">'.$tl.'&nbsp;';
+               $r .= '<td class="mw-enhanced-rc">'.$tl.'&#160;';
 
                # Main line
-               $r .= $this->recentChangesFlags( $isnew, false, $unpatrolled, '&nbsp;', $bot );
+               $r .= $this->recentChangesFlags( $isnew, false, $unpatrolled, '&#160;', $bot );
 
                # Timestamp
-               $r .= '&nbsp;'.$block[0]->timestamp.'&nbsp;</td><td style="padding:0px;">';
+               $r .= '&#160;'.$block[0]->timestamp.'&#160;</td><td style="padding:0px;">';
 
                # Article link
                if( $namehidden ) {
@@ -953,8 +953,8 @@ class EnhancedChangesList extends ChangesList {
                        #$r .= '<tr><td valign="top">'.$this->spacerArrow();
                        $r .= '<tr><td style="vertical-align:top;font-family:monospace; padding:0px;">';
                        $r .= $this->spacerIndent() . $this->spacerIndent();
-                       $r .= $this->recentChangesFlags( $rc_new, $rc_minor, $rcObj->unpatrolled, '&nbsp;', $rc_bot );
-                       $r .= '&nbsp;</td><td style="vertical-align:top; padding:0px;"><span style="font-family:monospace">';
+                       $r .= $this->recentChangesFlags( $rc_new, $rc_minor, $rcObj->unpatrolled, '&#160;', $rc_bot );
+                       $r .= '&#160;</td><td style="vertical-align:top; padding:0px;"><span style="font-family:monospace">';
 
                        $params = $queryParams;
 
@@ -1069,7 +1069,7 @@ class EnhancedChangesList extends ChangesList {
         * @return String: HTML <td> tag
         */
        protected function spacerIndent() {
-               return '&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;';
+               return '&#160;&#160;&#160;&#160;&#160;';
        }
 
        /**
@@ -1089,14 +1089,14 @@ class EnhancedChangesList extends ChangesList {
                $query['curid'] = $rc_cur_id;
 
                $r = '<table class="mw-enhanced-rc"><tr>';
-               $r .= '<td class="mw-enhanced-rc">' . $this->spacerArrow() . '&nbsp;';
+               $r .= '<td class="mw-enhanced-rc">' . $this->spacerArrow() . '&#160;';
                # Flag and Timestamp
                if( $rc_type == RC_MOVE || $rc_type == RC_MOVE_OVER_REDIRECT ) {
-                       $r .= '&nbsp;&nbsp;&nbsp;&nbsp;'; // 4 flags -> 4 spaces
+                       $r .= '&#160;&#160;&#160;&#160;'; // 4 flags -> 4 spaces
                } else {
-                       $r .= $this->recentChangesFlags( $rc_type == RC_NEW, $rc_minor, $rcObj->unpatrolled, '&nbsp;', $rc_bot );
+                       $r .= $this->recentChangesFlags( $rc_type == RC_NEW, $rc_minor, $rcObj->unpatrolled, '&#160;', $rc_bot );
                }
-               $r .= '&nbsp;'.$rcObj->timestamp.'&nbsp;</td><td style="padding:0px;">';
+               $r .= '&#160;'.$rcObj->timestamp.'&#160;</td><td style="padding:0px;">';
                # Article or log link
                if( $rc_log_type ) {
                        $logtitle = Title::newFromText( "Log/$rc_log_type", NS_SPECIAL );
index 1b91fe0..c909f49 100644 (file)
@@ -2280,7 +2280,7 @@ INPUTS
                        );
                        $checkboxes['minor'] =
                                Xml::check( 'wpMinoredit', $checked['minor'], $attribs ) .
-                               "&nbsp;<label for='wpMinoredit'" . $skin->tooltip( 'minoredit', 'withaccess' ) . ">{$minorLabel}</label>";
+                               "&#160;<label for='wpMinoredit'" . $skin->tooltip( 'minoredit', 'withaccess' ) . ">{$minorLabel}</label>";
                }
 
                $watchLabel = wfMsgExt( 'watchthis', array( 'parseinline' ) );
@@ -2293,7 +2293,7 @@ INPUTS
                        );
                        $checkboxes['watch'] =
                                Xml::check( 'wpWatchthis', $checked['watch'], $attribs ) .
-                               "&nbsp;<label for='wpWatchthis'" . $skin->tooltip( 'watch', 'withaccess' ) . ">{$watchLabel}</label>";
+                               "&#160;<label for='wpWatchthis'" . $skin->tooltip( 'watch', 'withaccess' ) . ">{$watchLabel}</label>";
                }
                wfRunHooks( 'EditPageBeforeEditChecks', array( &$this, &$checkboxes, &$tabindex ) );
                return $checkboxes;
index 31c5f88..005fb8e 100644 (file)
@@ -795,7 +795,7 @@ function wfMsgWikiHtml( $key ) {
  *   <i>parseinline</i>: parses wikitext to html and removes the surrounding
  *       p's added by parser or tidy
  *   <i>escape</i>: filters message through htmlspecialchars
- *   <i>escapenoentities</i>: same, but allows entity references like &nbsp; through
+ *   <i>escapenoentities</i>: same, but allows entity references like &#160; through
  *   <i>replaceafter</i>: parameters are substituted after parsing or escaping
  *   <i>parsemag</i>: transform the message using magic phrases
  *   <i>content</i>: fetch message for content language instead of interface
index 78c3794..b5472ac 100644 (file)
@@ -587,7 +587,7 @@ class HTMLForm {
                                        : $value->getDefault();
                                $tableHtml .= $value->getTableRow( $v );
 
-                               if ( $value->getLabel() != '&nbsp;' )
+                               if ( $value->getLabel() != '&#160;' )
                                        $hasLeftColumn = true;
                        } elseif ( is_array( $value ) ) {
                                $section = $this->displaySection( $value, $key );
@@ -1133,7 +1133,7 @@ class HTMLCheckField extends HTMLFormField {
                        $attr['disabled'] = 'disabled';
                }
 
-               return Xml::check( $this->mName, $value, $attr ) . '&nbsp;' .
+               return Xml::check( $this->mName, $value, $attr ) . '&#160;' .
                        Html::rawElement( 'label', array( 'for' => $this->mID ), $this->mLabel );
        }
 
@@ -1142,7 +1142,7 @@ class HTMLCheckField extends HTMLFormField {
         * added in getInputHTML(), rather than HTMLFormField::getRow()
         */
        function getLabel() {
-               return '&nbsp;';
+               return '&#160;';
        }
 
        function loadDataFromRequest( $request ) {
@@ -1333,7 +1333,7 @@ class HTMLMultiSelectField extends HTMLFormField {
 
                                $checkbox = Xml::check( $this->mName . '[]', in_array( $info, $value, true ),
                                                                $attribs + $thisAttribs );
-                               $checkbox .= '&nbsp;' . Html::rawElement( 'label', array( 'for' => $this->mID . "-$info" ), $label );
+                               $checkbox .= '&#160;' . Html::rawElement( 'label', array( 'for' => $this->mID . "-$info" ), $label );
 
                                $html .= $checkbox . '<br />';
                        }
@@ -1425,7 +1425,7 @@ class HTMLRadioField extends HTMLFormField {
                                        $info == $value,
                                        $attribs + array( 'id' => $id )
                                );
-                               $html .= '&nbsp;' .
+                               $html .= '&#160;' .
                                                Html::rawElement( 'label', array( 'for' => $id ), $label );
 
                                $html .= "<br />\n";
index d80356a..a62d9a1 100644 (file)
@@ -148,8 +148,8 @@ class HistoryPage {
                        ) .
                        Xml::hidden( 'title', $this->title->getPrefixedDBKey() ) . "\n" .
                        Xml::hidden( 'action', 'history' ) . "\n" .
-                       Xml::dateMenu( $year, $month ) . '&nbsp;' .
-                       ( $tagSelector ? ( implode( '&nbsp;', $tagSelector ) . '&nbsp;' ) : '' ) .
+                       Xml::dateMenu( $year, $month ) . '&#160;' .
+                       ( $tagSelector ? ( implode( '&#160;', $tagSelector ) . '&#160;' ) : '' ) .
                        $checkDeleted .
                        Xml::submitButton( wfMsg( 'allpagessubmit' ) ) . "\n" .
                        '</fieldset></form>'
index 2c7939f..bfbbfa8 100644 (file)
@@ -107,7 +107,7 @@ class LogEventsList {
 
                // Tag filter
                if ($tagSelector) {
-                       $html .= Xml::tags( 'p', null, implode( '&nbsp;', $tagSelector ) );
+                       $html .= Xml::tags( 'p', null, implode( '&#160;', $tagSelector ) );
                }
 
                // Filter links
index 79d9e14..fa88fcf 100644 (file)
@@ -569,6 +569,7 @@ class MessageCache {
                                '&#32;' => ' ',
                                # Fix for NBSP, converted to space by firefox
                                '&nbsp;' => "\xc2\xa0",
+                               '&#160;' => "\xc2\xa0",
                        ) );
 
                return $message;
index a84cbad..a381fd7 100644 (file)
@@ -817,7 +817,7 @@ abstract class TablePager extends IndexPager {
                # Make table header
                foreach ( $fields as $field => $name ) {
                        if ( strval( $name ) == '' ) {
-                               $s .= "<th>&nbsp;</th>\n";
+                               $s .= "<th>&#160;</th>\n";
                        } elseif ( $this->isFieldSortable( $field ) ) {
                                $query = array( 'sort' => $field, 'limit' => $this->mLimit );
                                if ( $field == $this->mSort ) {
@@ -870,7 +870,7 @@ abstract class TablePager extends IndexPager {
                        $value = isset( $row->$field ) ? $row->$field : null;
                        $formatted = strval( $this->formatValue( $field, $value ) );
                        if ( $formatted == '' ) {
-                               $formatted = '&nbsp;';
+                               $formatted = '&#160;';
                        }
                        $s .= Xml::tags( 'td', $this->getCellAttrs( $field, $value ), $formatted );
                }
@@ -1061,7 +1061,7 @@ abstract class TablePager extends IndexPager {
 
        /**
         * Format a table cell. The return value should be HTML, but use an empty
-        * string not &nbsp; for empty cells. Do not include the <td> and </td>.
+        * string not &#160; for empty cells. Do not include the <td> and </td>.
         *
         * The current result row is available as $this->mCurrentRow, in case you
         * need more context.
index 502af4e..802db5a 100644 (file)
@@ -436,7 +436,7 @@ class Preferences {
                $defaultPreferences['skin'] = array(
                        'type' => 'radio',
                        'options' => self::generateSkinOptions( $user ),
-                       'label' => '&nbsp;',
+                       'label' => '&#160;',
                        'section' => 'rendering/skin',
                );
 
@@ -488,7 +488,7 @@ class Preferences {
                        $defaultPreferences['math'] = array(
                                'type' => 'radio',
                                'options' => array_flip( array_map( 'wfMsgHtml', $wgLang->getMathNames() ) ),
-                               'label' => '&nbsp;',
+                               'label' => '&#160;',
                                'section' => 'rendering/math',
                        );
                }
@@ -519,7 +519,7 @@ class Preferences {
                        $defaultPreferences['date'] = array(
                                'type' => 'radio',
                                'options' => $dateOptions,
-                               'label' => '&nbsp;',
+                               'label' => '&#160;',
                                'section' => 'datetime/dateformat',
                        );
                }
index dd9318c..b422c4e 100644 (file)
@@ -966,7 +966,7 @@ class Sanitizer {
 
        /**
         * Given HTML input, escape with htmlspecialchars but un-escape entites.
-        * This allows (generally harmless) entities like &nbsp; to survive.
+        * This allows (generally harmless) entities like &#160; to survive.
         *
         * @param $html String to escape
         * @return String: escaped input
index 605b2c4..0140d86 100644 (file)
@@ -875,7 +875,7 @@ CSS;
        }
 
        function getQuickbarCompensator( $rows = 1 ) {
-               return "<td width='152' rowspan='{$rows}'>&nbsp;</td>";
+               return "<td width='152' rowspan='{$rows}'>&#160;</td>";
        }
 
        /**
@@ -1275,7 +1275,7 @@ CSS;
                  . '<input type="submit" name="go" value="' . wfMsg( 'searcharticle' ) . '" />';
 
                if( $wgUseTwoButtonsSearchForm ) {
-                       $s .= '&nbsp;<input type="submit" name="fulltext" value="' . wfMsg( 'searchbutton' ) . "\" />\n";
+                       $s .= '&#160;<input type="submit" name="fulltext" value="' . wfMsg( 'searchbutton' ) . "\" />\n";
                } else {
                        $s .= ' <a href="' . $this->escapeSearchLink() . '" rel="search">' . wfMsg( 'powersearch-legend' ) . "</a>\n";
                }
index a20c6ca..d3dc5ab 100644 (file)
@@ -147,7 +147,7 @@ class Xml {
                        . "\n"
                        . Xml::closeElement( 'select' );
                if ( !is_null( $label ) ) {
-                       $ret = Xml::label( $label, $element_name ) . '&nbsp;' . $ret;
+                       $ret = Xml::label( $label, $element_name ) . '&#160;' . $ret;
                }
                return $ret;
        }
@@ -368,7 +368,7 @@ class Xml {
         */
        public static function inputLabel( $label, $name, $id, $size=false, $value=false, $attribs=array() ) {
                list( $label, $input ) = self::inputLabelSep( $label, $name, $id, $size, $value, $attribs );
-               return $label . '&nbsp;' . $input;
+               return $label . '&#160;' . $input;
        }
 
        /**
@@ -387,7 +387,7 @@ class Xml {
         */
        public static function checkLabel( $label, $name, $id, $checked=false, $attribs=array() ) {
                return self::check( $name, $checked, array( 'id' => $id ) + $attribs ) .
-                       '&nbsp;' .
+                       '&#160;' .
                        self::label( $label, $id, $attribs );
        }
 
@@ -397,7 +397,7 @@ class Xml {
         */
        public static function radioLabel( $label, $name, $value, $id, $checked=false, $attribs=array() ) {
                return self::radio( $name, $value, $checked, array( 'id' => $id ) + $attribs ) .
-                       '&nbsp;' .
+                       '&#160;' .
                        self::label( $label, $id, $attribs );
        }
 
index b13c726..3364531 100644 (file)
@@ -1141,9 +1141,9 @@ class TableDiffFormatter extends DiffFormatter {
        }
 
        public static function escapeWhiteSpace( $msg ) {
-               $msg = preg_replace( '/^ /m', '&nbsp; ', $msg );
-               $msg = preg_replace( '/ $/m', ' &nbsp;', $msg );
-               $msg = preg_replace( '/  /', '&nbsp; ', $msg );
+               $msg = preg_replace( '/^ /m', '&#160; ', $msg );
+               $msg = preg_replace( '/ $/m', ' &#160;', $msg );
+               $msg = preg_replace( '/  /', '&#160; ', $msg );
                return $msg;
        }
 
@@ -1187,7 +1187,7 @@ class TableDiffFormatter extends DiffFormatter {
        }
 
        function emptyLine() {
-               return '<td colspan="2">&nbsp;</td>';
+               return '<td colspan="2">&#160;</td>';
        }
 
        function _added( $lines ) {
index ed256e9..3ec9d40 100644 (file)
@@ -199,7 +199,7 @@ CONTROL;
                // Check if page is editable
                $editable = $this->mNewRev->getTitle()->userCan( 'edit' );
                if ( $editable && $this->mNewRev->isCurrent() && $wgUser->isAllowed( 'rollback' ) ) {
-                       $rollback = '&nbsp;&nbsp;&nbsp;' . $sk->generateRollback( $this->mNewRev );
+                       $rollback = '&#160;&#160;&#160;' . $sk->generateRollback( $this->mNewRev );
                } else {
                        $rollback = '';
                }
@@ -286,7 +286,7 @@ CONTROL;
                $query['oldid'] = $this->mNewid;
                # Skip next link on the top revision
                if( $this->mNewRev->isCurrent() ) {
-                       $nextlink = '&nbsp;';
+                       $nextlink = '&#160;';
                } else {
                        $nextlink = $sk->link(
                                $this->mTitle,
@@ -401,7 +401,7 @@ CONTROL;
                                $link = $sk->revDeleteLink( $query,
                                        $rev->isDeleted( Revision::DELETED_RESTRICTED ), $canHide );
                        }
-                       $link = '&nbsp;&nbsp;&nbsp;' . $link . ' ';
+                       $link = '&#160;&#160;&#160;' . $link . ' ';
                }
                return $link;
        }
index 0edd735..44c5b52 100644 (file)
@@ -550,7 +550,7 @@ class WebInstaller extends Installer {
         */
        function label( $msg, $forId, $contents ) {
                if ( strval( $msg ) == '' ) {
-                       $labelText = '&nbsp;';
+                       $labelText = '&#160;';
                } else {
                        $labelText = wfMsgHtml( $msg );
                }
@@ -717,7 +717,7 @@ class WebInstaller extends Installer {
                        $s .=
                                '<li>' .
                                Xml::radio( $params['controlName'], $value, $checked, $itemAttribs ) .
-                               '&nbsp;' .
+                               '&#160;' .
                                Xml::tags( 'label', array( 'for' => $id ), $this->parse(
                                        wfMsgNoTrans( $params['itemLabelPrefix'] . strtolower( $value ) )
                                ) ) .
@@ -1492,7 +1492,7 @@ class WebInstaller_Options extends WebInstallerPage {
                return
                        '<p>'.
                        Xml::element( 'img', array( 'src' => $this->getVar( 'wgRightsIcon' ) ) ) .
-                       '&nbsp;&nbsp;' .
+                       '&#160;&#160;' .
                        htmlspecialchars( $this->getVar( 'wgRightsText' ) ) .
                        "</p>\n" .
                        "<p style=\"text-align: center\">" .
@@ -1725,6 +1725,6 @@ class WebInstaller_Copying extends WebInstaller_Document {
        }
 
        private static function replaceLeadingSpaces( $matches ) {
-               return "\n" . str_repeat( '&nbsp;', strlen( $matches[0] ) );
+               return "\n" . str_repeat( '&#160;', strlen( $matches[0] ) );
        }
 }
index cd32813..63b3b41 100644 (file)
@@ -333,10 +333,10 @@ class Parser {
                $fixtags = array(
                        # french spaces, last one Guillemet-left
                        # only if there is something before the space
-                       '/(.) (?=\\?|:|;|!|%|\\302\\273)/' => '\\1&nbsp;\\2',
+                       '/(.) (?=\\?|:|;|!|%|\\302\\273)/' => '\\1&#160;\\2',
                        # french spaces, Guillemet-right
-                       '/(\\302\\253) /' => '\\1&nbsp;',
-                       '/&nbsp;(!\s*important)/' => ' \\1', # Beware of CSS magic word !important, bug #11874.
+                       '/(\\302\\253) /' => '\\1&#160;',
+                       '/&#160;(!\s*important)/' => ' \\1', # Beware of CSS magic word !important, bug #11874.
                );
                $text = preg_replace( array_keys( $fixtags ), array_values( $fixtags ), $text );
 
@@ -1366,7 +1366,7 @@ class Parser {
 
                        # Use the encoded URL
                        # This means that users can paste URLs directly into the text
-                       # Funny characters like &ouml; aren't valid in URLs anyway
+                       # Funny characters like ö aren't valid in URLs anyway
                        # This was changed in August 2004
                        $s .= $sk->makeExternalLink( $url, $text, false, $linktype,
                                $this->getExternalLinkAttribs( $url ) ) . $dtrail . $trail;
index 57debc0..3c92292 100644 (file)
@@ -327,7 +327,7 @@ class AllmessagesTablePager extends TablePager {
                        $s .= Xml::openElement( 'tr', $this->getRowAttrs( $row, true ) );
                        $formatted = strval( $this->formatValue( 'am_actual', $row->am_actual ) );
                        if ( $formatted == '' ) {
-                               $formatted = '&nbsp;';
+                               $formatted = '&#160;';
                        }
                        $s .= Xml::tags( 'td', $this->getCellAttrs( 'am_actual', $row->am_actual ), $formatted )
                                . "</tr>\n";
index 8acc9b5..c04502d 100644 (file)
@@ -250,7 +250,7 @@ class IPBlockForm {
                                </td>
                        </tr>
                        <tr id='wpAnonOnlyRow'>
-                               <td>&nbsp;</td>
+                               <td>&#160;</td>
                                <td class='mw-input'>" .
                                Xml::checkLabel( wfMsg( 'ipbanononly' ),
                                                'wpAnonOnly', 'wpAnonOnly', $this->BlockAnonOnly,
@@ -258,7 +258,7 @@ class IPBlockForm {
                                </td>
                        </tr>
                        <tr id='wpCreateAccountRow'>
-                               <td>&nbsp;</td>
+                               <td>&#160;</td>
                                <td class='mw-input'>" .
                                        Xml::checkLabel( wfMsg( 'ipbcreateaccount' ),
                                                'wpCreateAccount', 'wpCreateAccount', $this->BlockCreateAccount,
@@ -266,7 +266,7 @@ class IPBlockForm {
                                </td>
                        </tr>
                        <tr id='wpEnableAutoblockRow'>
-                               <td>&nbsp;</td>
+                               <td>&#160;</td>
                                <td class='mw-input'>" .
                                        Xml::checkLabel( wfMsg( 'ipbenableautoblock' ),
                                                'wpEnableAutoblock', 'wpEnableAutoblock', $this->BlockEnableAutoblock,
@@ -278,7 +278,7 @@ class IPBlockForm {
                if( self::canBlockEmail( $wgUser ) ) {
                        $wgOut->addHTML("
                                <tr id='wpEnableEmailBan'>
-                                       <td>&nbsp;</td>
+                                       <td>&#160;</td>
                                        <td class='mw-input'>" .
                                                Xml::checkLabel( wfMsg( 'ipbemailban' ),
                                                        'wpEmailBan', 'wpEmailBan', $this->BlockEmail,
@@ -292,7 +292,7 @@ class IPBlockForm {
                if( $wgUser->isAllowed( 'hideuser' ) ) {
                        $wgOut->addHTML("
                                <tr id='wpEnableHideUser'>
-                                       <td>&nbsp;</td>
+                                       <td>&#160;</td>
                                        <td class='mw-input'><strong>" .
                                                Xml::checkLabel( wfMsg( 'ipbhidename' ),
                                                        'wpHideName', 'wpHideName', $this->BlockHideName,
@@ -307,7 +307,7 @@ class IPBlockForm {
                if( $wgUser->isLoggedIn() ) {
                        $wgOut->addHTML("
                        <tr id='wpEnableWatchUser'>
-                               <td>&nbsp;</td>
+                               <td>&#160;</td>
                                <td class='mw-input'>" .
                                        Xml::checkLabel( wfMsg( 'ipbwatchuser' ),
                                                'wpWatchUser', 'wpWatchUser', $this->BlockWatchUser,
@@ -322,7 +322,7 @@ class IPBlockForm {
                if( $wgBlockAllowsUTEdit ){
                        $wgOut->addHTML("
                                <tr id='wpAllowUsertalkRow'>
-                                       <td>&nbsp;</td>
+                                       <td>&#160;</td>
                                        <td class='mw-input'>" .
                                                Xml::checkLabel( wfMsg( 'ipballowusertalk' ),
                                                        'wpAllowUsertalk', 'wpAllowUsertalk', $this->BlockAllowUsertalk,
@@ -334,7 +334,7 @@ class IPBlockForm {
 
                $wgOut->addHTML("
                        <tr>
-                               <td style='padding-top: 1em'>&nbsp;</td>
+                               <td style='padding-top: 1em'>&#160;</td>
                                <td  class='mw-submit' style='padding-top: 1em'>" .
                                        Xml::submitButton( wfMsg( $alreadyBlocked ? 'ipb-change-block' : 'ipbsubmit' ),
                                                array( 'name' => 'wpBlock', 'tabindex' => '13', 'accesskey' => 's' ) ) . "
index 94cfc8a..7733a0d 100644 (file)
@@ -101,7 +101,7 @@ class SpecialBookSources extends SpecialPage {
                $form .= Xml::openElement( 'form', array( 'method' => 'get', 'action' => $wgScript ) );
                $form .= Xml::hidden( 'title', $title->getPrefixedText() );
                $form .= '<p>' . Xml::inputLabel( wfMsg( 'booksources-isbn' ), 'isbn', 'isbn', 20, $this->isbn );
-               $form .= '&nbsp;' . Xml::submitButton( wfMsg( 'booksources-go' ) ) . '</p>';
+               $form .= '&#160;' . Xml::submitButton( wfMsg( 'booksources-go' ) ) . '</p>';
                $form .= Xml::closeElement( 'form' );
                $form .= '</fieldset>';
                return $form;
index 444fd32..c667821 100644 (file)
@@ -327,7 +327,7 @@ class SpecialContributions extends SpecialPage {
                        '</span>' .
                        Xml::checkLabel( wfMsg( 'history-show-deleted' ),
                                'deletedOnly', 'mw-show-deleted-only', $this->opts['deletedOnly'] ) . 
-                       ( $tagFilter ? Xml::tags( 'p', null, implode( '&nbsp;', $tagFilter ) ) : '' ) .
+                       ( $tagFilter ? Xml::tags( 'p', null, implode( '&#160;', $tagFilter ) ) : '' ) .
                        Xml::openElement( 'p' ) .
                        '<span style="white-space: nowrap">' .
                        Xml::dateMenu( $this->opts['year'], $this->opts['month'] ) .
index 08819f2..3559dde 100644 (file)
@@ -148,11 +148,11 @@ class SpecialExport extends SpecialPage {
 
                $form = Xml::openElement( 'form', array( 'method' => 'post',
                        'action' => $this->getTitle()->getLocalUrl( 'action=submit' ) ) );
-               $form .= Xml::inputLabel( wfMsg( 'export-addcattext' )    , 'catname', 'catname', 40 ) . '&nbsp;';
+               $form .= Xml::inputLabel( wfMsg( 'export-addcattext' )    , 'catname', 'catname', 40 ) . '&#160;';
                $form .= Xml::submitButton( wfMsg( 'export-addcat' ), array( 'name' => 'addcat' ) ) . '<br />';
 
                if ( $wgExportFromNamespaces ) {
-                       $form .= Xml::namespaceSelector( $nsindex, null, 'nsindex', wfMsg( 'export-addnstext' ) ) . '&nbsp;';
+                       $form .= Xml::namespaceSelector( $nsindex, null, 'nsindex', wfMsg( 'export-addnstext' ) ) . '&#160;';
                        $form .= Xml::submitButton( wfMsg( 'export-addns' ), array( 'name' => 'addns' ) ) . '<br />';
                }
 
index ccb2899..a35ce19 100644 (file)
@@ -149,7 +149,7 @@ class IPUnblockForm {
                                "</td>
                        </tr>
                        <tr>
-                               <td>&nbsp;</td>
+                               <td>&#160;</td>
                                <td class='mw-submit'>" .
                                        Xml::submitButton( wfMsg( 'ipusubmit' ), array( 'name' => 'wpBlock', 'tabindex' => '3' ) ) .
                                "</td>
@@ -382,7 +382,7 @@ class IPUnblockForm {
                                Xml::openElement( 'fieldset' ) .
                                Xml::element( 'legend', null, wfMsg( 'ipblocklist-legend' ) ) .
                                Xml::inputLabel( wfMsg( 'ipblocklist-username' ), 'ip', 'ip', /* size */ false, $this->ip ) .
-                               '&nbsp;' .
+                               '&#160;' .
                                Xml::submitButton( wfMsg( 'ipblocklist-submit' ) ) . '<br />' .
                                $hl .
                                Xml::closeElement( 'fieldset' )
index 0ccd44b..6c142ac 100644 (file)
@@ -198,7 +198,7 @@ class UsersPager extends AlphabeticPager {
                        $out .= Xml::option( $groupText, $group, $group == $this->requestedGroup );
                $out .= Xml::closeElement( 'select' ) . '<br />';
                $out .= Xml::checkLabel( wfMsg('listusers-editsonly'), 'editsOnly', 'editsOnly', $this->editsOnly );
-               $out .= '&nbsp;';
+               $out .= '&#160;';
                $out .= Xml::checkLabel( wfMsg('listusers-creationsort'), 'creationSort', 'creationSort', $this->creationSort );
                $out .= '<br />';
 
index 8c701dd..6edd4ca 100644 (file)
@@ -77,7 +77,7 @@ class DBLockForm {
                <td align="left">{$lc}</td>
        </tr>
        <tr>
-               <td>&nbsp;</td>
+               <td>&#160;</td>
                <td align="left">
                        <input type="submit" name="wpLock" value="{$lb}" />
                </td>
index 275690a..95464a0 100644 (file)
@@ -174,7 +174,7 @@ class SpecialMergeHistory extends SpecialPage {
                                                "</td>
                                        </tr>
                                        <tr>
-                                               <td>&nbsp;</td>
+                                               <td>&#160;</td>
                                                <td class='mw-submit'>" .
                                                        Xml::submitButton( wfMsg( 'mergehistory-submit' ), array( 'name' => 'merge', 'id' => 'mw-merge-submit' ) ) .
                                                "</td>
index 9b480bb..4bca88e 100644 (file)
@@ -277,7 +277,7 @@ class MovePageForm {
                                        # move and we aren't moving the talk page.
                                        $this->moveSubpages && ($this->oldTitle->hasSubpages() || $this->moveTalk),
                                        array( 'id' => 'wpMovesubpages' )
-                               ) . '&nbsp;' .
+                               ) . '&#160;' .
                                Xml::tags( 'label', array( 'for' => 'wpMovesubpages' ),
                                        wfMsgExt(
                                                ( $this->oldTitle->hasSubpages()
@@ -310,7 +310,7 @@ class MovePageForm {
                $wgOut->addHTML( "      
                                {$confirm}
                        <tr>
-                               <td>&nbsp;</td>
+                               <td>&#160;</td>
                                <td class='mw-submit'>" .
                                        Xml::submitButton( $movepagebtn, array( 'name' => $submitVar ) ) .
                                "</td>
index 61a82cf..59a34e5 100644 (file)
@@ -139,16 +139,16 @@ class ProtectedPagesForm {
                        Xml::openElement( 'fieldset' ) .
                        Xml::element( 'legend', array(), wfMsg( 'protectedpages' ) ) .
                        Xml::hidden( 'title', $title->getPrefixedDBkey() ) . "\n" .
-                       $this->getNamespaceMenu( $namespace ) . "&nbsp;\n" .
-                       $this->getTypeMenu( $type ) . "&nbsp;\n" .
-                       $this->getLevelMenu( $level ) . "&nbsp;\n" .
+                       $this->getNamespaceMenu( $namespace ) . "&#160;\n" .
+                       $this->getTypeMenu( $type ) . "&#160;\n" .
+                       $this->getLevelMenu( $level ) . "&#160;\n" .
                        "<br /><span style='white-space: nowrap'>" .
-                       $this->getExpiryCheck( $indefOnly ) . "&nbsp;\n" .
-                       $this->getCascadeCheck( $cascadeOnly ) . "&nbsp;\n" .
+                       $this->getExpiryCheck( $indefOnly ) . "&#160;\n" .
+                       $this->getCascadeCheck( $cascadeOnly ) . "&#160;\n" .
                        "</span><br /><span style='white-space: nowrap'>" .
-                       $this->getSizeLimit( $sizetype, $size ) . "&nbsp;\n" .
+                       $this->getSizeLimit( $sizetype, $size ) . "&#160;\n" .
                        "</span>" .
-                       "&nbsp;" . Xml::submitButton( wfMsg( 'allpagessubmit' ) ) . "\n" .
+                       "&#160;" . Xml::submitButton( wfMsg( 'allpagessubmit' ) ) . "\n" .
                        Xml::closeElement( 'fieldset' ) .
                        Xml::closeElement( 'form' );
        }
@@ -162,7 +162,7 @@ class ProtectedPagesForm {
         */
        protected function getNamespaceMenu( $namespace = null ) {
                return "<span style='white-space: nowrap'>" .
-                       Xml::label( wfMsg( 'namespace' ), 'namespace' ) . '&nbsp;'
+                       Xml::label( wfMsg( 'namespace' ), 'namespace' ) . '&#160;'
                        . Xml::namespaceSelector( $namespace, '' ) . "</span>";
        }
 
@@ -190,11 +190,11 @@ class ProtectedPagesForm {
 
                return
                        Xml::radioLabel( wfMsg('minimum-size'), 'sizetype', 'min', 'wpmin', !$max ) .
-                       '&nbsp;' .
+                       '&#160;' .
                        Xml::radioLabel( wfMsg('maximum-size'), 'sizetype', 'max', 'wpmax', $max ) .
-                       '&nbsp;' .
+                       '&#160;' .
                        Xml::input( 'size', 9, $size, array( 'id' => 'wpsize' ) ) .
-                       '&nbsp;' .
+                       '&#160;' .
                        Xml::label( wfMsg('pagesize'), 'wpsize' );
        }
 
@@ -222,7 +222,7 @@ class ProtectedPagesForm {
                }
 
                return "<span style='white-space: nowrap'>" .
-                       Xml::label( wfMsg('restriction-type') , $this->IdType ) . '&nbsp;' .
+                       Xml::label( wfMsg('restriction-type') , $this->IdType ) . '&#160;' .
                        Xml::tags( 'select',
                                array( 'id' => $this->IdType, 'name' => $this->IdType ),
                                implode( "\n", $options ) ) . "</span>";
index 19a490c..f6608fb 100644 (file)
@@ -100,10 +100,10 @@ class ProtectedTitlesForm {
                return "<form action=\"$action\" method=\"get\">\n" .
                        '<fieldset>' .
                        Xml::element( 'legend', array(), wfMsg( 'protectedtitles' ) ) .
-                       Xml::hidden( 'title', $special ) . "&nbsp;\n" .
-                       $this->getNamespaceMenu( $namespace ) . "&nbsp;\n" .
-                       $this->getLevelMenu( $level ) . "&nbsp;\n" .
-                       "&nbsp;" . Xml::submitButton( wfMsg( 'allpagessubmit' ) ) . "\n" .
+                       Xml::hidden( 'title', $special ) . "&#160;\n" .
+                       $this->getNamespaceMenu( $namespace ) . "&#160;\n" .
+                       $this->getLevelMenu( $level ) . "&#160;\n" .
+                       "&#160;" . Xml::submitButton( wfMsg( 'allpagessubmit' ) ) . "\n" .
                        "</fieldset></form>";
        }
 
@@ -116,7 +116,7 @@ class ProtectedTitlesForm {
         */
        function getNamespaceMenu( $namespace = null ) {
                return Xml::label( wfMsg( 'namespace' ), 'namespace' )
-                       . '&nbsp;'
+                       . '&#160;'
                        . Xml::namespaceSelector( $namespace, '' );
        }
 
@@ -148,7 +148,7 @@ class ProtectedTitlesForm {
                }
 
                return
-                       Xml::label( wfMsg('restriction-level') , $this->IdLevel ) . '&nbsp;' .
+                       Xml::label( wfMsg('restriction-level') , $this->IdLevel ) . '&#160;' .
                        Xml::tags( 'select',
                                array( 'id' => $this->IdLevel, 'name' => $this->IdLevel ),
                                implode( "\n", $options ) );
index 87c1921..4e5578d 100644 (file)
@@ -1070,7 +1070,7 @@ class UndeleteForm {
                        if( $wgUser->isAllowed( 'suppressrevision' ) ) {
                                $unsuppressBox =
                                        "<tr>
-                                               <td>&nbsp;</td>
+                                               <td>&#160;</td>
                                                <td class='mw-input'>" .
                                                        Xml::checkLabel( wfMsg('revdelete-unsuppress'), 'wpUnsuppress',
                                                                'mw-undelete-unsuppress', $this->mUnsuppress ).
@@ -1096,7 +1096,7 @@ class UndeleteForm {
                                                "</td>
                                        </tr>
                                        <tr>
-                                               <td>&nbsp;</td>
+                                               <td>&#160;</td>
                                                <td class='mw-submit'>" .
                                                        Xml::submitButton( wfMsg( 'undeletebtn' ), array( 'name' => 'restore', 'id' => 'mw-undelete-submit' ) ) . ' ' .
                                                        Xml::element( 'input', array( 'type' => 'reset', 'value' => wfMsg( 'undeletereset' ), 'id' => 'mw-undelete-reset' ) ) . ' ' .
index fe38a48..0c52ff6 100644 (file)
@@ -66,7 +66,7 @@ class DBUnlockForm {
                <td align="left">{$lc}</td>
        </tr>
        <tr>
-               <td>&nbsp;</td>
+               <td>&#160;</td>
                <td align="left">
                        <input type="submit" name="wpLock" value="{$lb}" />
                </td>
index cba2851..dee0301 100644 (file)
@@ -675,7 +675,7 @@ class SpecialUpload extends SpecialPage {
                        // if there isn't an exact match...
                        $file = wfLocalFile( $filename );
                }
-               $s = '&nbsp;';
+               $s = '&#160;';
                if ( $file ) {
                        $exists = UploadBase::getExistsWarning( $file );
                        $warning = self::getExistsWarning( $exists );
index 562715f..152970d 100644 (file)
@@ -296,9 +296,9 @@ function wfSpecialWatchlist( $par ) {
        $form .= $wgLang->pipeList( $links );
        $form .= Xml::openElement( 'form', array( 'method' => 'post', 'action' => $thisTitle->getLocalUrl(), 'id' => 'mw-watchlist-form-namespaceselector' ) );
        $form .= '<hr /><p>';
-       $form .= Xml::label( wfMsg( 'namespace' ), 'namespace' ) . '&nbsp;';
-       $form .= Xml::namespaceSelector( $nameSpace, '' ) . '&nbsp;';
-       $form .= Xml::checkLabel( wfMsg('invert'), 'invert', 'nsinvert', $invert ) . '&nbsp;';
+       $form .= Xml::label( wfMsg( 'namespace' ), 'namespace' ) . '&#160;';
+       $form .= Xml::namespaceSelector( $nameSpace, '' ) . '&#160;';
+       $form .= Xml::checkLabel( wfMsg('invert'), 'invert', 'nsinvert', $invert ) . '&#160;';
        $form .= Xml::submitButton( wfMsg( 'allpagessubmit' ) ) . '</p>';
        $form .= Xml::hidden( 'days', $days );
        if( $hideMinor )
index b63c0ee..7af8ac8 100644 (file)
@@ -382,7 +382,7 @@ class SpecialWhatLinksHere extends SpecialPage {
                $f .= ' ';
 
                # Namespace selector
-               $f .= Xml::label( wfMsg( 'namespace' ), 'namespace' ) . '&nbsp;' .
+               $f .= Xml::label( wfMsg( 'namespace' ), 'namespace' ) . '&#160;' .
                        Xml::namespaceSelector( $namespace, '' );
 
                $f .= ' ';
index 60f3376..8989bc1 100644 (file)
@@ -100,7 +100,7 @@ class UserloginTemplate extends QuickTemplate {
                        'tabindex' => '5'
                ) );
                if ( $this->data['useemail'] && $this->data['canreset'] ) {
-                       echo '&nbsp;';
+                       echo '&#160;';
                        echo Html::input( 'wpMailmypassword', wfMsg( 'mailmypassword' ), 'submit', array(
                                'id' => 'wpMailmypassword',
                                'tabindex' => '6'
index 05ad66b..7eeb6fa 100644 (file)
@@ -2410,7 +2410,7 @@ class Language {
                                        }
                                } else {
                                        if ( $ch == '&' ) {
-                                               $entityState = 1; // entity found, (e.g. "&nbsp;")
+                                               $entityState = 1; // entity found, (e.g. "&#160;")
                                        } else {
                                                $displayLen++; // this char is displayed
                                                // Add on the other display text after this...
index afc05eb..cd324f9 100644 (file)
@@ -111,7 +111,7 @@ class profile_point {
                                if ( $name != $this->name() )
                                        $e += array( $name => $ep );
 
-                       $extet = " <a href=\"" . makeurl( false, false, $e ) . "\">[&ndash;]</a>";
+                       $extet = " <a href=\"" . makeurl( false, false, $e ) . "\">[]</a>";
                }
                ?>
                <tr>
index 061e97d..bfe9b41 100644 (file)
@@ -229,7 +229,7 @@ if($this->data['copyrightico']) { ?>
                                'accesskey' => $this->skin->accesskey( 'search' )
                        ) ); ?>
 
-                               <input type='submit' name="go" class="searchButton" id="searchGoButton" value="<?php $this->msg('searcharticle') ?>"<?php echo $this->skin->tooltipAndAccesskey( 'search-go' ); ?> /><?php if ($wgUseTwoButtonsSearchForm) { ?>&nbsp;
+                               <input type='submit' name="go" class="searchButton" id="searchGoButton" value="<?php $this->msg('searcharticle') ?>"<?php echo $this->skin->tooltipAndAccesskey( 'search-go' ); ?> /><?php if ($wgUseTwoButtonsSearchForm) { ?>&#160;
                                <input type='submit' name="fulltext" class="searchButton" id="mw-searchButton" value="<?php $this->msg('searchbutton') ?>"<?php echo $this->skin->tooltipAndAccesskey( 'search-fulltext' ); ?> /><?php } else { ?>
 
                                <div><a href="<?php $this->text('searchaction') ?>" rel="search"><?php $this->msg('powersearch-legend') ?></a></div><?php } ?>
@@ -267,7 +267,7 @@ if($this->data['copyrightico']) { ?>
                if($this->data['feeds']) { ?>
                        <li id="feedlinks"><?php foreach($this->data['feeds'] as $key => $feed) {
                                        ?><a id="<?php echo Sanitizer::escapeId( "feed-$key" ) ?>" href="<?php
-                                       echo htmlspecialchars($feed['href']) ?>" rel="alternate" type="application/<?php echo $key ?>+xml" class="feedlink"<?php echo $this->skin->tooltipAndAccesskey('feed-'.$key) ?>><?php echo htmlspecialchars($feed['text'])?></a>&nbsp;
+                                       echo htmlspecialchars($feed['href']) ?>" rel="alternate" type="application/<?php echo $key ?>+xml" class="feedlink"<?php echo $this->skin->tooltipAndAccesskey('feed-'.$key) ?>><?php echo htmlspecialchars($feed['text'])?></a>&#160;
                                        <?php } ?></li><?php
                }
 
index f0be2f6..d28fcfb 100644 (file)
@@ -772,7 +772,7 @@ class VectorTemplate extends QuickTemplate {
                <?php if ( $wgVectorUseSimpleSearch ): ?>
                <div id="simpleSearch">
                        <input id="searchInput" name="search" type="text" <?php echo $this->skin->tooltipAndAccesskey( 'search' ); ?> <?php if( isset( $this->data['search'] ) ): ?> value="<?php $this->text( 'search' ) ?>"<?php endif; ?> />
-                       <button id="searchButton" type='submit' name='button' <?php echo $this->skin->tooltipAndAccesskey( 'search-fulltext' ); ?>>&nbsp;</button>
+                       <button id="searchButton" type='submit' name='button' <?php echo $this->skin->tooltipAndAccesskey( 'search-fulltext' ); ?>>&#160;</button>
                </div>
                <?php else: ?>
                <input id="searchInput" name="search" type="text" <?php echo $this->skin->tooltipAndAccesskey( 'search' ); ?> <?php if( isset( $this->data['search'] ) ): ?> value="<?php $this->text( 'search' ) ?>"<?php endif; ?> />