Sam Reed [Sun, 13 Mar 2011 19:28:44 +0000 (19:28 +0000)]
Followup r83843, r83837, per brian, addOption unconditionally replaces ORDER BY etc, so fix that
Simplify addFields call, remove un-needed array for 1 element
Sam Reed [Sun, 13 Mar 2011 19:07:22 +0000 (19:07 +0000)]
* (bug 26630) Add api for Special:ActiveUsers
Not sure if this would be better having been done as list=activeusers or something...
Meh, done! :P
Antoine Musso [Sun, 13 Mar 2011 18:31:00 +0000 (18:31 +0000)]
setting servername with an IPv6 request must ensure we have both brackets
On lighttpd 1.4.28, the SERVER_NAME CGI variable is truncated at the first
colon. This makes it return an incorrect value for SERVER_NAME when the user
make the request to an IPv6, it outputs something like [2001.
This patch make sure we have either both opening and closing brackets or no
brackets at all (hence the 'xor' boolean check).
+ipv6
Sam Reed [Sun, 13 Mar 2011 18:23:33 +0000 (18:23 +0000)]
Join user table to recentchanges on user id, rather than user_text
Add some documentation
Sam Reed [Sun, 13 Mar 2011 17:59:27 +0000 (17:59 +0000)]
Bug 27341 - Add drto param to list=deletedrevs
Tidy code up a little bit
Sam Reed [Sun, 13 Mar 2011 17:41:47 +0000 (17:41 +0000)]
* (bug 27203) add fato param to list=filearchive
Cleanup some whitespace also
Sam Reed [Sun, 13 Mar 2011 17:36:31 +0000 (17:36 +0000)]
Cleanup/simplify code added to alllinks in r70584
Sam Reed [Sun, 13 Mar 2011 17:28:53 +0000 (17:28 +0000)]
Fixup a couple more hardcoded module prefixes in help
Sam Reed [Sun, 13 Mar 2011 17:26:29 +0000 (17:26 +0000)]
Minor followup to r83814, also fix some other existances
Don't hardcode module prefixes (just incase they're subclassed at somepoint... :) )
Sam Reed [Sun, 13 Mar 2011 17:23:45 +0000 (17:23 +0000)]
* (bug 27342) Add audir param to list=allusers
Sam Reed [Sun, 13 Mar 2011 17:16:07 +0000 (17:16 +0000)]
* (bug 27340) API: Allow listing of "small" categories
Happy-melon [Sun, 13 Mar 2011 17:02:50 +0000 (17:02 +0000)]
Follow-up r83825: fix fatal in API
Sam Reed [Sun, 13 Mar 2011 16:36:51 +0000 (16:36 +0000)]
* (bug 27183) API: Add filter by customisation state for meta=allmessages
Happy-melon [Sun, 13 Mar 2011 15:44:49 +0000 (15:44 +0000)]
Follow-up r83827: a Block object will never be internally of TYPE_ID.
Happy-melon [Sun, 13 Mar 2011 15:22:59 +0000 (15:22 +0000)]
Sort special pages in MessagesEn::$specialPageAliases
Happy-melon [Sun, 13 Mar 2011 15:14:33 +0000 (15:14 +0000)]
Follow-up r83825: fix Block::parseTarget to recognise autoblocks separately, and change Block::getRedactedName() to run the string through a system message for localisation
Happy-melon [Sun, 13 Mar 2011 15:12:54 +0000 (15:12 +0000)]
Implement __toString() magic method for Message objects
Happy-melon [Sun, 13 Mar 2011 14:47:34 +0000 (14:47 +0000)]
Some refactoring in Block.php and SpecialBlock.php: move backend stuff into Block.php, and expand the parseTargetAndType() functions to recognise blocks referenced by their block id.
Happy-melon [Sun, 13 Mar 2011 14:41:57 +0000 (14:41 +0000)]
Fix totally-broken r83810.
Alexandre Emsenhuber [Sun, 13 Mar 2011 14:00:38 +0000 (14:00 +0000)]
Make Parser::makeKnownLinkHolder() call Linker::linkKnown() instead of deprecated Linker::makeKnownLinkObj()
Sam Reed [Sun, 13 Mar 2011 13:10:40 +0000 (13:10 +0000)]
Followup r83812, add /*_*/ to allow for prefixed tables
Alexandre Emsenhuber [Sun, 13 Mar 2011 11:24:27 +0000 (11:24 +0000)]
Fix for r83698: pass the Title object to the skin so that we are sure to show the correct context
Roan Kattouw [Sun, 13 Mar 2011 10:39:57 +0000 (10:39 +0000)]
(bug 27965) Paging in list=categorymembers was completely broken. It was paging by cl_from alone, while the index is on (cl_to, cl_type, cl_sortkey, cl_from) and only cl_to is constant. Fixed by paging on (type, sortkey, from), but using type|from|sortkey for clcontinue so any pipe characters in the sortkey are easier to handle. This needs the schema change in r83812 to work correctly, otherwise rows with cl_type=file will be skipped in certain cases.
Antoine Musso [Sun, 13 Mar 2011 10:36:51 +0000 (10:36 +0000)]
bug 27948: namespace translations for Odia (from translatewiki.net)
Roan Kattouw [Sun, 13 Mar 2011 10:35:06 +0000 (10:35 +0000)]
Schema change: change cl_type from ENUM('page', 'subcat', 'file') to varchar(6). This is needed because MySQL sorts 'page' < 'subcat' < 'file' when using ORDER BY cl_type but uses 'file' < 'page' < 'subcat' for the purposes of WHERE clauses, making paging impossible. Changing the ENUM() order to be alphabetical would fix the order discrepancy, but leave range scans like WHERE cl_type > 'page' unindexed. Varchars do behave correctly. Changing to an int was not an option because existing data would have to be migrated.
This commit does not include a patch for SQLite, because ALTER TABLE MODIFY is apparently not supported by SQLite as far as I could tell by Googling. Leaving resolution of this issue for SQLite to the SQLite experts; maybe SQLite's enum implementation is saner than MySQL and it doesn't even need this schema change, I don't know.
Niklas Laxström [Sun, 13 Mar 2011 10:02:56 +0000 (10:02 +0000)]
Follow-up r83809 r83810: improved documentation
Niklas Laxström [Sun, 13 Mar 2011 09:57:02 +0000 (09:57 +0000)]
* Moved Target field validation into a field validation callback to show erros next to the field
* Some changes to comments and one addHtml -> addWikiMsg
Niklas Laxström [Sun, 13 Mar 2011 09:51:47 +0000 (09:51 +0000)]
HTMLForm:
* Allow field validators to return multiple errors
* Allow field validators to return Message objects
* Add a class for fields for invalid input
* Style invalid <input> fields with red border color
Done with http://www.mediawiki.org/wiki/StyleGuide/Forms in mind
Brian Wolff [Sun, 13 Mar 2011 00:34:54 +0000 (00:34 +0000)]
(follow-up r83716) fix parser test for the entities being decoded into numeric entities thing.
Sam Reed [Sun, 13 Mar 2011 00:31:01 +0000 (00:31 +0000)]
Tweak comment format
Fix space/brace
Define member variable
Sam Reed [Sun, 13 Mar 2011 00:24:24 +0000 (00:24 +0000)]
Bit of explicit parameter definition.
Spaces, braces
Sam Reed [Sun, 13 Mar 2011 00:15:02 +0000 (00:15 +0000)]
* (bug 27182) API: Add filter by prefix for meta=allmessages
Patch by Harry Burt (Jarry1250)
Comment tweaked, logic inversed ( so skip == true means we skip ), makes a bit more sense then :)
Sam Reed [Sun, 13 Mar 2011 00:07:22 +0000 (00:07 +0000)]
* (bug 27670) Ordering by timestamp (and usage of start and end) isn't as clear in auto generated document, as it is on mw.org
Followup r83797, closing. Adding bit of documentation, + RELEASE-NOTES
Happy-melon [Sat, 12 Mar 2011 23:54:32 +0000 (23:54 +0000)]
(bug 28017) Unblocking a user with a space in their name does not work. This fix is no more ghastly than the rest of the code in the file; the whole thing (as usual) needs a complete rewrite...
Sam Reed [Sat, 12 Mar 2011 23:39:15 +0000 (23:39 +0000)]
* (bug 27670) Ordering by timestamp (and usage of start and end) isn't as clear in auto generated document, as it is on mw.org
where dir = (newer|older)
Will look at doing (asc|desc)(ending)?
Happy-melon [Sat, 12 Mar 2011 23:22:34 +0000 (23:22 +0000)]
Follow-up r83786: update references in SpecialPage::getTitleFor() and friends to point to 'Block' rather than 'Blockip'; should fix errors on translatewiki.
Happy-melon [Sat, 12 Mar 2011 22:53:15 +0000 (22:53 +0000)]
Follow-up r83794, r83792: restore new SpecialBlock.php code from r83786. This revision should *not* be broken :D
Happy-melon [Sat, 12 Mar 2011 22:51:48 +0000 (22:51 +0000)]
Follow-up r83790: svn-move SpecialBlockip.php to SpecialBlock.php. This revision will be broken
Bryan Tong Minh [Sat, 12 Mar 2011 22:51:45 +0000 (22:51 +0000)]
Follow-up r83792: Remove left in debugging
Bryan Tong Minh [Sat, 12 Mar 2011 22:50:43 +0000 (22:50 +0000)]
Follow-up r83778: Need to de-rotate, so use 360 - angle instead of angle.
Bryan Tong Minh [Sat, 12 Mar 2011 22:49:31 +0000 (22:49 +0000)]
(bug 2581, bug 6834) Added links to thumbnail in several resolutions to the file description page. The sizes are set by $wgImageLimits.
Not really happy about how it looks, perhaps only the numbers should be linked? See http://www.mediawiki.org/wiki/User:Bryan/Bug_2581 for options.
Removed message show-big-image-thumb, added show-big-image-preview, show-big-image-other, show-big-image-size.
Happy-melon [Sat, 12 Mar 2011 22:48:58 +0000 (22:48 +0000)]
Follow-up r83786, try to keep the svn history of SpecialBlockip. This rev will be broken.
Happy-melon [Sat, 12 Mar 2011 22:42:58 +0000 (22:42 +0000)]
Spin out all the CSS used on special pages into their own mediawiki.special module. This comprises about a third of /skins/common/shared.css, so it's definitely worthwhile not loading it for the 99.9% of pageviews which aren't special pages.
Sam Reed [Sat, 12 Mar 2011 22:23:43 +0000 (22:23 +0000)]
* (bug 28010) Passing a non existant user to list=users gives internal error
* (bug 27549) action=query&list=users&usprop=groups doesn't show implicit groups if a user doesn't have explicit groups
Also follows up r79556, where I'd done a couple of daft things... (accessing undefined objects)
Happy-melon [Sat, 12 Mar 2011 21:54:35 +0000 (21:54 +0000)]
Divert a river through the Augean Stables that is SpecialBlockip.php.
* Move to SpecialBlock.php, and rename class appropriately
* Complete refactor
* Use HTMLForm in block form. This changes most of the ids and field names on the form, but allows proper validation, nicer formatting, clears up several fixmes, and is generally Better(TM).
* Spin various parts out into static functions, several of which properly belong in the backend (but Block.php is a worse mess still)
* Invert some of the block options so that every checkbox makes the block more severe (so "check to disable email" is fine, but "check to allow usertalk edit" (default true) is inverted to "check to disable usertalk edit" (default false).
* revert r40359 (move doMassUserBlock() to core). No one seems to be using this function, which has nothing to do with the frontend UI in SpecialBlock (it might perhaps belong in Block.php); it is pretty bespoke for CheckUser, doesn't seem to have very much utility elsewhere.
Bryan Tong Minh [Sat, 12 Mar 2011 21:35:27 +0000 (21:35 +0000)]
Fix switch fail in r83778: add missing break.
Raimond Spekking [Sat, 12 Mar 2011 21:02:43 +0000 (21:02 +0000)]
Localisation updates for core and extension messages from translatewiki.net (2011-03-12 20:34:00 UTC)
Happy-melon [Sat, 12 Mar 2011 20:47:52 +0000 (20:47 +0000)]
Follow-up r83747, forgot to commit a file
Rotem Liss [Sat, 12 Mar 2011 20:11:19 +0000 (20:11 +0000)]
Localization fix for he.
Bryan Tong Minh [Sat, 12 Mar 2011 19:59:41 +0000 (19:59 +0000)]
(bug 18691) Added support for SVG rasterization using the Imagick PHP extension. Based on patch by Yesid Carrillo. Set $wgSVGConverter = 'ImagickExt' to use it. Note that the results are extremely ugly, but I believe that happens with the command line scaler as well.
Introduced new syntax for $wgSVGConverters, if the selected converter is an array, it is assumed to be a PHP callable. Imagick support is done by SvgHandler::rasterizeImagickExt.
Bryan Tong Minh [Sat, 12 Mar 2011 19:32:39 +0000 (19:32 +0000)]
(bug 14706) Added support for the Imagick PHP extension. Based on patch by Leslie Hoare.
Scaler type is "imext". Rotation is supported.
Logic mostly copied from transformImagemagick() and ported to Imagick calls.
Resizing animated gifs is broken; it only shows the first frame and I can't find out why it does not work, but otherwise it is fully working.
Happy-melon [Sat, 12 Mar 2011 18:51:51 +0000 (18:51 +0000)]
RELEASE-NOTES for r83755
Happy-melon [Sat, 12 Mar 2011 18:14:33 +0000 (18:14 +0000)]
Follow-up r83755: @deprecated @since is wrong, doesn't have the expected semantic meaning.
Alexandre Emsenhuber [Sat, 12 Mar 2011 14:21:41 +0000 (14:21 +0000)]
Skip a part of useless code when redirecting because of getOldIDFromRequest() or showing a diff page
Alexandre Emsenhuber [Sat, 12 Mar 2011 13:45:12 +0000 (13:45 +0000)]
Use Html::element() to generate the element; the url and the title attribute are now build only when really necessary
Raimond Spekking [Sat, 12 Mar 2011 13:42:22 +0000 (13:42 +0000)]
Follow-up r83755: Message 'ipaddress' is unused now, in core and extensions
Happy-melon [Sat, 12 Mar 2011 12:13:22 +0000 (12:13 +0000)]
Deprecate $wgSysopUserBans and $wgSysopRangeBans, both of which are pre-1.2, and totally antiquated. Can't think of any reason why a modern wiki might want to make blocks IP-only; syadmins can still disable rangeblocks by setting $wgBlockCIDRLimit to the maximum for each IP mode (32 for IP4, 128 for IP6).
Aaron Schulz [Sat, 12 Mar 2011 11:51:33 +0000 (11:51 +0000)]
Do the filearchive updates too; index is there now
Happy-melon [Sat, 12 Mar 2011 11:08:20 +0000 (11:08 +0000)]
Follow-up r83298: keep the two elements of the message separate in an array in HTMLSelectAndOtherField::loadDataFromRequest(), fixes various bugs with validation, defaults, and normalisation.
Happy-melon [Fri, 11 Mar 2011 23:42:53 +0000 (23:42 +0000)]
add __toString() call for User objects, returning User->getName(). Now that we require PHP 5.2+, we can do this with all our major classes... :D
Happy-melon [Fri, 11 Mar 2011 23:33:36 +0000 (23:33 +0000)]
First little bit of cleaning out the Augean stables of SpecialBlockip.php: spin out the suppressUserName/unsuppressUserName functions into their own file, to keep them with the rest of the RevDel stuff.
Aryeh Gregor [Fri, 11 Mar 2011 21:01:46 +0000 (21:01 +0000)]
Remove HISTORY for r70526
Removed from 1.17 RELEASE-NOTES in r83720.
Raimond Spekking [Fri, 11 Mar 2011 20:59:31 +0000 (20:59 +0000)]
Localisation updates for core and extension messages from translatewiki.net (2011-03-11 20:34:00 UTC)
Aryeh Gregor [Fri, 11 Mar 2011 20:50:17 +0000 (20:50 +0000)]
Normalize named entities to numeric
We should never be outputting named entities other than the ones in XML,
< > & ", because that will break well-formedness unless
we have a DTD in the doctype, which we don't in HTML5 mode.
I stuck with outputting numeric entities here instead of UTF-8 because
some characters are hard to read in UTF-8 (e.g., ). Maybe it
would be nicer if we decoded to UTF-8 except for whitespace and control
characters, or something like that, but it's a detail.
I'll backport to 1.17 and add RELEASE-NOTES there, which is why I added
the line to HISTORY instead of RELEASE-NOTES.
Alexandre Emsenhuber [Fri, 11 Mar 2011 20:04:17 +0000 (20:04 +0000)]
Follow-up r83080: make ApiUploadTest really work this time
Happy-melon [Fri, 11 Mar 2011 18:02:10 +0000 (18:02 +0000)]
Follow-up r83298: add AutoLoader entry
Alexandre Emsenhuber [Fri, 11 Mar 2011 14:31:12 +0000 (14:31 +0000)]
Only call User::getSkin() when necessary.
(With this, a parser cache hit on action=render may not load the skin at all)
Aryeh Gregor [Fri, 11 Mar 2011 02:10:00 +0000 (02:10 +0000)]
Allow all itemtypes for microdata
It's really not all that useful otherwise.
Trevor Parscal [Fri, 11 Mar 2011 00:12:25 +0000 (00:12 +0000)]
Fixes bug #27979 by removing 2 unused arguments from the function declaration. These were an artifact of splitting the recurse and resolve functions.
Sam Reed [Thu, 10 Mar 2011 23:14:50 +0000 (23:14 +0000)]
remved?
Alexandre Emsenhuber [Thu, 10 Mar 2011 21:39:24 +0000 (21:39 +0000)]
Per Jarry1250 on IRC: fix for r81469: accept StubObject in Message::inLanguage(); was breaking api.php?action=query&meta=allmessages
Raimond Spekking [Thu, 10 Mar 2011 21:02:36 +0000 (21:02 +0000)]
Localisation updates for core and extension messages from translatewiki.net (2011-03-10 20:05:00 UTC)
Antoine Musso [Thu, 10 Mar 2011 20:24:04 +0000 (20:24 +0000)]
Makes MediaWikiProvide methods static
Follow up and revert r82369 which used dynamic calls
Krinkle [Thu, 10 Mar 2011 18:49:14 +0000 (18:49 +0000)]
Fixing minor issues with mw.loader
* Using $.isArray/isFunction instead of "instanceof" or typeof.
** "instanceof Array" can throw SyntaxErrors in some cases
** Some non-functions return 'function' as their type
* JSHint:
** using === to compare to null (faster and safer)
** Missing semicolons
** Mixed spaces with tabs
* Added mw.log call when module is loaded
* Added support for custom prefix to mw.log (the mw.config value for 'mw.log.prefix' is pretty ugly as it sets it globally, when calling a function later again it's no longer the same. Perhaps just get rid of it)
Krinkle [Thu, 10 Mar 2011 17:38:21 +0000 (17:38 +0000)]
Fixing minor issues in mw.htmlform
* jQuery should be mapped to $ before using it. $ should not be implied as global in-core. ("return $(this).show()" was using $ as global)
** added wrapper and replaced jQuery with $.
* Missing semicolon
Chad Horohoe [Thu, 10 Mar 2011 15:12:36 +0000 (15:12 +0000)]
(bug 27970) Wrong variable name, dependencies -> modules
Bryan Tong Minh [Thu, 10 Mar 2011 12:04:38 +0000 (12:04 +0000)]
Revert r83647, was based on the inability to read the function signature
Bryan Tong Minh [Thu, 10 Mar 2011 12:02:35 +0000 (12:02 +0000)]
Add wfObjectToArray to json_decode to ensure that the return value is an array
Tim Starling [Thu, 10 Mar 2011 11:39:23 +0000 (11:39 +0000)]
Fix duplicate removal. Was completely broken, with a "job_id IS NULL" condition in the delete query. Added a COMMIT to pop_type().
Tim Starling [Thu, 10 Mar 2011 05:26:34 +0000 (05:26 +0000)]
Add --maxtime parameter to allow job runners to be limited by time instead of job count. This makes more sense when --procs is used. Using it on Wikimedia will reduce the effect of laggy slaves.
Tim Starling [Thu, 10 Mar 2011 04:47:21 +0000 (04:47 +0000)]
Some bug fixes for r83634.
Tim Starling [Thu, 10 Mar 2011 04:10:27 +0000 (04:10 +0000)]
Rewrite the caching code in nextJobDB.php so that jobs-loop.sh has a chance of being able to exit from the "high-priority" loop.
The current syndrome is that when the cache expires, a small number of high-priority jobs are added. These jobs are quickly cleared, but the job runners do not continue on to other things, because the cache keeps returning the same small list of wikis for 5 minutes. After 5 minutes, there are a few more jobs in the high-priority list, so the cycle continues.
Tim Starling [Thu, 10 Mar 2011 02:27:15 +0000 (02:27 +0000)]
Stats for duplicate removal
Ryan Kaldari [Thu, 10 Mar 2011 00:25:33 +0000 (00:25 +0000)]
fix for Bug 27669
Neil Kandalgaonkar [Thu, 10 Mar 2011 00:14:36 +0000 (00:14 +0000)]
fixed some parseInts to have a base, renamed a var from number -> num since number is reserved
Tim Starling [Thu, 10 Mar 2011 00:00:34 +0000 (00:00 +0000)]
* Add a $count argument to wfIncrStats(), to allow it to increase the count by more than one at a time.
* Added stats to job insert and pop.
* Formalised live patch for UDP stats aggregation, adding $wgAggregateStatsID.
Raimond Spekking [Wed, 9 Mar 2011 22:15:15 +0000 (22:15 +0000)]
Localisation updates for core and extension messages from translatewiki.net (2011-03-09 21:26:00 UTC)
Krinkle [Wed, 9 Mar 2011 21:50:00 +0000 (21:50 +0000)]
Escape minus in $.escapeRE
* Follow-up r83287: Removing slash before caret(^), apparently not needed.
* Escaping minus (-), adding the minus symbol (added in r83284), causes all uppercase characters and numbers to be escaped:
(bug 27960) $.escapeRE shouldn't escape all uppercase and numbers
* Added more compelete tets to the JS Test Suite for $.escapeRE to avoid problems in the future
Sam Reed [Wed, 9 Mar 2011 17:57:32 +0000 (17:57 +0000)]
Per CR, swap Jarry1250 to Harry Burt
Rotem Liss [Wed, 9 Mar 2011 17:30:22 +0000 (17:30 +0000)]
Localization update for he, and whitespace fixes in en.
Sam Reed [Wed, 9 Mar 2011 17:09:10 +0000 (17:09 +0000)]
More function/member variable documentation
Sam Reed [Wed, 9 Mar 2011 16:37:39 +0000 (16:37 +0000)]
Followup r83558, r83555
Set default of false to $open parameter
Roan Kattouw [Wed, 9 Mar 2011 14:27:13 +0000 (14:27 +0000)]
Fix r83586 (drag and drop support for placeholder plugin) to work in IE, whose drag&drop API is surprisingly similar to Firefox's but with slight differences
Roan Kattouw [Wed, 9 Mar 2011 13:54:02 +0000 (13:54 +0000)]
(bug 27944) Search placeholder was inserted even when the search box was already focused, leading to the placeholder being added to the search string. This revision doesn't fix the initial insertion of the placeholder if the search box is focused but empty, but it does remove it upon keydown (and paste), which fixes the search string munging.
(bug 26135) Support drag and drop in the search box in Firefox. Done by adding 'drop' to the list of events to update search suggestions for and to remove the placeholder for. Removing the placeholder is trickier in this case because 'drop' fires after the text has already been inserted, and because it could have been inserted at any offset in the placeholder string. Used dataTransfer magic to obtain the text being dropped and just overwrote the search box text with that.
Roan Kattouw [Wed, 9 Mar 2011 12:30:08 +0000 (12:30 +0000)]
Fix r74388: CSS for IE7 and below was put in a selector that only applies it for IE7 and *above*, causing bug 27547 (Text excerpt doesn't start on a new line in file search results) in other browsers. Fixed this by replacing the selector hack with !ie , a hack that we use to target IE7 and below with our data URL embedding fallback as well
Antoine Musso [Wed, 9 Mar 2011 07:12:19 +0000 (07:12 +0000)]
typo / space fix in HTTP class
Roan Kattouw [Wed, 9 Mar 2011 01:13:17 +0000 (01:13 +0000)]
Merge r83652 from 1.17wmf1 to trunk: add backwards compatibility from &from= and &until= on category pages to keep things like alphabet templates working
Roan Kattouw [Wed, 9 Mar 2011 00:24:21 +0000 (00:24 +0000)]
Merge r83555 from 1.17wmf1: fix wait for slaves code from r83529
Sam Reed [Wed, 9 Mar 2011 00:24:17 +0000 (00:24 +0000)]
Alphasort credits from r83554
Ilmari Karonen [Wed, 9 Mar 2011 00:06:57 +0000 (00:06 +0000)]
(bug 14645) Show expensive special pages differently in miser mode on Special:SpecialPages. Patch by Jarry1250 with a few tweaks by me. Tested, saw no errors or warnings.