summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.gitreview3
-rw-r--r--.jshintignore28
-rw-r--r--.jshintrc25
-rw-r--r--CREDITS25
-rw-r--r--HISTORY2
-rw-r--r--INSTALL2
-rw-r--r--README9
-rw-r--r--RELEASE-NOTES-1.19488
-rw-r--r--RELEASE-NOTES-1.20447
-rw-r--r--UPGRADE2
-rw-r--r--api.php70
-rw-r--r--api.php525
-rw-r--r--docs/code-coverage/README2
-rw-r--r--docs/database.txt6
-rw-r--r--docs/distributors.txt7
-rw-r--r--docs/doxygen_first_page.php2
-rw-r--r--docs/export-0.1.xsd36
-rw-r--r--docs/export-0.2.xsd48
-rw-r--r--docs/export-0.3.xsd68
-rw-r--r--docs/export-0.4.xsd76
-rw-r--r--docs/export-0.5.xsd78
-rw-r--r--docs/export-0.6.xsd84
-rw-r--r--docs/export-0.7.xsd272
-rw-r--r--docs/export-demo.xml269
-rw-r--r--docs/hooks.txt153
-rw-r--r--docs/language.txt20
-rw-r--r--docs/magicword.txt4
-rw-r--r--docs/memcached.txt2
-rw-r--r--docs/uidesign/mediawiki.action.history.diff.html12
-rw-r--r--extensions/ConfirmEdit/.gitreview5
-rw-r--r--extensions/ConfirmEdit/Asirra.class.php12
-rw-r--r--extensions/ConfirmEdit/Asirra.i18n.php155
-rw-r--r--extensions/ConfirmEdit/Asirra.php3
-rw-r--r--extensions/ConfirmEdit/Captcha.php64
-rw-r--r--extensions/ConfirmEdit/ConfirmEdit.alias.php13
-rw-r--r--extensions/ConfirmEdit/ConfirmEdit.i18n.php681
-rw-r--r--extensions/ConfirmEdit/ConfirmEdit.php2
-rw-r--r--extensions/ConfirmEdit/FancyCaptcha.class.php304
-rw-r--r--extensions/ConfirmEdit/FancyCaptcha.i18n.php245
-rw-r--r--extensions/ConfirmEdit/FancyCaptcha.php13
-rw-r--r--extensions/ConfirmEdit/HTMLCaptchaField.php5
-rw-r--r--extensions/ConfirmEdit/MathCaptcha.php5
-rw-r--r--extensions/ConfirmEdit/QuestyCaptcha.class.php10
-rw-r--r--extensions/ConfirmEdit/QuestyCaptcha.i18n.php131
-rw-r--r--extensions/ConfirmEdit/QuestyCaptcha.php7
-rw-r--r--extensions/ConfirmEdit/README2
-rw-r--r--extensions/ConfirmEdit/ReCaptcha.class.php9
-rw-r--r--extensions/ConfirmEdit/ReCaptcha.i18n.php73
-rw-r--r--extensions/ConfirmEdit/ReCaptcha.php5
-rw-r--r--extensions/ConfirmEdit/ext.confirmedit.asirra.js6
-rw-r--r--extensions/ConfirmEdit/maintenance/GenerateFancyCaptchas.php128
-rw-r--r--extensions/ConfirmEdit/recaptchalib.php3
-rw-r--r--extensions/FluxBBAuthPlugin.php33
-rw-r--r--extensions/Gadgets/.gitreview5
-rw-r--r--extensions/Gadgets/ApiQueryGadgetCategories.php2
-rw-r--r--extensions/Gadgets/ApiQueryGadgets.php6
-rw-r--r--extensions/Gadgets/Gadgets.alias.php23
-rw-r--r--extensions/Gadgets/Gadgets.i18n.php789
-rw-r--r--extensions/Gadgets/Gadgets.php6
-rw-r--r--extensions/Gadgets/Gadgets_body.php9
-rw-r--r--extensions/Gadgets/README6
-rw-r--r--extensions/Gadgets/SpecialGadgets.php92
-rw-r--r--extensions/Nuke/.gitreview5
-rw-r--r--extensions/Nuke/INSTALL11
-rw-r--r--extensions/Nuke/Nuke.alias.php31
-rw-r--r--extensions/Nuke/Nuke.i18n.php370
-rw-r--r--extensions/Nuke/Nuke.php6
-rw-r--r--extensions/Nuke/Nuke_body.php114
-rw-r--r--extensions/Nuke/README2
-rw-r--r--extensions/Nuke/RELEASE-NOTES20
-rw-r--r--extensions/ParserFunctions/.gitreview5
-rw-r--r--extensions/ParserFunctions/Convert.php907
-rw-r--r--extensions/ParserFunctions/Expr.php8
-rw-r--r--extensions/ParserFunctions/ParserFunctions.i18n.magic.php148
-rw-r--r--extensions/ParserFunctions/ParserFunctions.i18n.php3358
-rw-r--r--extensions/ParserFunctions/ParserFunctions.php25
-rw-r--r--extensions/ParserFunctions/ParserFunctions_body.php78
-rw-r--r--extensions/ParserFunctions/convertTests.txt231
-rw-r--r--extensions/README13
-rw-r--r--extensions/Renameuser/.gitreview5
-rw-r--r--extensions/Renameuser/Renameuser.alias.php26
-rw-r--r--extensions/Renameuser/Renameuser.i18n.php515
-rw-r--r--extensions/Vector/.gitreview5
-rw-r--r--extensions/Vector/README4
-rw-r--r--extensions/Vector/Vector.hooks.php4
-rw-r--r--extensions/Vector/Vector.i18n.php467
-rw-r--r--extensions/Vector/Vector.php26
-rw-r--r--extensions/Vector/modules/ext.vector.editWarning.js61
-rw-r--r--extensions/Vector/modules/ext.vector.footerCleanup.css115
-rw-r--r--extensions/Vector/modules/ext.vector.footerCleanup.js90
-rw-r--r--extensions/Vector/modules/ext.vector.simpleSearch.js142
-rw-r--r--extensions/Vector/modules/jquery.footerCollapsibleList.js46
-rw-r--r--extensions/WikiEditor/.gitreview6
-rw-r--r--extensions/WikiEditor/README1
-rw-r--r--extensions/WikiEditor/WikiEditor.hooks.php25
-rw-r--r--extensions/WikiEditor/WikiEditor.i18n.php2608
-rw-r--r--extensions/WikiEditor/WikiEditor.php13
-rw-r--r--extensions/WikiEditor/modules/ext.wikiEditor.css8
-rw-r--r--extensions/WikiEditor/modules/ext.wikiEditor.dialogs.js2
-rw-r--r--extensions/WikiEditor/modules/ext.wikiEditor.templateEditor.js4
-rw-r--r--extensions/WikiEditor/modules/ext.wikiEditor.templates.js6
-rw-r--r--extensions/WikiEditor/modules/ext.wikiEditor.tests.toolbar.js219
-rw-r--r--extensions/WikiEditor/modules/jquery.wikiEditor.dialogs.config.css9
-rw-r--r--extensions/WikiEditor/modules/jquery.wikiEditor.dialogs.config.js2351
-rw-r--r--extensions/WikiEditor/modules/jquery.wikiEditor.dialogs.css14
-rw-r--r--extensions/WikiEditor/modules/jquery.wikiEditor.dialogs.js409
-rw-r--r--extensions/WikiEditor/modules/jquery.wikiEditor.highlight.js638
-rw-r--r--extensions/WikiEditor/modules/jquery.wikiEditor.js177
-rw-r--r--extensions/WikiEditor/modules/jquery.wikiEditor.preview.css9
-rw-r--r--extensions/WikiEditor/modules/jquery.wikiEditor.preview.js103
-rw-r--r--extensions/WikiEditor/modules/jquery.wikiEditor.previewDialog.css8
-rw-r--r--extensions/WikiEditor/modules/jquery.wikiEditor.publish.js68
-rw-r--r--extensions/WikiEditor/modules/jquery.wikiEditor.templateEditor.js4
-rw-r--r--extensions/WikiEditor/modules/jquery.wikiEditor.toc.css35
-rw-r--r--extensions/WikiEditor/modules/jquery.wikiEditor.toc.js57
-rw-r--r--extensions/WikiEditor/modules/jquery.wikiEditor.toolbar.config.js6
-rw-r--r--extensions/WikiEditor/modules/jquery.wikiEditor.toolbar.css10
-rw-r--r--extensions/WikiEditor/modules/jquery.wikiEditor.toolbar.js2
-rw-r--r--extensions/WikiEditor/tests/selenium/WikiDialogs_Links.php68
-rw-r--r--extensions/WikiEditor/tests/selenium/WikiDialogs_Links_Setup.php296
-rw-r--r--extensions/WikiEditor/tests/selenium/WikiEditorConstants.php84
-rw-r--r--extensions/WikiEditor/tests/selenium/WikiEditorSeleniumConfig.php27
-rw-r--r--extensions/WikiEditor/tests/selenium/WikiEditorTestSuite.php35
-rw-r--r--img_auth.php35
-rw-r--r--img_auth.php525
-rw-r--r--includes/Action.php64
-rw-r--r--includes/AjaxDispatcher.php56
-rw-r--r--includes/AjaxResponse.php109
-rw-r--r--includes/Article.php593
-rw-r--r--includes/AuthPlugin.php22
-rw-r--r--includes/AutoLoader.php223
-rw-r--r--includes/Autopromote.php25
-rw-r--r--includes/BacklinkCache.php62
-rw-r--r--includes/Block.php100
-rw-r--r--includes/CacheHelper.php392
-rw-r--r--includes/Category.php48
-rw-r--r--includes/CategoryPage.php21
-rw-r--r--includes/CategoryViewer.php52
-rw-r--r--includes/Categoryfinder.php21
-rw-r--r--includes/Cdb.php17
-rw-r--r--includes/Cdb_PHP.php17
-rw-r--r--includes/ChangeTags.php30
-rw-r--r--includes/ChangesFeed.php28
-rw-r--r--includes/ChangesList.php276
-rw-r--r--includes/Collation.php22
-rw-r--r--includes/ConfEditor.php32
-rw-r--r--includes/Cookie.php26
-rw-r--r--includes/CryptRand.php33
-rw-r--r--includes/DataUpdate.php124
-rw-r--r--includes/DefaultSettings.php1432
-rw-r--r--includes/DeferredUpdates.php36
-rw-r--r--includes/Defines.php27
-rw-r--r--includes/DeprecatedGlobal.php55
-rw-r--r--includes/EditPage.php690
-rw-r--r--includes/Exception.php229
-rw-r--r--includes/Export.php517
-rw-r--r--includes/ExternalEdit.php14
-rw-r--r--includes/ExternalStore.php25
-rw-r--r--includes/ExternalStoreDB.php23
-rw-r--r--includes/ExternalStoreHttp.php20
-rw-r--r--includes/ExternalUser.php4
-rw-r--r--includes/FakeTitle.php23
-rw-r--r--includes/Fallback.php4
-rw-r--r--includes/Feed.php34
-rw-r--r--includes/FeedUtils.php41
-rw-r--r--includes/FileDeleteForm.php108
-rw-r--r--includes/ForkController.php25
-rw-r--r--includes/FormOptions.php35
-rw-r--r--includes/GitInfo.php214
-rw-r--r--includes/GlobalFunctions.php746
-rw-r--r--includes/HTMLForm.php716
-rw-r--r--includes/HistoryBlob.php64
-rw-r--r--includes/Hooks.php2
-rw-r--r--includes/Html.php133
-rw-r--r--includes/HttpFunctions.old.php21
-rw-r--r--includes/HttpFunctions.php72
-rw-r--r--includes/IP.php48
-rw-r--r--includes/ImageFunctions.php87
-rw-r--r--includes/ImageGallery.php55
-rw-r--r--includes/ImagePage.php468
-rw-r--r--includes/ImageQueryPage.php21
-rw-r--r--includes/Import.php57
-rw-r--r--includes/Init.php21
-rw-r--r--includes/Licenses.php45
-rw-r--r--includes/LinkFilter.php23
-rw-r--r--includes/Linker.php415
-rw-r--r--includes/LinksUpdate.php153
-rw-r--r--includes/LocalisationCache.php192
-rw-r--r--includes/MWFunction.php4
-rw-r--r--includes/MagicWord.php48
-rw-r--r--includes/Message.php95
-rw-r--r--includes/MessageBlobStore.php7
-rw-r--r--includes/Metadata.php32
-rw-r--r--includes/MimeMagic.php22
-rw-r--r--includes/Namespace.php73
-rw-r--r--includes/OutputHandler.php25
-rw-r--r--includes/OutputPage.php403
-rw-r--r--includes/PHPVersionError.php25
-rw-r--r--includes/PageQueryPage.php29
-rw-r--r--includes/Pager.php264
-rw-r--r--includes/PathRouter.php62
-rw-r--r--includes/PoolCounter.php22
-rw-r--r--includes/Preferences.php102
-rw-r--r--includes/PrefixSearch.php24
-rw-r--r--includes/ProtectionForm.php85
-rw-r--r--includes/ProxyTools.php30
-rw-r--r--includes/QueryPage.php68
-rw-r--r--includes/RecentChange.php168
-rw-r--r--includes/Revision.php255
-rw-r--r--includes/RevisionList.php48
-rw-r--r--includes/Sanitizer.php111
-rw-r--r--includes/ScopedPHPTimeout.php84
-rw-r--r--includes/SeleniumWebSettings.php19
-rw-r--r--includes/Setup.php64
-rw-r--r--includes/SiteConfiguration.php149
-rw-r--r--includes/SiteStats.php226
-rw-r--r--includes/Skin.php233
-rw-r--r--includes/SkinLegacy.php186
-rw-r--r--includes/SkinTemplate.php332
-rw-r--r--includes/SpecialPage.php217
-rw-r--r--includes/SpecialPageFactory.php36
-rw-r--r--includes/SqlDataUpdate.php150
-rw-r--r--includes/SquidPurgeClient.php42
-rw-r--r--includes/Status.php76
-rw-r--r--includes/StreamFile.php51
-rw-r--r--includes/StringUtils.php94
-rw-r--r--includes/StubObject.php22
-rw-r--r--includes/Timestamp.php229
-rw-r--r--includes/Title.php306
-rw-r--r--includes/TitleArray.php19
-rw-r--r--includes/User.php326
-rw-r--r--includes/UserArray.php20
-rw-r--r--includes/UserMailer.php58
-rw-r--r--includes/UserRightsProxy.php21
-rw-r--r--includes/ViewCountUpdate.php9
-rw-r--r--includes/WatchedItem.php105
-rw-r--r--includes/WebRequest.php114
-rw-r--r--includes/WebStart.php2
-rw-r--r--includes/Wiki.php199
-rw-r--r--includes/WikiCategoryPage.php21
-rw-r--r--includes/WikiError.php12
-rw-r--r--includes/WikiFilePage.php29
-rw-r--r--includes/WikiMap.php40
-rw-r--r--includes/WikiPage.php629
-rw-r--r--includes/Xml.php87
-rw-r--r--includes/XmlTypeCheck.php20
-rw-r--r--includes/ZhClient.php20
-rw-r--r--includes/ZhConversion.php76
-rw-r--r--includes/ZipDirectoryReader.php46
-rw-r--r--includes/actions/CachedAction.php182
-rw-r--r--includes/actions/CreditsAction.php2
-rw-r--r--includes/actions/HistoryAction.php92
-rw-r--r--includes/actions/InfoAction.php629
-rw-r--r--includes/actions/PurgeAction.php6
-rw-r--r--includes/actions/RawAction.php26
-rw-r--r--includes/actions/RevertAction.php36
-rw-r--r--includes/actions/RevisiondeleteAction.php2
-rw-r--r--includes/actions/RollbackAction.php6
-rw-r--r--includes/actions/ViewAction.php3
-rw-r--r--includes/actions/WatchAction.php12
-rw-r--r--includes/api/ApiBase.php224
-rw-r--r--includes/api/ApiBlock.php61
-rw-r--r--includes/api/ApiComparePages.php51
-rw-r--r--includes/api/ApiDelete.php75
-rw-r--r--includes/api/ApiDisabled.php2
-rw-r--r--includes/api/ApiEditPage.php148
-rw-r--r--includes/api/ApiEmailUser.php24
-rw-r--r--includes/api/ApiExpandTemplates.php10
-rw-r--r--includes/api/ApiFeedContributions.php10
-rw-r--r--includes/api/ApiFeedWatchlist.php9
-rw-r--r--includes/api/ApiFileRevert.php38
-rw-r--r--includes/api/ApiFormatBase.php17
-rw-r--r--includes/api/ApiFormatDbg.php2
-rw-r--r--includes/api/ApiFormatJson.php2
-rw-r--r--includes/api/ApiFormatPhp.php2
-rw-r--r--includes/api/ApiFormatRaw.php2
-rw-r--r--includes/api/ApiFormatTxt.php2
-rw-r--r--includes/api/ApiFormatWddx.php2
-rw-r--r--includes/api/ApiFormatXml.php41
-rw-r--r--includes/api/ApiFormatYaml.php2
-rw-r--r--includes/api/ApiHelp.php2
-rw-r--r--includes/api/ApiImport.php42
-rw-r--r--includes/api/ApiLogin.php64
-rw-r--r--includes/api/ApiLogout.php6
-rw-r--r--includes/api/ApiMain.php161
-rw-r--r--includes/api/ApiMove.php51
-rw-r--r--includes/api/ApiOpenSearch.php4
-rw-r--r--includes/api/ApiOptions.php183
-rw-r--r--includes/api/ApiPageSet.php30
-rw-r--r--includes/api/ApiParamInfo.php58
-rw-r--r--includes/api/ApiParse.php115
-rw-r--r--includes/api/ApiPatrol.php15
-rw-r--r--includes/api/ApiProtect.php62
-rw-r--r--includes/api/ApiPurge.php38
-rw-r--r--includes/api/ApiQuery.php96
-rw-r--r--includes/api/ApiQueryAllCategories.php57
-rw-r--r--includes/api/ApiQueryAllImages.php409
-rw-r--r--includes/api/ApiQueryAllLinks.php68
-rw-r--r--includes/api/ApiQueryAllMessages.php (renamed from includes/api/ApiQueryAllmessages.php)25
-rw-r--r--includes/api/ApiQueryAllPages.php (renamed from includes/api/ApiQueryAllpages.php)45
-rw-r--r--includes/api/ApiQueryAllUsers.php103
-rw-r--r--includes/api/ApiQueryAllimages.php267
-rw-r--r--includes/api/ApiQueryBacklinks.php100
-rw-r--r--includes/api/ApiQueryBase.php13
-rw-r--r--includes/api/ApiQueryBlocks.php87
-rw-r--r--includes/api/ApiQueryCategories.php45
-rw-r--r--includes/api/ApiQueryCategoryInfo.php35
-rw-r--r--includes/api/ApiQueryCategoryMembers.php69
-rw-r--r--includes/api/ApiQueryDeletedrevs.php40
-rw-r--r--includes/api/ApiQueryDisabled.php2
-rw-r--r--includes/api/ApiQueryDuplicateFiles.php143
-rw-r--r--includes/api/ApiQueryExtLinksUsage.php17
-rw-r--r--includes/api/ApiQueryExternalLinks.php10
-rw-r--r--includes/api/ApiQueryFilearchive.php110
-rw-r--r--includes/api/ApiQueryIWBacklinks.php59
-rw-r--r--includes/api/ApiQueryIWLinks.php43
-rw-r--r--includes/api/ApiQueryImageInfo.php145
-rw-r--r--includes/api/ApiQueryImages.php38
-rw-r--r--includes/api/ApiQueryInfo.php259
-rw-r--r--includes/api/ApiQueryLangBacklinks.php59
-rw-r--r--includes/api/ApiQueryLangLinks.php38
-rw-r--r--includes/api/ApiQueryLinks.php43
-rw-r--r--includes/api/ApiQueryLogEvents.php66
-rw-r--r--includes/api/ApiQueryProtectedTitles.php38
-rw-r--r--includes/api/ApiQueryQueryPage.php37
-rw-r--r--includes/api/ApiQueryRandom.php10
-rw-r--r--includes/api/ApiQueryRecentChanges.php147
-rw-r--r--includes/api/ApiQueryRevisions.php98
-rw-r--r--includes/api/ApiQuerySearch.php59
-rw-r--r--includes/api/ApiQuerySiteinfo.php66
-rw-r--r--includes/api/ApiQueryStashImageInfo.php6
-rw-r--r--includes/api/ApiQueryTags.php21
-rw-r--r--includes/api/ApiQueryUserContributions.php100
-rw-r--r--includes/api/ApiQueryUserInfo.php74
-rw-r--r--includes/api/ApiQueryUsers.php96
-rw-r--r--includes/api/ApiQueryWatchlist.php85
-rw-r--r--includes/api/ApiQueryWatchlistRaw.php50
-rw-r--r--includes/api/ApiResult.php4
-rw-r--r--includes/api/ApiRollback.php26
-rw-r--r--includes/api/ApiSetNotificationTimestamp.php285
-rw-r--r--includes/api/ApiTokens.php158
-rw-r--r--includes/api/ApiUnblock.php48
-rw-r--r--includes/api/ApiUndelete.php22
-rw-r--r--includes/api/ApiUpload.php130
-rw-r--r--includes/api/ApiUserrights.php8
-rw-r--r--includes/api/ApiWatch.php18
-rw-r--r--includes/cache/CacheDependency.php23
-rw-r--r--includes/cache/FileCacheBase.php35
-rw-r--r--includes/cache/GenderCache.php93
-rw-r--r--includes/cache/HTMLCacheUpdate.php21
-rw-r--r--includes/cache/HTMLFileCache.php33
-rw-r--r--includes/cache/LinkBatch.php28
-rw-r--r--includes/cache/LinkCache.php22
-rw-r--r--includes/cache/MemcachedSessions.php98
-rw-r--r--includes/cache/MessageCache.php40
-rw-r--r--includes/cache/ObjectFileCache.php24
-rw-r--r--includes/cache/ProcessCacheLRU.php120
-rw-r--r--includes/cache/ResourceFileCache.php24
-rw-r--r--includes/cache/SquidUpdate.php64
-rw-r--r--includes/cache/UserCache.php134
-rw-r--r--includes/dao/IDBAccessObject.php55
-rw-r--r--includes/db/CloneDatabase.php1
-rw-r--r--includes/db/Database.php701
-rw-r--r--includes/db/DatabaseError.php27
-rw-r--r--includes/db/DatabaseIbm_db2.php165
-rw-r--r--includes/db/DatabaseMssql.php53
-rw-r--r--includes/db/DatabaseMysql.php159
-rw-r--r--includes/db/DatabaseOracle.php48
-rw-r--r--includes/db/DatabasePostgres.php622
-rw-r--r--includes/db/DatabaseSqlite.php80
-rw-r--r--includes/db/DatabaseUtility.php28
-rw-r--r--includes/db/IORMRow.php275
-rw-r--r--includes/db/IORMTable.php448
-rw-r--r--includes/db/LBFactory.php29
-rw-r--r--includes/db/LBFactory_Multi.php17
-rw-r--r--includes/db/LBFactory_Single.php21
-rw-r--r--includes/db/LoadBalancer.php25
-rw-r--r--includes/db/LoadMonitor.php17
-rw-r--r--includes/db/ORMIterator.php31
-rw-r--r--includes/db/ORMResult.php123
-rw-r--r--includes/db/ORMRow.php663
-rw-r--r--includes/db/ORMTable.php675
-rw-r--r--includes/debug/Debug.php371
-rw-r--r--includes/diff/DairikiDiff.php20
-rw-r--r--includes/diff/DifferenceEngine.php88
-rw-r--r--includes/filebackend/FSFile.php (renamed from includes/filerepo/backend/FSFile.php)29
-rw-r--r--includes/filebackend/FSFileBackend.php986
-rw-r--r--includes/filebackend/FileBackend.php1173
-rw-r--r--includes/filebackend/FileBackendGroup.php (renamed from includes/filerepo/backend/FileBackendGroup.php)37
-rw-r--r--includes/filebackend/FileBackendMultiWrite.php689
-rw-r--r--includes/filebackend/FileBackendStore.php1766
-rw-r--r--includes/filebackend/FileOp.php (renamed from includes/filerepo/backend/FileOp.php)523
-rw-r--r--includes/filebackend/FileOpBatch.php240
-rw-r--r--includes/filebackend/SwiftFileBackend.php1544
-rw-r--r--includes/filebackend/TempFSFile.php (renamed from includes/filerepo/backend/TempFSFile.php)41
-rw-r--r--includes/filebackend/filejournal/DBFileJournal.php152
-rw-r--r--includes/filebackend/filejournal/FileJournal.php196
-rw-r--r--includes/filebackend/lockmanager/DBLockManager.php374
-rw-r--r--includes/filebackend/lockmanager/FSLockManager.php (renamed from includes/filerepo/backend/lockmanager/FSLockManager.php)89
-rw-r--r--includes/filebackend/lockmanager/LSLockManager.php218
-rw-r--r--includes/filebackend/lockmanager/LockManager.php425
-rw-r--r--includes/filebackend/lockmanager/LockManagerGroup.php (renamed from includes/filerepo/backend/lockmanager/LockManagerGroup.php)62
-rw-r--r--includes/filebackend/lockmanager/MemcLockManager.php319
-rw-r--r--includes/filerepo/FSRepo.php20
-rw-r--r--includes/filerepo/FileRepo.php659
-rw-r--r--includes/filerepo/FileRepoStatus.php17
-rw-r--r--includes/filerepo/ForeignAPIRepo.php138
-rw-r--r--includes/filerepo/ForeignDBRepo.php40
-rw-r--r--includes/filerepo/ForeignDBViaLBRepo.php37
-rw-r--r--includes/filerepo/LocalRepo.php66
-rw-r--r--includes/filerepo/NullRepo.php54
-rw-r--r--includes/filerepo/RepoGroup.php120
-rw-r--r--includes/filerepo/backend/FSFileBackend.php600
-rw-r--r--includes/filerepo/backend/FileBackend.php1739
-rw-r--r--includes/filerepo/backend/FileBackendMultiWrite.php420
-rw-r--r--includes/filerepo/backend/SwiftFileBackend.php877
-rw-r--r--includes/filerepo/backend/lockmanager/DBLockManager.php469
-rw-r--r--includes/filerepo/backend/lockmanager/LSLockManager.php295
-rw-r--r--includes/filerepo/backend/lockmanager/LockManager.php182
-rw-r--r--includes/filerepo/file/ArchivedFile.php21
-rw-r--r--includes/filerepo/file/File.php219
-rw-r--r--includes/filerepo/file/ForeignAPIFile.php90
-rw-r--r--includes/filerepo/file/ForeignDBFile.php46
-rw-r--r--includes/filerepo/file/LocalFile.php491
-rw-r--r--includes/filerepo/file/OldLocalFile.php103
-rw-r--r--includes/filerepo/file/UnregisteredLocalFile.php57
-rw-r--r--includes/installer/CliInstaller.php21
-rw-r--r--includes/installer/DatabaseInstaller.php38
-rw-r--r--includes/installer/DatabaseUpdater.php127
-rw-r--r--includes/installer/Ibm_db2Installer.php17
-rw-r--r--includes/installer/Ibm_db2Updater.php25
-rw-r--r--includes/installer/InstallDocFormatter.php20
-rw-r--r--includes/installer/Installer.i18n.php7
-rw-r--r--includes/installer/Installer.php98
-rw-r--r--includes/installer/LocalSettingsGenerator.php34
-rw-r--r--includes/installer/MysqlInstaller.php33
-rw-r--r--includes/installer/MysqlUpdater.php115
-rw-r--r--includes/installer/OracleInstaller.php20
-rw-r--r--includes/installer/OracleUpdater.php59
-rw-r--r--includes/installer/PostgresInstaller.php57
-rw-r--r--includes/installer/PostgresUpdater.php248
-rw-r--r--includes/installer/SqliteInstaller.php17
-rw-r--r--includes/installer/SqliteUpdater.php33
-rw-r--r--includes/installer/WebInstaller.php57
-rw-r--r--includes/installer/WebInstallerOutput.php26
-rw-r--r--includes/installer/WebInstallerPage.php101
-rw-r--r--includes/interwiki/Interwiki.php41
-rw-r--r--includes/job/DoubleRedirectJob.php30
-rw-r--r--includes/job/EmaillingJob.php15
-rw-r--r--includes/job/EnotifNotifyJob.php15
-rw-r--r--includes/job/Job.php (renamed from includes/job/JobQueue.php)92
-rw-r--r--includes/job/RefreshLinksJob.php162
-rw-r--r--includes/job/UploadFromUrlJob.php33
-rw-r--r--includes/json/FormatJson.php32
-rw-r--r--includes/json/Services_JSON.php1
-rw-r--r--includes/libs/CSSJanus.php16
-rw-r--r--includes/libs/CSSMin.php26
-rw-r--r--includes/libs/GenericArrayObject.php244
-rw-r--r--includes/libs/HttpStatus.php21
-rw-r--r--includes/libs/IEContentAnalyzer.php6
-rw-r--r--includes/libs/IEUrlExtension.php26
-rw-r--r--includes/libs/JavaScriptMinifier.php10
-rw-r--r--includes/libs/jsminplus.php2
-rw-r--r--includes/logging/LogEntry.php43
-rw-r--r--includes/logging/LogEventsList.php347
-rw-r--r--includes/logging/LogFormatter.php393
-rw-r--r--includes/logging/LogPage.php72
-rw-r--r--includes/logging/LogPager.php2
-rw-r--r--includes/logging/PatrolLog.php53
-rw-r--r--includes/media/BMP.php17
-rw-r--r--includes/media/Bitmap.php64
-rw-r--r--includes/media/BitmapMetadataHandler.php41
-rw-r--r--includes/media/Bitmap_ClientOnly.php20
-rw-r--r--includes/media/DjVu.php50
-rw-r--r--includes/media/DjVuImage.php4
-rw-r--r--includes/media/Exif.php9
-rw-r--r--includes/media/ExifBitmap.php20
-rw-r--r--includes/media/FormatMetadata.php125
-rw-r--r--includes/media/GIF.php30
-rw-r--r--includes/media/GIFMetadataExtractor.php17
-rw-r--r--includes/media/IPTC.php31
-rw-r--r--includes/media/ImageHandler.php249
-rw-r--r--includes/media/Jpeg.php17
-rw-r--r--includes/media/JpegMetadataExtractor.php44
-rw-r--r--includes/media/MediaHandler.php (renamed from includes/media/Generic.php)287
-rw-r--r--includes/media/MediaTransformOutput.php99
-rw-r--r--includes/media/PNG.php29
-rw-r--r--includes/media/PNGMetadataExtractor.php16
-rw-r--r--includes/media/SVG.php79
-rw-r--r--includes/media/SVGMetadataExtractor.php33
-rw-r--r--includes/media/Tiff.php15
-rw-r--r--includes/media/XCF.php17
-rw-r--r--includes/media/XMP.php62
-rw-r--r--includes/media/XMPInfo.php22
-rw-r--r--includes/media/XMPValidate.php22
-rw-r--r--includes/mobile/DeviceDetection.php459
-rw-r--r--includes/normal/RandomTest.php4
-rw-r--r--includes/normal/UtfNormal.php3
-rw-r--r--includes/normal/UtfNormalDefines.php15
-rw-r--r--includes/normal/UtfNormalTest.php1
-rw-r--r--includes/normal/UtfNormalTest2.php18
-rw-r--r--includes/objectcache/APCBagOStuff.php60
-rw-r--r--includes/objectcache/BagOStuff.php119
-rw-r--r--includes/objectcache/DBABagOStuff.php127
-rw-r--r--includes/objectcache/EhcacheBagOStuff.php82
-rw-r--r--includes/objectcache/EmptyBagOStuff.php37
-rw-r--r--includes/objectcache/HashBagOStuff.php44
-rw-r--r--includes/objectcache/MemcachedBagOStuff.php180
-rw-r--r--includes/objectcache/MemcachedClient.php281
-rw-r--r--includes/objectcache/MemcachedPeclBagOStuff.php237
-rw-r--r--includes/objectcache/MemcachedPhpBagOStuff.php139
-rw-r--r--includes/objectcache/MultiWriteBagOStuff.php86
-rw-r--r--includes/objectcache/ObjectCache.php48
-rw-r--r--includes/objectcache/ObjectCacheSessionHandler.php145
-rw-r--r--includes/objectcache/RedisBagOStuff.php413
-rw-r--r--includes/objectcache/SqlBagOStuff.php314
-rw-r--r--includes/objectcache/WinCacheBagOStuff.php24
-rw-r--r--includes/objectcache/XCacheBagOStuff.php44
-rw-r--r--includes/parser/CacheTime.php132
-rw-r--r--includes/parser/CoreLinkFunctions.php16
-rw-r--r--includes/parser/CoreParserFunctions.php169
-rw-r--r--includes/parser/CoreTagHooks.php16
-rw-r--r--includes/parser/DateFormatter.php91
-rw-r--r--includes/parser/LinkHolderArray.php32
-rw-r--r--includes/parser/Parser.php373
-rw-r--r--includes/parser/ParserCache.php33
-rw-r--r--includes/parser/ParserOptions.php55
-rw-r--r--includes/parser/ParserOutput.php175
-rw-r--r--includes/parser/Parser_DiffTest.php16
-rw-r--r--includes/parser/Parser_LinkHooks.php20
-rw-r--r--includes/parser/Preprocessor.php28
-rw-r--r--includes/parser/Preprocessor_DOM.php80
-rw-r--r--includes/parser/Preprocessor_Hash.php78
-rw-r--r--includes/parser/Preprocessor_HipHop.hphp106
-rw-r--r--includes/parser/StripState.php55
-rw-r--r--includes/parser/Tidy.php22
-rw-r--r--includes/profiler/Profiler.php131
-rw-r--r--includes/profiler/ProfilerSimple.php78
-rw-r--r--includes/profiler/ProfilerSimpleText.php17
-rw-r--r--includes/profiler/ProfilerSimpleTrace.php36
-rw-r--r--includes/profiler/ProfilerSimpleUDP.php21
-rw-r--r--includes/profiler/ProfilerStub.php27
-rw-r--r--includes/resourceloader/ResourceLoader.php166
-rw-r--r--includes/resourceloader/ResourceLoaderContext.php13
-rw-r--r--includes/resourceloader/ResourceLoaderFileModule.php15
-rw-r--r--includes/resourceloader/ResourceLoaderFilePageModule.php21
-rw-r--r--includes/resourceloader/ResourceLoaderLanguageDataModule.php122
-rw-r--r--includes/resourceloader/ResourceLoaderModule.php21
-rw-r--r--includes/resourceloader/ResourceLoaderNoscriptModule.php2
-rw-r--r--includes/resourceloader/ResourceLoaderSiteModule.php2
-rw-r--r--includes/resourceloader/ResourceLoaderStartUpModule.php54
-rw-r--r--includes/resourceloader/ResourceLoaderUserCSSPrefsModule.php14
-rw-r--r--includes/resourceloader/ResourceLoaderUserGroupsModule.php39
-rw-r--r--includes/resourceloader/ResourceLoaderUserModule.php57
-rw-r--r--includes/resourceloader/ResourceLoaderUserOptionsModule.php11
-rw-r--r--includes/resourceloader/ResourceLoaderUserTokensModule.php9
-rw-r--r--includes/resourceloader/ResourceLoaderWikiModule.php19
-rw-r--r--includes/revisiondelete/RevisionDelete.php152
-rw-r--r--includes/revisiondelete/RevisionDeleteAbstracts.php38
-rw-r--r--includes/revisiondelete/RevisionDeleteUser.php22
-rw-r--r--includes/revisiondelete/RevisionDeleter.php84
-rw-r--r--includes/search/SearchEngine.php47
-rw-r--r--includes/search/SearchIBM_DB2.php5
-rw-r--r--includes/search/SearchMssql.php7
-rw-r--r--includes/search/SearchMySQL.php5
-rw-r--r--includes/search/SearchOracle.php4
-rw-r--r--includes/search/SearchPostgres.php1
-rw-r--r--includes/search/SearchSqlite.php1
-rw-r--r--includes/search/SearchUpdate.php15
-rw-r--r--includes/specials/SpecialActiveusers.php54
-rw-r--r--includes/specials/SpecialAllmessages.php22
-rw-r--r--includes/specials/SpecialAllpages.php75
-rw-r--r--includes/specials/SpecialAncientpages.php6
-rw-r--r--includes/specials/SpecialBlock.php196
-rw-r--r--includes/specials/SpecialBlockList.php2
-rw-r--r--includes/specials/SpecialBooksources.php13
-rw-r--r--includes/specials/SpecialBrokenRedirects.php8
-rw-r--r--includes/specials/SpecialCachedPage.php198
-rw-r--r--includes/specials/SpecialCategories.php9
-rw-r--r--includes/specials/SpecialChangeEmail.php84
-rw-r--r--includes/specials/SpecialChangePassword.php31
-rw-r--r--includes/specials/SpecialConfirmemail.php4
-rw-r--r--includes/specials/SpecialContributions.php413
-rw-r--r--includes/specials/SpecialDeadendpages.php10
-rw-r--r--includes/specials/SpecialDeletedContributions.php55
-rw-r--r--includes/specials/SpecialDisambiguations.php75
-rw-r--r--includes/specials/SpecialDoubleRedirects.php16
-rw-r--r--includes/specials/SpecialEditWatchlist.php84
-rw-r--r--includes/specials/SpecialEmailuser.php74
-rw-r--r--includes/specials/SpecialExport.php49
-rw-r--r--includes/specials/SpecialFewestrevisions.php16
-rw-r--r--includes/specials/SpecialFileDuplicateSearch.php30
-rw-r--r--includes/specials/SpecialFilepath.php6
-rw-r--r--includes/specials/SpecialImport.php97
-rw-r--r--includes/specials/SpecialJavaScriptTest.php61
-rw-r--r--includes/specials/SpecialLinkSearch.php29
-rw-r--r--includes/specials/SpecialListfiles.php60
-rw-r--r--includes/specials/SpecialListgrouprights.php44
-rw-r--r--includes/specials/SpecialListredirects.php8
-rw-r--r--includes/specials/SpecialListusers.php126
-rw-r--r--includes/specials/SpecialLockdb.php10
-rw-r--r--includes/specials/SpecialLog.php35
-rw-r--r--includes/specials/SpecialLonelypages.php8
-rw-r--r--includes/specials/SpecialMIMEsearch.php31
-rw-r--r--includes/specials/SpecialMergeHistory.php66
-rw-r--r--includes/specials/SpecialMostcategories.php40
-rw-r--r--includes/specials/SpecialMostimages.php6
-rw-r--r--includes/specials/SpecialMostinterwikis.php112
-rw-r--r--includes/specials/SpecialMostlinked.php17
-rw-r--r--includes/specials/SpecialMostlinkedcategories.php22
-rw-r--r--includes/specials/SpecialMostlinkedtemplates.php24
-rw-r--r--includes/specials/SpecialMovepage.php77
-rw-r--r--includes/specials/SpecialNewimages.php34
-rw-r--r--includes/specials/SpecialNewpages.php66
-rw-r--r--includes/specials/SpecialPasswordReset.php17
-rw-r--r--includes/specials/SpecialPopularpages.php14
-rw-r--r--includes/specials/SpecialPreferences.php7
-rw-r--r--includes/specials/SpecialPrefixindex.php78
-rw-r--r--includes/specials/SpecialProtectedpages.php89
-rw-r--r--includes/specials/SpecialProtectedtitles.php55
-rw-r--r--includes/specials/SpecialRandompage.php2
-rw-r--r--includes/specials/SpecialRecentchanges.php119
-rw-r--r--includes/specials/SpecialRecentchangeslinked.php23
-rw-r--r--includes/specials/SpecialRevisiondelete.php105
-rw-r--r--includes/specials/SpecialSearch.php159
-rw-r--r--includes/specials/SpecialShortpages.php55
-rw-r--r--includes/specials/SpecialStatistics.php46
-rw-r--r--includes/specials/SpecialTags.php27
-rw-r--r--includes/specials/SpecialUnblock.php15
-rw-r--r--includes/specials/SpecialUncategorizedimages.php6
-rw-r--r--includes/specials/SpecialUncategorizedpages.php6
-rw-r--r--includes/specials/SpecialUndelete.php111
-rw-r--r--includes/specials/SpecialUnusedcategories.php7
-rw-r--r--includes/specials/SpecialUnusedimages.php8
-rw-r--r--includes/specials/SpecialUnusedtemplates.php16
-rw-r--r--includes/specials/SpecialUnwatchedpages.php20
-rw-r--r--includes/specials/SpecialUpload.php141
-rw-r--r--includes/specials/SpecialUploadStash.php44
-rw-r--r--includes/specials/SpecialUserlogin.php158
-rw-r--r--includes/specials/SpecialUserlogout.php2
-rw-r--r--includes/specials/SpecialUserrights.php38
-rw-r--r--includes/specials/SpecialVersion.php256
-rw-r--r--includes/specials/SpecialWantedcategories.php6
-rw-r--r--includes/specials/SpecialWantedfiles.php9
-rw-r--r--includes/specials/SpecialWantedpages.php8
-rw-r--r--includes/specials/SpecialWantedtemplates.php8
-rw-r--r--includes/specials/SpecialWatchlist.php81
-rw-r--r--includes/specials/SpecialWhatlinkshere.php44
-rw-r--r--includes/specials/SpecialWithoutinterwiki.php18
-rw-r--r--includes/templates/NoLocalSettings.php17
-rw-r--r--includes/templates/Usercreate.php22
-rw-r--r--includes/templates/Userlogin.php38
-rw-r--r--includes/tidy.conf1
-rw-r--r--includes/upload/UploadBase.php148
-rw-r--r--includes/upload/UploadFromChunks.php122
-rw-r--r--includes/upload/UploadFromFile.php33
-rw-r--r--includes/upload/UploadFromStash.php28
-rw-r--r--includes/upload/UploadFromUrl.php86
-rw-r--r--includes/upload/UploadStash.php48
-rw-r--r--includes/zhtable/Makefile.py14
-rw-r--r--includes/zhtable/simp2trad.manual1
-rw-r--r--includes/zhtable/toCN.manual1
-rw-r--r--includes/zhtable/toHK.manual58
-rw-r--r--includes/zhtable/toTW.manual1
-rw-r--r--includes/zhtable/trad2simp.manual1
-rw-r--r--includes/zhtable/tradphrases.manual3
-rw-r--r--index.php5
-rw-r--r--index.php525
-rw-r--r--languages/Language.php399
-rw-r--r--languages/LanguageConverter.php55
-rw-r--r--languages/Names.php289
-rw-r--r--languages/classes/LanguageAm.php22
-rw-r--r--languages/classes/LanguageAr.php51
-rw-r--r--languages/classes/LanguageAz.php31
-rw-r--r--languages/classes/LanguageBe.php41
-rw-r--r--languages/classes/LanguageBe_tarask.php39
-rw-r--r--languages/classes/LanguageBg.php24
-rw-r--r--languages/classes/LanguageBh.php22
-rw-r--r--languages/classes/LanguageBs.php47
-rw-r--r--languages/classes/LanguageCs.php34
-rw-r--r--languages/classes/LanguageCu.php24
-rw-r--r--languages/classes/LanguageCy.php28
-rw-r--r--languages/classes/LanguageDsb.php42
-rw-r--r--languages/classes/LanguageEo.php26
-rw-r--r--languages/classes/LanguageEt.php25
-rw-r--r--languages/classes/LanguageFi.php27
-rw-r--r--languages/classes/LanguageFr.php22
-rw-r--r--languages/classes/LanguageGa.php44
-rw-r--r--languages/classes/LanguageGan.php27
-rw-r--r--languages/classes/LanguageGd.php46
-rw-r--r--languages/classes/LanguageGv.php27
-rw-r--r--languages/classes/LanguageHe.php43
-rw-r--r--languages/classes/LanguageHi.php22
-rw-r--r--languages/classes/LanguageHr.php30
-rw-r--r--languages/classes/LanguageHsb.php41
-rw-r--r--languages/classes/LanguageHu.php24
-rw-r--r--languages/classes/LanguageHy.php26
-rw-r--r--languages/classes/LanguageIu.deps.php8
-rw-r--r--languages/classes/LanguageIu.php47
-rw-r--r--languages/classes/LanguageJa.php21
-rw-r--r--languages/classes/LanguageKaa.php28
-rw-r--r--languages/classes/LanguageKk.deps.php9
-rw-r--r--languages/classes/LanguageKk.php47
-rw-r--r--languages/classes/LanguageKk_cyrl.php24
-rw-r--r--languages/classes/LanguageKm.php26
-rw-r--r--languages/classes/LanguageKsh.php27
-rw-r--r--languages/classes/LanguageKu.deps.php9
-rw-r--r--languages/classes/LanguageKu.php30
-rw-r--r--languages/classes/LanguageKu_ku.php24
-rw-r--r--languages/classes/LanguageLa.php24
-rw-r--r--languages/classes/LanguageLn.php22
-rw-r--r--languages/classes/LanguageLt.php24
-rw-r--r--languages/classes/LanguageLv.php28
-rw-r--r--languages/classes/LanguageMg.php22
-rw-r--r--languages/classes/LanguageMk.php22
-rw-r--r--languages/classes/LanguageMl.php21
-rw-r--r--languages/classes/LanguageMo.php22
-rw-r--r--languages/classes/LanguageMt.php28
-rw-r--r--languages/classes/LanguageMy.php29
-rw-r--r--languages/classes/LanguageNso.php22
-rw-r--r--languages/classes/LanguageOs.php25
-rw-r--r--languages/classes/LanguagePl.php32
-rw-r--r--languages/classes/LanguageQqx.php22
-rw-r--r--languages/classes/LanguageRo.php22
-rw-r--r--languages/classes/LanguageRu.php34
-rw-r--r--languages/classes/LanguageSe.php22
-rw-r--r--languages/classes/LanguageSgs.php26
-rw-r--r--languages/classes/LanguageSh.php22
-rw-r--r--languages/classes/LanguageShi.deps.php8
-rw-r--r--languages/classes/LanguageShi.php47
-rw-r--r--languages/classes/LanguageSk.php22
-rw-r--r--languages/classes/LanguageSl.php24
-rw-r--r--languages/classes/LanguageSma.php22
-rw-r--r--languages/classes/LanguageSr.deps.php9
-rw-r--r--languages/classes/LanguageSr.php28
-rw-r--r--languages/classes/LanguageSr_ec.php21
-rw-r--r--languages/classes/LanguageSr_el.php21
-rw-r--r--languages/classes/LanguageTg.php24
-rw-r--r--languages/classes/LanguageTi.php22
-rw-r--r--languages/classes/LanguageTl.php22
-rw-r--r--languages/classes/LanguageTr.php22
-rw-r--r--languages/classes/LanguageTyv.php25
-rw-r--r--languages/classes/LanguageUk.php24
-rw-r--r--languages/classes/LanguageUz.php137
-rw-r--r--languages/classes/LanguageWa.php33
-rw-r--r--languages/classes/LanguageYue.php22
-rw-r--r--languages/classes/LanguageZh.deps.php9
-rw-r--r--languages/classes/LanguageZh.php27
-rw-r--r--languages/classes/LanguageZh_hans.php21
-rw-r--r--languages/data/plurals-mediawiki.xml38
-rw-r--r--languages/data/plurals.xml114
-rw-r--r--languages/messages/MessagesAb.php216
-rw-r--r--languages/messages/MessagesAce.php1398
-rw-r--r--languages/messages/MessagesAeb.php1381
-rw-r--r--languages/messages/MessagesAf.php5097
-rw-r--r--languages/messages/MessagesAk.php106
-rw-r--r--languages/messages/MessagesAln.php2136
-rw-r--r--languages/messages/MessagesAm.php3206
-rw-r--r--languages/messages/MessagesAn.php5009
-rw-r--r--languages/messages/MessagesAng.php1691
-rw-r--r--languages/messages/MessagesAnp.php894
-rw-r--r--languages/messages/MessagesAr.php5574
-rw-r--r--languages/messages/MessagesArc.php2366
-rw-r--r--languages/messages/MessagesArn.php1215
-rw-r--r--languages/messages/MessagesAry.php3730
-rw-r--r--languages/messages/MessagesArz.php4584
-rw-r--r--languages/messages/MessagesAs.php5094
-rw-r--r--languages/messages/MessagesAst.php5086
-rw-r--r--languages/messages/MessagesAv.php82
-rw-r--r--languages/messages/MessagesAvk.php3226
-rw-r--r--languages/messages/MessagesAy.php336
-rw-r--r--languages/messages/MessagesAz.php4151
-rw-r--r--languages/messages/MessagesBa.php5032
-rw-r--r--languages/messages/MessagesBar.php2332
-rw-r--r--languages/messages/MessagesBcc.php4001
-rw-r--r--languages/messages/MessagesBcl.php4657
-rw-r--r--languages/messages/MessagesBe.php4942
-rw-r--r--languages/messages/MessagesBe_tarask.php5298
-rw-r--r--languages/messages/MessagesBg.php4968
-rw-r--r--languages/messages/MessagesBh.php966
-rw-r--r--languages/messages/MessagesBho.php974
-rw-r--r--languages/messages/MessagesBi.php130
-rw-r--r--languages/messages/MessagesBjn.php4920
-rw-r--r--languages/messages/MessagesBm.php98
-rw-r--r--languages/messages/MessagesBn.php4977
-rw-r--r--languages/messages/MessagesBo.php1243
-rw-r--r--languages/messages/MessagesBpy.php2289
-rw-r--r--languages/messages/MessagesBqi.php984
-rw-r--r--languages/messages/MessagesBr.php5177
-rw-r--r--languages/messages/MessagesBrh.php837
-rw-r--r--languages/messages/MessagesBs.php5267
-rw-r--r--languages/messages/MessagesBug.php528
-rw-r--r--languages/messages/MessagesCa.php5176
-rw-r--r--languages/messages/MessagesCbk_zam.php114
-rw-r--r--languages/messages/MessagesCdo.php1123
-rw-r--r--languages/messages/MessagesCe.php2023
-rw-r--r--languages/messages/MessagesCeb.php1622
-rw-r--r--languages/messages/MessagesCh.php1434
-rw-r--r--languages/messages/MessagesChr.php90
-rw-r--r--languages/messages/MessagesCkb.php4350
-rw-r--r--languages/messages/MessagesCo.php582
-rw-r--r--languages/messages/MessagesCps.php1320
-rw-r--r--languages/messages/MessagesCrh_cyrl.php2740
-rw-r--r--languages/messages/MessagesCrh_latn.php2742
-rw-r--r--languages/messages/MessagesCs.php5415
-rw-r--r--languages/messages/MessagesCsb.php1689
-rw-r--r--languages/messages/MessagesCu.php905
-rw-r--r--languages/messages/MessagesCv.php1586
-rw-r--r--languages/messages/MessagesCy.php5129
-rw-r--r--languages/messages/MessagesDa.php5040
-rw-r--r--languages/messages/MessagesDe.php5417
-rw-r--r--languages/messages/MessagesDe_at.php3
-rw-r--r--languages/messages/MessagesDe_ch.php407
-rw-r--r--languages/messages/MessagesDe_formal.php457
-rw-r--r--languages/messages/MessagesDiq.php5583
-rw-r--r--languages/messages/MessagesDsb.php5052
-rw-r--r--languages/messages/MessagesDtp.php1999
-rw-r--r--languages/messages/MessagesDv.php483
-rw-r--r--languages/messages/MessagesDz.php801
-rw-r--r--languages/messages/MessagesEe.php751
-rw-r--r--languages/messages/MessagesEgl.php692
-rw-r--r--languages/messages/MessagesEl.php5287
-rw-r--r--languages/messages/MessagesEml.php132
-rw-r--r--languages/messages/MessagesEn.php917
-rw-r--r--languages/messages/MessagesEn_gb.php54
-rw-r--r--languages/messages/MessagesEo.php5336
-rw-r--r--languages/messages/MessagesEs.php5359
-rw-r--r--languages/messages/MessagesEt.php5148
-rw-r--r--languages/messages/MessagesEu.php4394
-rw-r--r--languages/messages/MessagesExt.php3243
-rw-r--r--languages/messages/MessagesFa.php5446
-rw-r--r--languages/messages/MessagesFf.php652
-rw-r--r--languages/messages/MessagesFi.php5297
-rw-r--r--languages/messages/MessagesFit.php714
-rw-r--r--languages/messages/MessagesFj.php216
-rw-r--r--languages/messages/MessagesFo.php2876
-rw-r--r--languages/messages/MessagesFr.php5465
-rw-r--r--languages/messages/MessagesFrc.php959
-rw-r--r--languages/messages/MessagesFrp.php5383
-rw-r--r--languages/messages/MessagesFrr.php2556
-rw-r--r--languages/messages/MessagesFur.php2226
-rw-r--r--languages/messages/MessagesFy.php3039
-rw-r--r--languages/messages/MessagesGa.php2854
-rw-r--r--languages/messages/MessagesGag.php1324
-rw-r--r--languages/messages/MessagesGan.php31
-rw-r--r--languages/messages/MessagesGan_hans.php3104
-rw-r--r--languages/messages/MessagesGan_hant.php3104
-rw-r--r--languages/messages/MessagesGd.php1962
-rw-r--r--languages/messages/MessagesGl.php5203
-rw-r--r--languages/messages/MessagesGlk.php56
-rw-r--r--languages/messages/MessagesGn.php596
-rw-r--r--languages/messages/MessagesGot.php19
-rw-r--r--languages/messages/MessagesGrc.php3777
-rw-r--r--languages/messages/MessagesGsw.php5126
-rw-r--r--languages/messages/MessagesGu.php4939
-rw-r--r--languages/messages/MessagesGv.php1898
-rw-r--r--languages/messages/MessagesHa.php956
-rw-r--r--languages/messages/MessagesHak.php2385
-rw-r--r--languages/messages/MessagesHaw.php1069
-rw-r--r--languages/messages/MessagesHe.php5502
-rw-r--r--languages/messages/MessagesHi.php5076
-rw-r--r--languages/messages/MessagesHif_latn.php4152
-rw-r--r--languages/messages/MessagesHil.php2108
-rw-r--r--languages/messages/MessagesHr.php5225
-rw-r--r--languages/messages/MessagesHsb.php5040
-rw-r--r--languages/messages/MessagesHt.php1664
-rw-r--r--languages/messages/MessagesHu.php5309
-rw-r--r--languages/messages/MessagesHy.php3527
-rw-r--r--languages/messages/MessagesIa.php5071
-rw-r--r--languages/messages/MessagesId.php5374
-rw-r--r--languages/messages/MessagesIe.php1735
-rw-r--r--languages/messages/MessagesIg.php2199
-rw-r--r--languages/messages/MessagesIke_cans.php445
-rw-r--r--languages/messages/MessagesIke_latn.php375
-rw-r--r--languages/messages/MessagesIlo.php5018
-rw-r--r--languages/messages/MessagesInh.php1546
-rw-r--r--languages/messages/MessagesIo.php1985
-rw-r--r--languages/messages/MessagesIs.php4844
-rw-r--r--languages/messages/MessagesIt.php5230
-rw-r--r--languages/messages/MessagesJa.php5580
-rw-r--r--languages/messages/MessagesJam.php1388
-rw-r--r--languages/messages/MessagesJbo.php508
-rw-r--r--languages/messages/MessagesJut.php1078
-rw-r--r--languages/messages/MessagesJv.php4949
-rw-r--r--languages/messages/MessagesKa.php5269
-rw-r--r--languages/messages/MessagesKaa.php2570
-rw-r--r--languages/messages/MessagesKab.php4045
-rw-r--r--languages/messages/MessagesKbd_cyrl.php1747
-rw-r--r--languages/messages/MessagesKg.php296
-rw-r--r--languages/messages/MessagesKhw.php1494
-rw-r--r--languages/messages/MessagesKiu.php2159
-rw-r--r--languages/messages/MessagesKk_arab.php3565
-rw-r--r--languages/messages/MessagesKk_cn.php2
-rw-r--r--languages/messages/MessagesKk_cyrl.php4099
-rw-r--r--languages/messages/MessagesKk_latn.php3567
-rw-r--r--languages/messages/MessagesKl.php635
-rw-r--r--languages/messages/MessagesKm.php4639
-rw-r--r--languages/messages/MessagesKn.php2813
-rw-r--r--languages/messages/MessagesKo.php5425
-rw-r--r--languages/messages/MessagesKoi.php1023
-rw-r--r--languages/messages/MessagesKrc.php4798
-rw-r--r--languages/messages/MessagesKri.php612
-rw-r--r--languages/messages/MessagesKrj.php370
-rw-r--r--languages/messages/MessagesKs.php50
-rw-r--r--languages/messages/MessagesKs_arab.php38
-rw-r--r--languages/messages/MessagesKsh.php5197
-rw-r--r--languages/messages/MessagesKu_arab.php2
-rw-r--r--languages/messages/MessagesKu_latn.php2905
-rw-r--r--languages/messages/MessagesKv.php192
-rw-r--r--languages/messages/MessagesKw.php1500
-rw-r--r--languages/messages/MessagesKy.php1316
-rw-r--r--languages/messages/MessagesLa.php3111
-rw-r--r--languages/messages/MessagesLad.php1442
-rw-r--r--languages/messages/MessagesLb.php5041
-rw-r--r--languages/messages/MessagesLbe.php44
-rw-r--r--languages/messages/MessagesLez.php1821
-rw-r--r--languages/messages/MessagesLfn.php1210
-rw-r--r--languages/messages/MessagesLg.php1702
-rw-r--r--languages/messages/MessagesLi.php4954
-rw-r--r--languages/messages/MessagesLij.php1500
-rw-r--r--languages/messages/MessagesLiv.php991
-rw-r--r--languages/messages/MessagesLmo.php1674
-rw-r--r--languages/messages/MessagesLn.php892
-rw-r--r--languages/messages/MessagesLo.php1201
-rw-r--r--languages/messages/MessagesLoz.php1423
-rw-r--r--languages/messages/MessagesLt.php5013
-rw-r--r--languages/messages/MessagesLtg.php1113
-rw-r--r--languages/messages/MessagesLus.php1939
-rw-r--r--languages/messages/MessagesLv.php4214
-rw-r--r--languages/messages/MessagesLzh.php4020
-rw-r--r--languages/messages/MessagesLzz.php962
-rw-r--r--languages/messages/MessagesMai.php4774
-rw-r--r--languages/messages/MessagesMap_bms.php2548
-rw-r--r--languages/messages/MessagesMdf.php3808
-rw-r--r--languages/messages/MessagesMg.php4425
-rw-r--r--languages/messages/MessagesMhr.php1400
-rw-r--r--languages/messages/MessagesMi.php102
-rw-r--r--languages/messages/MessagesMin.php1673
-rw-r--r--languages/messages/MessagesMk.php5549
-rw-r--r--languages/messages/MessagesMl.php5360
-rw-r--r--languages/messages/MessagesMn.php4486
-rw-r--r--languages/messages/MessagesMo.php707
-rw-r--r--languages/messages/MessagesMr.php5295
-rw-r--r--languages/messages/MessagesMrj.php918
-rw-r--r--languages/messages/MessagesMs.php5161
-rw-r--r--languages/messages/MessagesMt.php5073
-rw-r--r--languages/messages/MessagesMwl.php1520
-rw-r--r--languages/messages/MessagesMy.php2717
-rw-r--r--languages/messages/MessagesMyv.php2932
-rw-r--r--languages/messages/MessagesMzn.php1409
-rw-r--r--languages/messages/MessagesNa.php76
-rw-r--r--languages/messages/MessagesNah.php2011
-rw-r--r--languages/messages/MessagesNan.php1572
-rw-r--r--languages/messages/MessagesNap.php487
-rw-r--r--languages/messages/MessagesNb.php5353
-rw-r--r--languages/messages/MessagesNds.php4089
-rw-r--r--languages/messages/MessagesNds_nl.php5297
-rw-r--r--languages/messages/MessagesNe.php4704
-rw-r--r--languages/messages/MessagesNew.php532
-rw-r--r--languages/messages/MessagesNiu.php252
-rw-r--r--languages/messages/MessagesNl.php5414
-rw-r--r--languages/messages/MessagesNl_informal.php384
-rw-r--r--languages/messages/MessagesNn.php5230
-rw-r--r--languages/messages/MessagesNo.php4635
-rw-r--r--languages/messages/MessagesNov.php542
-rw-r--r--languages/messages/MessagesNso.php1623
-rw-r--r--languages/messages/MessagesNv.php426
-rw-r--r--languages/messages/MessagesOc.php4606
-rw-r--r--languages/messages/MessagesOm.php84
-rw-r--r--languages/messages/MessagesOr.php5221
-rw-r--r--languages/messages/MessagesOs.php2054
-rw-r--r--languages/messages/MessagesPa.php2877
-rw-r--r--languages/messages/MessagesPag.php387
-rw-r--r--languages/messages/MessagesPam.php3078
-rw-r--r--languages/messages/MessagesPap.php454
-rw-r--r--languages/messages/MessagesPcd.php1379
-rw-r--r--languages/messages/MessagesPdc.php1233
-rw-r--r--languages/messages/MessagesPdt.php781
-rw-r--r--languages/messages/MessagesPfl.php956
-rw-r--r--languages/messages/MessagesPi.php2
-rw-r--r--languages/messages/MessagesPih.php48
-rw-r--r--languages/messages/MessagesPl.php5312
-rw-r--r--languages/messages/MessagesPms.php5058
-rw-r--r--languages/messages/MessagesPnb.php4890
-rw-r--r--languages/messages/MessagesPnt.php1818
-rw-r--r--languages/messages/MessagesPrg.php3772
-rw-r--r--languages/messages/MessagesPs.php3515
-rw-r--r--languages/messages/MessagesPt.php5286
-rw-r--r--languages/messages/MessagesPt_br.php5270
-rw-r--r--languages/messages/MessagesQqq.php4198
-rw-r--r--languages/messages/MessagesQu.php5270
-rw-r--r--languages/messages/MessagesQug.php1211
-rw-r--r--languages/messages/MessagesRgn.php962
-rw-r--r--languages/messages/MessagesRif.php939
-rw-r--r--languages/messages/MessagesRm.php4656
-rw-r--r--languages/messages/MessagesRmy.php620
-rw-r--r--languages/messages/MessagesRo.php5307
-rw-r--r--languages/messages/MessagesRoa_tara.php5349
-rw-r--r--languages/messages/MessagesRu.php5629
-rw-r--r--languages/messages/MessagesRue.php5046
-rw-r--r--languages/messages/MessagesRup.php206
-rw-r--r--languages/messages/MessagesRuq_cyrl.php400
-rw-r--r--languages/messages/MessagesRuq_latn.php400
-rw-r--r--languages/messages/MessagesSa.php5214
-rw-r--r--languages/messages/MessagesSah.php4986
-rw-r--r--languages/messages/MessagesSat.php1224
-rw-r--r--languages/messages/MessagesSc.php2019
-rw-r--r--languages/messages/MessagesScn.php4067
-rw-r--r--languages/messages/MessagesSco.php2032
-rw-r--r--languages/messages/MessagesSd.php1149
-rw-r--r--languages/messages/MessagesSdc.php2695
-rw-r--r--languages/messages/MessagesSe.php2016
-rw-r--r--languages/messages/MessagesSei.php1438
-rw-r--r--languages/messages/MessagesSg.php427
-rw-r--r--languages/messages/MessagesSgs.php2612
-rw-r--r--languages/messages/MessagesSh.php5179
-rw-r--r--languages/messages/MessagesShi.php1906
-rw-r--r--languages/messages/MessagesSi.php5141
-rw-r--r--languages/messages/MessagesSimple.php9
-rw-r--r--languages/messages/MessagesSk.php5215
-rw-r--r--languages/messages/MessagesSl.php5108
-rw-r--r--languages/messages/MessagesSli.php3202
-rw-r--r--languages/messages/MessagesSm.php234
-rw-r--r--languages/messages/MessagesSma.php1093
-rw-r--r--languages/messages/MessagesSn.php180
-rw-r--r--languages/messages/MessagesSo.php1848
-rw-r--r--languages/messages/MessagesSq.php5088
-rw-r--r--languages/messages/MessagesSr_ec.php5623
-rw-r--r--languages/messages/MessagesSr_el.php5611
-rw-r--r--languages/messages/MessagesSrn.php1558
-rw-r--r--languages/messages/MessagesSs.php358
-rw-r--r--languages/messages/MessagesSt.php156
-rw-r--r--languages/messages/MessagesStq.php4532
-rw-r--r--languages/messages/MessagesSu.php4124
-rw-r--r--languages/messages/MessagesSv.php5347
-rw-r--r--languages/messages/MessagesSw.php4088
-rw-r--r--languages/messages/MessagesSzl.php3944
-rw-r--r--languages/messages/MessagesTa.php4938
-rw-r--r--languages/messages/MessagesTcy.php1398
-rw-r--r--languages/messages/MessagesTe.php4751
-rw-r--r--languages/messages/MessagesTet.php1157
-rw-r--r--languages/messages/MessagesTg_cyrl.php3382
-rw-r--r--languages/messages/MessagesTg_latn.php3226
-rw-r--r--languages/messages/MessagesTh.php4650
-rw-r--r--languages/messages/MessagesTi.php148
-rw-r--r--languages/messages/MessagesTk.php4227
-rw-r--r--languages/messages/MessagesTl.php5547
-rw-r--r--languages/messages/MessagesTly.php1052
-rw-r--r--languages/messages/MessagesTn.php174
-rw-r--r--languages/messages/MessagesTo.php1650
-rw-r--r--languages/messages/MessagesTokipona.php166
-rw-r--r--languages/messages/MessagesTpi.php1136
-rw-r--r--languages/messages/MessagesTr.php5157
-rw-r--r--languages/messages/MessagesTru.php884
-rw-r--r--languages/messages/MessagesTs.php1224
-rw-r--r--languages/messages/MessagesTt.php7
-rw-r--r--languages/messages/MessagesTt_cyrl.php3258
-rw-r--r--languages/messages/MessagesTt_latn.php2915
-rw-r--r--languages/messages/MessagesTy.php170
-rw-r--r--languages/messages/MessagesTyv.php1748
-rw-r--r--languages/messages/MessagesUdm.php331
-rw-r--r--languages/messages/MessagesUg_arab.php4811
-rw-r--r--languages/messages/MessagesUg_latn.php220
-rw-r--r--languages/messages/MessagesUk.php5709
-rw-r--r--languages/messages/MessagesUr.php2014
-rw-r--r--languages/messages/MessagesUz.php1998
-rw-r--r--languages/messages/MessagesVec.php4476
-rw-r--r--languages/messages/MessagesVep.php4205
-rw-r--r--languages/messages/MessagesVi.php5402
-rw-r--r--languages/messages/MessagesVls.php221
-rw-r--r--languages/messages/MessagesVmf.php1202
-rw-r--r--languages/messages/MessagesVo.php3792
-rw-r--r--languages/messages/MessagesVot.php1191
-rw-r--r--languages/messages/MessagesVro.php3051
-rw-r--r--languages/messages/MessagesWa.php3127
-rw-r--r--languages/messages/MessagesWar.php3068
-rw-r--r--languages/messages/MessagesWo.php3118
-rw-r--r--languages/messages/MessagesWuu.php2142
-rw-r--r--languages/messages/MessagesXal.php1678
-rw-r--r--languages/messages/MessagesXh.php148
-rw-r--r--languages/messages/MessagesXmf.php1181
-rw-r--r--languages/messages/MessagesYi.php4912
-rw-r--r--languages/messages/MessagesYo.php4043
-rw-r--r--languages/messages/MessagesYue.php4347
-rw-r--r--languages/messages/MessagesZa.php380
-rw-r--r--languages/messages/MessagesZea.php1830
-rw-r--r--languages/messages/MessagesZh.php13
-rw-r--r--languages/messages/MessagesZh_hans.php5162
-rw-r--r--languages/messages/MessagesZh_hant.php5091
-rw-r--r--languages/messages/MessagesZh_tw.php2
-rw-r--r--languages/messages/MessagesZu.php354
-rw-r--r--languages/utils/CLDRPluralRuleEvaluator.php574
-rw-r--r--load.php6
-rw-r--r--load.php525
-rw-r--r--maintenance/Doxyfile6
-rw-r--r--maintenance/Maintenance.php80
-rw-r--r--maintenance/archives/patch-cat_hidden.sql3
-rw-r--r--maintenance/archives/patch-filejournal.sql20
-rw-r--r--maintenance/archives/patch-ipb-parent-block-id-index.sql2
-rw-r--r--maintenance/archives/patch-ipb-parent-block-id.sql3
-rw-r--r--maintenance/archives/patch-revision-user-page-index.sql4
-rw-r--r--maintenance/archives/upgradeLogging.php24
-rw-r--r--maintenance/attachLatest.php11
-rw-r--r--maintenance/backup.inc42
-rw-r--r--maintenance/backupTextPass.inc794
-rw-r--r--maintenance/benchmarks/Benchmarker.php16
-rw-r--r--maintenance/benchmarks/bench_HTTP_HTTPS.php12
-rw-r--r--maintenance/benchmarks/bench_delete_truncate.php36
-rw-r--r--maintenance/benchmarks/bench_if_switch.php10
-rw-r--r--maintenance/benchmarks/bench_strtr_str_replace.php26
-rw-r--r--maintenance/benchmarks/bench_utf8_title_check.php126
-rw-r--r--maintenance/benchmarks/bench_wfIsWindows.php12
-rw-r--r--maintenance/benchmarks/benchmarkHooks.php17
-rw-r--r--maintenance/benchmarks/benchmarkPurge.php13
-rw-r--r--maintenance/cdb.php2
-rw-r--r--maintenance/changePassword.php7
-rw-r--r--maintenance/checkAutoLoader.php7
-rw-r--r--maintenance/checkBadRedirects.php10
-rw-r--r--maintenance/checkImages.php9
-rw-r--r--maintenance/checkSyntax.php78
-rw-r--r--maintenance/checkUsernames.php14
-rw-r--r--maintenance/cleanupAncientTables.php113
-rw-r--r--maintenance/cleanupCaps.php9
-rw-r--r--maintenance/cleanupImages.php22
-rw-r--r--maintenance/cleanupPreferences.php (renamed from maintenance/refreshImageCount.php)106
-rw-r--r--maintenance/cleanupRemovedModules.php11
-rw-r--r--maintenance/cleanupSpam.php35
-rw-r--r--maintenance/cleanupTable.inc13
-rw-r--r--maintenance/cleanupTitles.php9
-rw-r--r--maintenance/cleanupUploadStash.php16
-rw-r--r--maintenance/cleanupWatchlist.php11
-rw-r--r--maintenance/clear_interwiki_cache.php10
-rw-r--r--maintenance/clear_stats.php9
-rw-r--r--maintenance/commandLine.inc2
-rw-r--r--maintenance/compareParsers.php47
-rw-r--r--maintenance/convertLinks.php15
-rw-r--r--maintenance/convertUserOptions.php11
-rw-r--r--maintenance/copyFileBackend.php201
-rw-r--r--maintenance/createAndPromote.php11
-rw-r--r--maintenance/deleteArchivedFiles.inc16
-rw-r--r--maintenance/deleteArchivedFiles.php14
-rw-r--r--maintenance/deleteArchivedRevisions.inc13
-rw-r--r--maintenance/deleteArchivedRevisions.php15
-rw-r--r--maintenance/deleteBatch.php14
-rw-r--r--maintenance/deleteDefaultMessages.php15
-rw-r--r--maintenance/deleteImageMemcached.php10
-rw-r--r--maintenance/deleteOldRevisions.php13
-rw-r--r--maintenance/deleteOrphanedRevisions.php17
-rw-r--r--maintenance/deleteRevision.php9
-rw-r--r--maintenance/deleteSelfExternals.php18
-rw-r--r--maintenance/dev/includes/php.sh22
-rw-r--r--maintenance/dev/includes/router.php26
-rw-r--r--maintenance/doMaintenance.php5
-rw-r--r--maintenance/dumpBackup.php8
-rw-r--r--maintenance/dumpIterator.php19
-rw-r--r--maintenance/dumpLinks.php14
-rw-r--r--maintenance/dumpSisterSites.php10
-rw-r--r--maintenance/dumpTextPass.php630
-rw-r--r--maintenance/dumpUploads.php11
-rw-r--r--maintenance/edit.php10
-rw-r--r--maintenance/eval.php2
-rw-r--r--maintenance/fetchText.php10
-rw-r--r--maintenance/fileOpPerfTest.php146
-rw-r--r--maintenance/findHooks.php13
-rw-r--r--maintenance/fixDoubleRedirects.php13
-rw-r--r--maintenance/fixExtLinksProtocolRelative.php9
-rw-r--r--maintenance/fixSlaveDesync.php19
-rw-r--r--maintenance/fixTimestamps.php19
-rw-r--r--maintenance/fixUserRegistration.php8
-rw-r--r--maintenance/formatInstallDoc.php25
-rw-r--r--maintenance/fuzz-tester.php6
-rw-r--r--maintenance/generateSitemap.php32
-rw-r--r--maintenance/getLagTimes.php10
-rw-r--r--maintenance/getSlaveServer.php10
-rw-r--r--maintenance/getText.php11
-rw-r--r--maintenance/hiphop/make6
-rw-r--r--maintenance/hiphop/run-server6
-rw-r--r--maintenance/ibm_db2/tables.sql14
-rw-r--r--maintenance/importDump.php12
-rw-r--r--maintenance/importImages.inc10
-rw-r--r--maintenance/importImages.php9
-rw-r--r--maintenance/importSiteScripts.php53
-rw-r--r--maintenance/importTextFile.php6
-rw-r--r--maintenance/initEditCount.php2
-rw-r--r--maintenance/initStats.php9
-rw-r--r--maintenance/install.php20
-rw-r--r--maintenance/interwiki.list9
-rw-r--r--maintenance/interwiki.sql9
-rw-r--r--maintenance/jsparse.php12
-rw-r--r--maintenance/lag.php7
-rw-r--r--maintenance/language/StatOutputs.php4
-rw-r--r--maintenance/language/alltrans.php9
-rw-r--r--maintenance/language/checkDupeMessages.php6
-rw-r--r--maintenance/language/checkExtensions.php2
-rw-r--r--maintenance/language/checkLanguage.inc47
-rw-r--r--maintenance/language/checkLanguage.php2
-rw-r--r--maintenance/language/countMessages.php9
-rw-r--r--maintenance/language/date-formats.php8
-rw-r--r--maintenance/language/digit2html.php10
-rw-r--r--maintenance/language/dumpMessages.php14
-rw-r--r--maintenance/language/generateCollationData.php24
-rw-r--r--maintenance/language/generateNormalizerData.php7
-rw-r--r--maintenance/language/lang2po.php166
-rw-r--r--maintenance/language/langmemusage.php4
-rw-r--r--maintenance/language/languages.inc16
-rw-r--r--maintenance/language/messageTypes.inc63
-rw-r--r--maintenance/language/messages.inc197
-rw-r--r--maintenance/language/rebuildLanguage.php21
-rw-r--r--maintenance/language/transstat.php8
-rw-r--r--maintenance/language/validate.php3
-rw-r--r--maintenance/language/writeMessagesArray.inc23
-rw-r--r--maintenance/locking/LockServerDaemon.php36
-rw-r--r--maintenance/mcc.php2
-rw-r--r--maintenance/mctest.php20
-rw-r--r--maintenance/mergeMessageFileList.php101
-rw-r--r--maintenance/migrateUserGroup.php22
-rw-r--r--maintenance/minify.php7
-rw-r--r--maintenance/moveBatch.php16
-rw-r--r--maintenance/mssql/tables.sql1
-rw-r--r--maintenance/mwdoc-filter.php19
-rw-r--r--maintenance/mwdocgen.php56
-rw-r--r--maintenance/namespaceDupes.php15
-rw-r--r--maintenance/nextJobDB.php11
-rw-r--r--maintenance/nukeNS.php16
-rw-r--r--maintenance/nukePage.php18
-rw-r--r--maintenance/oracle/alterSharedConstraints.php2
-rw-r--r--maintenance/oracle/archives/patch-ipblocks_i05_index.sql4
-rw-r--r--maintenance/oracle/archives/patch-revision_i05_index.sql4
-rw-r--r--maintenance/oracle/tables.sql14
-rw-r--r--maintenance/orphans.php17
-rw-r--r--maintenance/parse.php30
-rw-r--r--maintenance/patchSql.php8
-rw-r--r--maintenance/populateCategory.php10
-rw-r--r--maintenance/populateImageSha1.php74
-rw-r--r--maintenance/populateLogSearch.php9
-rw-r--r--maintenance/populateLogUsertext.php13
-rw-r--r--maintenance/populateParentId.php11
-rw-r--r--maintenance/populateRevisionLength.php9
-rw-r--r--maintenance/populateRevisionSha1.php48
-rw-r--r--maintenance/postgres/archives/patch-add_interwiki.sql14
-rw-r--r--maintenance/postgres/archives/patch-category.sql4
-rw-r--r--maintenance/postgres/archives/patch-external_user.sql6
-rw-r--r--maintenance/postgres/archives/patch-ipb_address_unique.sql1
-rw-r--r--maintenance/postgres/archives/patch-log_search.sql2
-rw-r--r--maintenance/postgres/archives/patch-module_deps.sql2
-rw-r--r--maintenance/postgres/archives/patch-msg_resource.sql2
-rw-r--r--maintenance/postgres/archives/patch-msg_resource_links.sql2
-rw-r--r--maintenance/postgres/compare_schemas.pl35
-rw-r--r--maintenance/postgres/tables.sql7
-rw-r--r--maintenance/preprocessDump.php12
-rw-r--r--maintenance/preprocessorFuzzTest.php2
-rw-r--r--maintenance/protect.php14
-rw-r--r--maintenance/proxy_check.php17
-rw-r--r--maintenance/pruneFileCache.php10
-rw-r--r--maintenance/purgeDeletedFiles.php13
-rw-r--r--maintenance/purgeList.php8
-rw-r--r--maintenance/purgeOldText.inc4
-rw-r--r--maintenance/purgeOldText.php8
-rw-r--r--maintenance/purgeParserCache.php35
-rw-r--r--maintenance/purgeStaleMemcachedText.php38
-rw-r--r--maintenance/reassignEdits.php19
-rw-r--r--maintenance/rebuildFileCache.php14
-rw-r--r--maintenance/rebuildImages.php15
-rw-r--r--maintenance/rebuildLocalisationCache.php22
-rw-r--r--maintenance/rebuildall.php8
-rw-r--r--maintenance/rebuildmessages.php10
-rw-r--r--maintenance/rebuildrecentchanges.php12
-rw-r--r--maintenance/rebuildtextindex.php8
-rw-r--r--maintenance/refreshImageMetadata.php9
-rw-r--r--maintenance/refreshLinks.php43
-rw-r--r--maintenance/removeUnusedAccounts.php14
-rw-r--r--maintenance/renameDbPrefix.php9
-rw-r--r--maintenance/renderDump.php12
-rw-r--r--maintenance/resetUserTokens.php27
-rw-r--r--maintenance/rollbackEdits.php9
-rw-r--r--maintenance/runBatchedQuery.php8
-rw-r--r--maintenance/runJobs.php24
-rw-r--r--maintenance/showJobs.php13
-rw-r--r--maintenance/showStats.php10
-rw-r--r--maintenance/sql.php8
-rw-r--r--maintenance/sqlite.inc4
-rw-r--r--maintenance/sqlite.php10
-rw-r--r--maintenance/sqlite/archives/patch-cat_hidden.sql20
-rw-r--r--maintenance/sqlite/archives/patch-revision-user-page-index.sql4
-rw-r--r--maintenance/stats.php10
-rw-r--r--maintenance/storage/checkStorage.php14
-rw-r--r--maintenance/storage/compressOld.php15
-rw-r--r--maintenance/storage/dumpRev.php2
-rw-r--r--maintenance/storage/fixBug20757.php6
-rw-r--r--maintenance/storage/moveToExternal.php4
-rw-r--r--maintenance/storage/orphanStats.php4
-rw-r--r--maintenance/storage/recompressTracked.php14
-rw-r--r--maintenance/storage/resolveStubs.php2
-rw-r--r--maintenance/storage/storageTypeStats.php2
-rw-r--r--maintenance/storage/testCompression.php2
-rw-r--r--maintenance/storage/trackBlobs.php4
-rw-r--r--maintenance/syncFileBackend.php252
-rw-r--r--maintenance/tables.sql88
-rw-r--r--maintenance/term/MWTerm.php27
-rw-r--r--maintenance/undelete.php2
-rw-r--r--maintenance/update.php11
-rw-r--r--maintenance/updateArticleCount.php12
-rw-r--r--maintenance/updateCollation.php168
-rw-r--r--maintenance/updateDoubleWidthSearch.php9
-rw-r--r--maintenance/updateRestrictions.php8
-rw-r--r--maintenance/updateSearchIndex.php9
-rw-r--r--maintenance/updateSpecialPages.php13
-rw-r--r--maintenance/upgrade1_5.php12
-rw-r--r--maintenance/userOptions.inc4
-rw-r--r--maintenance/userOptions.php4
-rw-r--r--maintenance/waitForSlave.php9
-rw-r--r--mw-config/index.php8
-rw-r--r--mw-config/overrides.php63
-rw-r--r--opensearch_desc.php22
-rw-r--r--opensearch_desc.php525
-rw-r--r--profileinfo.php16
-rw-r--r--redirect.php19
-rw-r--r--redirect.php525
-rw-r--r--resources/Resources.php229
-rw-r--r--resources/jquery.effects/jquery.effects.blind.js6
-rw-r--r--resources/jquery.effects/jquery.effects.bounce.js8
-rw-r--r--resources/jquery.effects/jquery.effects.clip.js6
-rw-r--r--resources/jquery.effects/jquery.effects.core.js257
-rw-r--r--resources/jquery.effects/jquery.effects.drop.js8
-rw-r--r--resources/jquery.effects/jquery.effects.explode.js6
-rw-r--r--resources/jquery.effects/jquery.effects.fade.js6
-rw-r--r--resources/jquery.effects/jquery.effects.fold.js6
-rw-r--r--resources/jquery.effects/jquery.effects.highlight.js6
-rw-r--r--resources/jquery.effects/jquery.effects.pulsate.js10
-rw-r--r--resources/jquery.effects/jquery.effects.scale.js8
-rw-r--r--resources/jquery.effects/jquery.effects.shake.js6
-rw-r--r--resources/jquery.effects/jquery.effects.slide.js8
-rw-r--r--resources/jquery.effects/jquery.effects.transfer.js6
-rw-r--r--resources/jquery.tipsy/images/tipsy.pngbin179 -> 175 bytes
-rw-r--r--resources/jquery.ui/i18n/jquery.ui.datepicker-ar.js2
-rw-r--r--resources/jquery.ui/i18n/jquery.ui.datepicker-de.js2
-rw-r--r--resources/jquery.ui/i18n/jquery.ui.datepicker-et.js2
-rw-r--r--resources/jquery.ui/i18n/jquery.ui.datepicker-eu.js18
-rw-r--r--resources/jquery.ui/i18n/jquery.ui.datepicker-fa.js50
-rw-r--r--resources/jquery.ui/i18n/jquery.ui.datepicker-fi.js24
-rw-r--r--resources/jquery.ui/i18n/jquery.ui.datepicker-fr-CH.js23
-rw-r--r--resources/jquery.ui/i18n/jquery.ui.datepicker-he.js4
-rw-r--r--resources/jquery.ui/i18n/jquery.ui.datepicker-hi.js23
-rw-r--r--resources/jquery.ui/i18n/jquery.ui.datepicker-ka.js21
-rw-r--r--resources/jquery.ui/i18n/jquery.ui.datepicker-km.js23
-rw-r--r--resources/jquery.ui/i18n/jquery.ui.datepicker-ko.js14
-rw-r--r--resources/jquery.ui/i18n/jquery.ui.datepicker-mk.js6
-rw-r--r--resources/jquery.ui/jquery.ui.accordion.js8
-rw-r--r--resources/jquery.ui/jquery.ui.autocomplete.js61
-rw-r--r--resources/jquery.ui/jquery.ui.button.js14
-rw-r--r--resources/jquery.ui/jquery.ui.core.js108
-rw-r--r--resources/jquery.ui/jquery.ui.datepicker.js91
-rw-r--r--resources/jquery.ui/jquery.ui.dialog.js22
-rw-r--r--resources/jquery.ui/jquery.ui.draggable.js22
-rw-r--r--resources/jquery.ui/jquery.ui.droppable.js8
-rw-r--r--resources/jquery.ui/jquery.ui.mouse.js9
-rw-r--r--resources/jquery.ui/jquery.ui.position.js20
-rw-r--r--resources/jquery.ui/jquery.ui.progressbar.js8
-rw-r--r--resources/jquery.ui/jquery.ui.resizable.js53
-rw-r--r--resources/jquery.ui/jquery.ui.selectable.js8
-rw-r--r--resources/jquery.ui/jquery.ui.slider.js16
-rw-r--r--resources/jquery.ui/jquery.ui.sortable.js80
-rw-r--r--resources/jquery.ui/jquery.ui.tabs.js11
-rw-r--r--resources/jquery.ui/jquery.ui.widget.js4
-rw-r--r--resources/jquery.ui/themes/default/jquery.ui.accordion.css6
-rw-r--r--resources/jquery.ui/themes/default/jquery.ui.autocomplete.css8
-rw-r--r--resources/jquery.ui/themes/default/jquery.ui.button.css6
-rw-r--r--resources/jquery.ui/themes/default/jquery.ui.core.css6
-rw-r--r--resources/jquery.ui/themes/default/jquery.ui.datepicker.css8
-rw-r--r--resources/jquery.ui/themes/default/jquery.ui.dialog.css6
-rw-r--r--resources/jquery.ui/themes/default/jquery.ui.progressbar.css6
-rw-r--r--resources/jquery.ui/themes/default/jquery.ui.resizable.css8
-rw-r--r--resources/jquery.ui/themes/default/jquery.ui.selectable.css6
-rw-r--r--resources/jquery.ui/themes/default/jquery.ui.slider.css6
-rw-r--r--resources/jquery.ui/themes/default/jquery.ui.tabs.css6
-rw-r--r--resources/jquery.ui/themes/default/jquery.ui.theme.css6
-rw-r--r--resources/jquery.ui/themes/vector/images/button-blue-hover-large.pngbin0 -> 260 bytes
-rw-r--r--resources/jquery.ui/themes/vector/images/button-blue-hover.pngbin0 -> 175 bytes
-rw-r--r--resources/jquery.ui/themes/vector/images/button-blue-large.pngbin0 -> 265 bytes
-rw-r--r--resources/jquery.ui/themes/vector/images/button-blue.pngbin0 -> 175 bytes
-rw-r--r--resources/jquery.ui/themes/vector/images/button-disabled-blue.pngbin126 -> 84 bytes
-rw-r--r--resources/jquery.ui/themes/vector/images/button-disabled-green.pngbin1033 -> 149 bytes
-rw-r--r--resources/jquery.ui/themes/vector/images/button-disabled-red.pngbin126 -> 84 bytes
-rw-r--r--resources/jquery.ui/themes/vector/images/button-disabled.pngbin126 -> 84 bytes
-rw-r--r--resources/jquery.ui/themes/vector/images/button-down-blue.pngbin170 -> 130 bytes
-rw-r--r--resources/jquery.ui/themes/vector/images/button-down-green.pngbin1042 -> 141 bytes
-rw-r--r--resources/jquery.ui/themes/vector/images/button-down-red.pngbin170 -> 130 bytes
-rw-r--r--resources/jquery.ui/themes/vector/images/button-down.pngbin170 -> 130 bytes
-rw-r--r--resources/jquery.ui/themes/vector/images/button-green-hover-large.pngbin0 -> 265 bytes
-rw-r--r--resources/jquery.ui/themes/vector/images/button-green-hover.pngbin0 -> 175 bytes
-rw-r--r--resources/jquery.ui/themes/vector/images/button-green-large.pngbin0 -> 265 bytes
-rw-r--r--resources/jquery.ui/themes/vector/images/button-green.pngbin0 -> 175 bytes
-rw-r--r--resources/jquery.ui/themes/vector/images/button-large-disabled-green.pngbin0 -> 277 bytes
-rw-r--r--resources/jquery.ui/themes/vector/images/button-large-off-green.pngbin0 -> 282 bytes
-rw-r--r--resources/jquery.ui/themes/vector/images/button-off-blue.pngbin216 -> 175 bytes
-rw-r--r--resources/jquery.ui/themes/vector/images/button-off-green.pngbin1035 -> 149 bytes
-rw-r--r--resources/jquery.ui/themes/vector/images/button-off-red.pngbin216 -> 175 bytes
-rw-r--r--resources/jquery.ui/themes/vector/images/button-off.pngbin190 -> 152 bytes
-rw-r--r--resources/jquery.ui/themes/vector/images/button-orange-hover-large.pngbin0 -> 265 bytes
-rw-r--r--resources/jquery.ui/themes/vector/images/button-orange-hover.pngbin0 -> 175 bytes
-rw-r--r--resources/jquery.ui/themes/vector/images/button-orange-large.pngbin0 -> 265 bytes
-rw-r--r--resources/jquery.ui/themes/vector/images/button-orange.pngbin0 -> 175 bytes
-rw-r--r--resources/jquery.ui/themes/vector/images/button-over-blue.pngbin216 -> 175 bytes
-rw-r--r--resources/jquery.ui/themes/vector/images/button-over-green.pngbin1035 -> 149 bytes
-rw-r--r--resources/jquery.ui/themes/vector/images/button-over-red.pngbin216 -> 174 bytes
-rw-r--r--resources/jquery.ui/themes/vector/images/button-over.pngbin191 -> 155 bytes
-rw-r--r--resources/jquery.ui/themes/vector/images/button-red-hover-large.pngbin0 -> 260 bytes
-rw-r--r--resources/jquery.ui/themes/vector/images/button-red-hover.pngbin0 -> 175 bytes
-rw-r--r--resources/jquery.ui/themes/vector/images/button-red-large.pngbin0 -> 265 bytes
-rw-r--r--resources/jquery.ui/themes/vector/images/button-red.pngbin0 -> 175 bytes
-rw-r--r--resources/jquery.ui/themes/vector/images/close.pngbin164 -> 139 bytes
-rw-r--r--resources/jquery.ui/themes/vector/images/titlebar-fade.pngbin231 -> 188 bytes
-rw-r--r--resources/jquery.ui/themes/vector/images/ui-bg_flat_15_cd0a0a_40x100.pngbin181 -> 87 bytes
-rw-r--r--resources/jquery.ui/themes/vector/images/ui-bg_flat_70_000000_40x100.pngbin178 -> 87 bytes
-rw-r--r--resources/jquery.ui/themes/vector/images/ui-bg_highlight-hard_100_f2f5f7_1x100.pngbin103 -> 97 bytes
-rw-r--r--resources/jquery.ui/themes/vector/images/ui-bg_highlight-hard_80_d7ebf9_1x100.pngbin111 -> 104 bytes
-rw-r--r--resources/jquery.ui/themes/vector/images/ui-bg_highlight-soft_100_e4f1fb_1x100.pngbin112 -> 106 bytes
-rw-r--r--resources/jquery.ui/themes/vector/images/ui-bg_highlight-soft_100_ffffff_1x100.pngbin86 -> 80 bytes
-rw-r--r--resources/jquery.ui/themes/vector/images/ui-bg_highlight-soft_25_ffef8f_1x100.pngbin153 -> 152 bytes
-rw-r--r--resources/jquery.ui/themes/vector/images/ui-bg_inset-hard_100_f0f0f0_1x100.pngbin91 -> 89 bytes
-rw-r--r--resources/jquery.ui/themes/vector/images/ui-icons_2694e8_256x240.pngbin5355 -> 3702 bytes
-rw-r--r--resources/jquery.ui/themes/vector/images/ui-icons_2e83ff_256x240.pngbin4369 -> 3702 bytes
-rw-r--r--resources/jquery.ui/themes/vector/images/ui-icons_3d80b3_256x240.pngbin5355 -> 3702 bytes
-rw-r--r--resources/jquery.ui/themes/vector/images/ui-icons_666666_256x240.pngbin4369 -> 3702 bytes
-rw-r--r--resources/jquery.ui/themes/vector/images/ui-icons_72a7cf_256x240.pngbin4369 -> 3702 bytes
-rw-r--r--resources/jquery.ui/themes/vector/images/ui-icons_ffffff_256x240.pngbin4369 -> 3702 bytes
-rw-r--r--resources/jquery.ui/themes/vector/jquery.ui.button.css138
-rw-r--r--resources/jquery.ui/themes/vector/jquery.ui.resizable.css6
-rw-r--r--resources/jquery/images/jquery.arrowSteps.divider-ltr.pngbin307 -> 135 bytes
-rw-r--r--resources/jquery/images/jquery.arrowSteps.divider-rtl.pngbin310 -> 139 bytes
-rw-r--r--resources/jquery/images/jquery.arrowSteps.head-ltr.pngbin939 -> 390 bytes
-rw-r--r--resources/jquery/images/jquery.arrowSteps.head-rtl.pngbin1006 -> 365 bytes
-rw-r--r--resources/jquery/images/jquery.arrowSteps.tail-ltr.pngbin338 -> 223 bytes
-rw-r--r--resources/jquery/images/jquery.arrowSteps.tail-rtl.pngbin485 -> 219 bytes
-rw-r--r--resources/jquery/images/spinner-large.gifbin0 -> 1788 bytes
-rw-r--r--resources/jquery/images/spinner.gifbin4648 -> 1819 bytes
-rw-r--r--resources/jquery/images/wheel.pngbin11733 -> 11505 bytes
-rw-r--r--resources/jquery/jquery.arrowSteps.css2
-rw-r--r--resources/jquery/jquery.arrowSteps.js50
-rw-r--r--resources/jquery/jquery.autoEllipsis.js82
-rw-r--r--resources/jquery/jquery.badge.css39
-rw-r--r--resources/jquery/jquery.badge.js117
-rw-r--r--resources/jquery/jquery.byteLength.js6
-rw-r--r--resources/jquery/jquery.byteLimit.js266
-rw-r--r--resources/jquery/jquery.checkboxShiftClick.js39
-rw-r--r--resources/jquery/jquery.client.js63
-rw-r--r--resources/jquery/jquery.collapsibleTabs.js95
-rw-r--r--resources/jquery/jquery.color.js64
-rw-r--r--resources/jquery/jquery.colorUtil.js379
-rw-r--r--resources/jquery/jquery.cookie.js127
-rw-r--r--resources/jquery/jquery.delayedBind.js29
-rw-r--r--resources/jquery/jquery.expandableField.js226
-rw-r--r--resources/jquery/jquery.form.js1654
-rw-r--r--resources/jquery/jquery.getAttrs.js4
-rw-r--r--resources/jquery/jquery.highlightText.js115
-rw-r--r--resources/jquery/jquery.jStorage.js532
-rw-r--r--resources/jquery/jquery.js8274
-rw-r--r--resources/jquery/jquery.json.js349
-rw-r--r--resources/jquery/jquery.localize.js206
-rw-r--r--resources/jquery/jquery.makeCollapsible.js72
-rw-r--r--resources/jquery/jquery.messageBox.css15
-rw-r--r--resources/jquery/jquery.messageBox.js98
-rw-r--r--resources/jquery/jquery.mwExtension.js34
-rw-r--r--resources/jquery/jquery.placeholder.js134
-rw-r--r--resources/jquery/jquery.qunit.completenessTest.js515
-rw-r--r--resources/jquery/jquery.qunit.css61
-rw-r--r--resources/jquery/jquery.qunit.js1972
-rw-r--r--resources/jquery/jquery.spinner.css34
-rw-r--r--resources/jquery/jquery.spinner.js119
-rw-r--r--resources/jquery/jquery.suggestions.css15
-rw-r--r--resources/jquery/jquery.suggestions.js185
-rw-r--r--resources/jquery/jquery.tabIndex.js90
-rw-r--r--resources/jquery/jquery.tablesorter.js291
-rw-r--r--resources/jquery/jquery.textSelection.js999
-rw-r--r--resources/mediawiki.action/mediawiki.action.edit.js129
-rw-r--r--resources/mediawiki.action/mediawiki.action.edit.preview.js135
-rw-r--r--resources/mediawiki.action/mediawiki.action.history.diff.css65
-rw-r--r--resources/mediawiki.action/mediawiki.action.history.js6
-rw-r--r--resources/mediawiki.action/mediawiki.action.view.dblClickEdit.js20
-rw-r--r--resources/mediawiki.action/mediawiki.action.view.metadata.js70
-rw-r--r--resources/mediawiki.action/mediawiki.action.view.rightClickEdit.js38
-rw-r--r--resources/mediawiki.action/mediawiki.action.watch.ajax.js155
-rw-r--r--resources/mediawiki.api/mediawiki.api.category.js59
-rw-r--r--resources/mediawiki.api/mediawiki.api.edit.js41
-rw-r--r--resources/mediawiki.api/mediawiki.api.js133
-rw-r--r--resources/mediawiki.api/mediawiki.api.parse.js45
-rw-r--r--resources/mediawiki.api/mediawiki.api.titleblacklist.js9
-rw-r--r--resources/mediawiki.api/mediawiki.api.watch.js66
-rw-r--r--resources/mediawiki.language/languages/am.js8
-rw-r--r--resources/mediawiki.language/languages/ar.js38
-rw-r--r--resources/mediawiki.language/languages/bat-smg.js18
-rw-r--r--resources/mediawiki.language/languages/be-tarask.js23
-rw-r--r--resources/mediawiki.language/languages/be.js20
-rw-r--r--resources/mediawiki.language/languages/bh.js8
-rw-r--r--resources/mediawiki.language/languages/bs.js25
-rw-r--r--resources/mediawiki.language/languages/cs.js17
-rw-r--r--resources/mediawiki.language/languages/cu.js18
-rw-r--r--resources/mediawiki.language/languages/cy.js15
-rw-r--r--resources/mediawiki.language/languages/dsb.js25
-rw-r--r--resources/mediawiki.language/languages/fi.js44
-rw-r--r--resources/mediawiki.language/languages/fr.js8
-rw-r--r--resources/mediawiki.language/languages/ga.js37
-rw-r--r--resources/mediawiki.language/languages/gd.js18
-rw-r--r--resources/mediawiki.language/languages/gv.js18
-rw-r--r--resources/mediawiki.language/languages/he.js29
-rw-r--r--resources/mediawiki.language/languages/hi.js8
-rw-r--r--resources/mediawiki.language/languages/hr.js20
-rw-r--r--resources/mediawiki.language/languages/hsb.js25
-rw-r--r--resources/mediawiki.language/languages/hu.js23
-rw-r--r--resources/mediawiki.language/languages/hy.js25
-rw-r--r--resources/mediawiki.language/languages/ksh.js14
-rw-r--r--resources/mediawiki.language/languages/la.js50
-rw-r--r--resources/mediawiki.language/languages/ln.js8
-rw-r--r--resources/mediawiki.language/languages/lt.js18
-rw-r--r--resources/mediawiki.language/languages/lv.js8
-rw-r--r--resources/mediawiki.language/languages/mg.js8
-rw-r--r--resources/mediawiki.language/languages/mk.js8
-rw-r--r--resources/mediawiki.language/languages/mo.js14
-rw-r--r--resources/mediawiki.language/languages/mt.js17
-rw-r--r--resources/mediawiki.language/languages/nl.js8
-rw-r--r--resources/mediawiki.language/languages/nso.js8
-rw-r--r--resources/mediawiki.language/languages/os.js69
-rw-r--r--resources/mediawiki.language/languages/pl.js21
-rw-r--r--resources/mediawiki.language/languages/pt-br.js8
-rw-r--r--resources/mediawiki.language/languages/pt.js8
-rw-r--r--resources/mediawiki.language/languages/ro.js14
-rw-r--r--resources/mediawiki.language/languages/ru.js38
-rw-r--r--resources/mediawiki.language/languages/se.js17
-rw-r--r--resources/mediawiki.language/languages/sh.js23
-rw-r--r--resources/mediawiki.language/languages/sk.js14
-rw-r--r--resources/mediawiki.language/languages/sl.js25
-rw-r--r--resources/mediawiki.language/languages/sma.js17
-rw-r--r--resources/mediawiki.language/languages/sr-ec.js20
-rw-r--r--resources/mediawiki.language/languages/sr-el.js20
-rw-r--r--resources/mediawiki.language/languages/sr.js23
-rw-r--r--resources/mediawiki.language/languages/ti.js8
-rw-r--r--resources/mediawiki.language/languages/tl.js7
-rw-r--r--resources/mediawiki.language/languages/uk.js44
-rw-r--r--resources/mediawiki.language/languages/wa.js8
-rw-r--r--resources/mediawiki.language/mediawiki.cldr.js28
-rw-r--r--resources/mediawiki.language/mediawiki.language.init.js61
-rw-r--r--resources/mediawiki.language/mediawiki.language.js86
-rw-r--r--resources/mediawiki.libs/CLDRPluralRuleParser.js314
-rw-r--r--resources/mediawiki.page/mediawiki.page.startup.js4
-rw-r--r--resources/mediawiki.page/mediawiki.page.watch.ajax.js175
-rw-r--r--resources/mediawiki.special/images/arrow-collapsed-ltr.pngbin0 -> 206 bytes
-rw-r--r--resources/mediawiki.special/images/arrow-collapsed-rtl.pngbin0 -> 205 bytes
-rw-r--r--resources/mediawiki.special/images/arrow-expanded.pngbin0 -> 205 bytes
-rw-r--r--resources/mediawiki.special/mediawiki.special.changeemail.css2
-rw-r--r--resources/mediawiki.special/mediawiki.special.changeemail.js28
-rw-r--r--resources/mediawiki.special/mediawiki.special.changeslist.css39
-rw-r--r--resources/mediawiki.special/mediawiki.special.javaScriptTest.js54
-rw-r--r--resources/mediawiki.special/mediawiki.special.preferences.css11
-rw-r--r--resources/mediawiki.special/mediawiki.special.preferences.js91
-rw-r--r--resources/mediawiki.special/mediawiki.special.recentchanges.js12
-rw-r--r--resources/mediawiki.special/mediawiki.special.search.js30
-rw-r--r--resources/mediawiki.special/mediawiki.special.upload.js516
-rw-r--r--resources/mediawiki/mediawiki.Title.js104
-rw-r--r--resources/mediawiki/mediawiki.Uri.js103
-rw-r--r--resources/mediawiki/mediawiki.debug.css1
-rw-r--r--resources/mediawiki/mediawiki.debug.js68
-rw-r--r--resources/mediawiki/mediawiki.feedback.js182
-rw-r--r--resources/mediawiki/mediawiki.htmlform.js20
-rw-r--r--resources/mediawiki/mediawiki.jqueryMsg.js411
-rw-r--r--resources/mediawiki/mediawiki.jqueryMsg.peg4
-rw-r--r--resources/mediawiki/mediawiki.js751
-rw-r--r--resources/mediawiki/mediawiki.log.js11
-rw-r--r--resources/mediawiki/mediawiki.notification.css26
-rw-r--r--resources/mediawiki/mediawiki.notification.js480
-rw-r--r--resources/mediawiki/mediawiki.notify.js20
-rw-r--r--resources/mediawiki/mediawiki.searchSuggest.js166
-rw-r--r--resources/mediawiki/mediawiki.user.js128
-rw-r--r--resources/mediawiki/mediawiki.util.js171
-rw-r--r--resources/startup.js23
-rw-r--r--serialized/serialize.php2
-rw-r--r--skins/ArchLinux.deps.php12
-rw-r--r--skins/ArchLinux.php26
-rw-r--r--skins/Chick.deps.php13
-rw-r--r--skins/Chick.php18
-rw-r--r--skins/CologneBlue.php91
-rw-r--r--skins/Modern.deps.php12
-rw-r--r--skins/Modern.php21
-rw-r--r--skins/MonoBook.deps.php12
-rw-r--r--skins/MonoBook.php28
-rw-r--r--skins/MySkin.deps.php13
-rw-r--r--skins/MySkin.php17
-rw-r--r--skins/Nostalgia.php21
-rw-r--r--skins/Simple.deps.php13
-rw-r--r--skins/Simple.php24
-rw-r--r--skins/Standard.php37
-rw-r--r--skins/Vector.deps.php11
-rw-r--r--skins/Vector.php60
-rw-r--r--skins/archlinux/audio.pngbin239 -> 186 bytes
-rw-r--r--skins/archlinux/document.pngbin213 -> 152 bytes
-rw-r--r--skins/archlinux/external-rtl.pngbin157 -> 141 bytes
-rw-r--r--skins/archlinux/main.css15
-rw-r--r--skins/archlinux/news_icon.pngbin294 -> 284 bytes
-rw-r--r--skins/archlinux/video.pngbin169 -> 116 bytes
-rw-r--r--skins/archlinux/wiki-indexed.pngbin8013 -> 8008 bytes
-rw-r--r--skins/archlinux/wiki.pngbin22736 -> 22589 bytes
-rw-r--r--skins/chick/main.css6
-rw-r--r--skins/cologneblue/screen.css2
-rw-r--r--skins/common/commonContent.css2
-rw-r--r--skins/common/commonElements.css12
-rw-r--r--skins/common/commonPrint.css5
-rw-r--r--skins/common/config.js66
-rw-r--r--skins/common/images/Arr_.pngbin246 -> 96 bytes
-rw-r--r--skins/common/images/Arr_l.pngbin257 -> 205 bytes
-rw-r--r--skins/common/images/Arr_u.pngbin423 -> 207 bytes
-rw-r--r--skins/common/images/add.pngbin555 -> 526 bytes
-rw-r--r--skins/common/images/ajax-loader.gifbin3208 -> 1788 bytes
-rw-r--r--skins/common/images/ar/button_bold.pngbin626 -> 533 bytes
-rw-r--r--skins/common/images/ar/button_headline.pngbin560 -> 487 bytes
-rw-r--r--skins/common/images/ar/button_italic.pngbin605 -> 532 bytes
-rw-r--r--skins/common/images/ar/button_link.pngbin643 -> 557 bytes
-rw-r--r--skins/common/images/ar/button_nowiki.pngbin963 -> 875 bytes
-rw-r--r--skins/common/images/arrow_disabled_first_25.pngbin369 -> 318 bytes
-rw-r--r--skins/common/images/arrow_disabled_last_25.pngbin374 -> 323 bytes
-rw-r--r--skins/common/images/arrow_disabled_left_25.pngbin352 -> 301 bytes
-rw-r--r--skins/common/images/arrow_disabled_right_25.pngbin358 -> 307 bytes
-rw-r--r--skins/common/images/arrow_first_25.pngbin405 -> 352 bytes
-rw-r--r--skins/common/images/arrow_last_25.pngbin395 -> 342 bytes
-rw-r--r--skins/common/images/arrow_left_25.pngbin383 -> 330 bytes
-rw-r--r--skins/common/images/arrow_right_25.pngbin394 -> 341 bytes
-rw-r--r--skins/common/images/be-tarask/button_bold.pngbin554 -> 550 bytes
-rw-r--r--skins/common/images/be-tarask/button_italic.pngbin580 -> 539 bytes
-rw-r--r--skins/common/images/be-tarask/button_link.pngbin459 -> 419 bytes
-rw-r--r--skins/common/images/button_bold.pngbin271 -> 250 bytes
-rw-r--r--skins/common/images/button_extlink.pngbin456 -> 435 bytes
-rw-r--r--skins/common/images/button_headline.pngbin461 -> 440 bytes
-rw-r--r--skins/common/images/button_hr.pngbin247 -> 222 bytes
-rw-r--r--skins/common/images/button_image.pngbin504 -> 483 bytes
-rw-r--r--skins/common/images/button_italic.pngbin271 -> 250 bytes
-rw-r--r--skins/common/images/button_link.pngbin301 -> 280 bytes
-rw-r--r--skins/common/images/button_media.pngbin749 -> 728 bytes
-rw-r--r--skins/common/images/button_nowiki.pngbin342 -> 322 bytes
-rw-r--r--skins/common/images/button_sig.pngbin949 -> 926 bytes
-rw-r--r--skins/common/images/button_template.pngbin210 -> 188 bytes
-rw-r--r--skins/common/images/cc-0.pngbin1103 -> 969 bytes
-rw-r--r--skins/common/images/cc-by-nc-sa.pngbin4263 -> 1530 bytes
-rw-r--r--skins/common/images/cc-by-sa.pngbin4109 -> 1377 bytes
-rw-r--r--skins/common/images/cc-by.pngbin4063 -> 1165 bytes
-rw-r--r--skins/common/images/closewindow.pngbin148 -> 108 bytes
-rw-r--r--skins/common/images/closewindow19x19.pngbin3357 -> 833 bytes
-rw-r--r--skins/common/images/critical-32.pngbin1892 -> 1763 bytes
-rw-r--r--skins/common/images/cyrl/button_bold.pngbin275 -> 254 bytes
-rw-r--r--skins/common/images/cyrl/button_italic.pngbin457 -> 423 bytes
-rw-r--r--skins/common/images/cyrl/button_link.pngbin347 -> 278 bytes
-rw-r--r--skins/common/images/de/button_bold.pngbin308 -> 255 bytes
-rw-r--r--skins/common/images/de/button_italic.pngbin313 -> 260 bytes
-rw-r--r--skins/common/images/download-32.pngbin1846 -> 1759 bytes
-rw-r--r--skins/common/images/fa/button_bold.pngbin496 -> 459 bytes
-rw-r--r--skins/common/images/fa/button_headline.pngbin429 -> 392 bytes
-rw-r--r--skins/common/images/fa/button_italic.pngbin563 -> 512 bytes
-rw-r--r--skins/common/images/fa/button_link.pngbin522 -> 485 bytes
-rw-r--r--skins/common/images/fa/button_nowiki.pngbin963 -> 875 bytes
-rw-r--r--skins/common/images/gnu-fdl.pngbin1655 -> 1573 bytes
-rw-r--r--skins/common/images/icons/fileicon-c.pngbin1948 -> 1753 bytes
-rw-r--r--skins/common/images/icons/fileicon-cpp.pngbin1577 -> 1382 bytes
-rw-r--r--skins/common/images/icons/fileicon-deb.pngbin4726 -> 4527 bytes
-rw-r--r--skins/common/images/icons/fileicon-djvu.pngbin10615 -> 10436 bytes
-rw-r--r--skins/common/images/icons/fileicon-dvi.pngbin12628 -> 12476 bytes
-rw-r--r--skins/common/images/icons/fileicon-exe.pngbin5627 -> 5469 bytes
-rw-r--r--skins/common/images/icons/fileicon-h.pngbin998 -> 803 bytes
-rw-r--r--skins/common/images/icons/fileicon-html.pngbin7376 -> 7171 bytes
-rw-r--r--skins/common/images/icons/fileicon-iso.pngbin6304 -> 6105 bytes
-rw-r--r--skins/common/images/icons/fileicon-java.pngbin5901 -> 5706 bytes
-rw-r--r--skins/common/images/icons/fileicon-mid.pngbin6515 -> 6316 bytes
-rw-r--r--skins/common/images/icons/fileicon-mov.pngbin7716 -> 7579 bytes
-rw-r--r--skins/common/images/icons/fileicon-o.pngbin1937 -> 1742 bytes
-rw-r--r--skins/common/images/icons/fileicon-ogg.pngbin3346 -> 3151 bytes
-rw-r--r--skins/common/images/icons/fileicon-pdf.pngbin4909 -> 4710 bytes
-rw-r--r--skins/common/images/icons/fileicon-ps.pngbin2985 -> 2786 bytes
-rw-r--r--skins/common/images/icons/fileicon-rm.pngbin2714 -> 2519 bytes
-rw-r--r--skins/common/images/icons/fileicon-rpm.pngbin4000 -> 3784 bytes
-rw-r--r--skins/common/images/icons/fileicon-svg.pngbin4978 -> 4793 bytes
-rw-r--r--skins/common/images/icons/fileicon-tar.pngbin6224 -> 6025 bytes
-rw-r--r--skins/common/images/icons/fileicon-tex.pngbin3937 -> 3738 bytes
-rw-r--r--skins/common/images/icons/fileicon-ttf.pngbin3392 -> 3193 bytes
-rw-r--r--skins/common/images/icons/fileicon-txt.pngbin3582 -> 3388 bytes
-rw-r--r--skins/common/images/icons/fileicon.pngbin884 -> 789 bytes
-rw-r--r--skins/common/images/info-32.pngbin1940 -> 1892 bytes
-rw-r--r--skins/common/images/ksh/button_S_italic.pngbin3201 -> 368 bytes
-rw-r--r--skins/common/images/magnify-clip-rtl.pngbin252 -> 208 bytes
-rw-r--r--skins/common/images/mediawiki.pngbin22736 -> 22589 bytes
-rw-r--r--skins/common/images/nextredirectltr.pngbin187 -> 121 bytes
-rw-r--r--skins/common/images/nextredirectrtl.pngbin187 -> 121 bytes
-rw-r--r--skins/common/images/poweredby_mediawiki_88x31.pngbin3605 -> 3525 bytes
-rw-r--r--skins/common/images/public-domain.pngbin2248 -> 2017 bytes
-rw-r--r--skins/common/images/redirectltr.pngbin355 -> 128 bytes
-rw-r--r--skins/common/images/redirectrtl.pngbin359 -> 132 bytes
-rw-r--r--skins/common/images/remove.pngbin3271 -> 555 bytes
-rw-r--r--skins/common/images/spinner.gifbin4648 -> 1819 bytes
-rw-r--r--skins/common/images/tooltip_icon.pngbin391 -> 352 bytes
-rw-r--r--skins/common/images/warning-32.pngbin1349 -> 1301 bytes
-rw-r--r--skins/common/images/wiki.pngbin24482 -> 24358 bytes
-rw-r--r--skins/common/mwsuggest.js1063
-rw-r--r--skins/common/oldshared.css6
-rw-r--r--skins/common/preview.js128
-rw-r--r--skins/common/shared.css61
-rw-r--r--skins/common/upload.js19
-rw-r--r--skins/common/wikibits.js56
-rw-r--r--skins/modern/audio.pngbin239 -> 186 bytes
-rw-r--r--skins/modern/document.pngbin213 -> 152 bytes
-rw-r--r--skins/modern/footer-grad.pngbin141 -> 81 bytes
-rw-r--r--skins/modern/main.css6
-rw-r--r--skins/modern/news_icon.pngbin294 -> 284 bytes
-rw-r--r--skins/modern/video.pngbin178 -> 113 bytes
-rw-r--r--skins/monobook/audio.pngbin239 -> 186 bytes
-rw-r--r--skins/monobook/document.pngbin213 -> 152 bytes
-rw-r--r--skins/monobook/external-rtl.pngbin157 -> 141 bytes
-rw-r--r--skins/monobook/main.css15
-rw-r--r--skins/monobook/news_icon.pngbin294 -> 284 bytes
-rw-r--r--skins/monobook/video.pngbin169 -> 116 bytes
-rw-r--r--skins/monobook/wiki-indexed.pngbin8013 -> 8008 bytes
-rw-r--r--skins/monobook/wiki.pngbin22736 -> 22589 bytes
-rw-r--r--skins/nostalgia/screen.css4
-rw-r--r--skins/simple/main.css6
-rw-r--r--skins/standard/main.css (renamed from skins/common/wikistandard.css)8
-rw-r--r--skins/vector/images/arrow-down-focus-icon.pngbin175 -> 135 bytes
-rw-r--r--skins/vector/images/arrow-down-icon.pngbin188 -> 135 bytes
-rw-r--r--skins/vector/images/audio-icon.pngbin240 -> 185 bytes
-rw-r--r--skins/vector/images/border.pngbin118 -> 69 bytes
-rw-r--r--skins/vector/images/bullet-icon.pngbin152 -> 107 bytes
-rw-r--r--skins/vector/images/document-icon.pngbin172 -> 135 bytes
-rw-r--r--skins/vector/images/edit-icon.pngbin314 -> 277 bytes
-rw-r--r--skins/vector/images/external-link-ltr-icon.pngbin180 -> 143 bytes
-rw-r--r--skins/vector/images/external-link-rtl-icon.pngbin178 -> 141 bytes
-rw-r--r--skins/vector/images/file-icon.pngbin170 -> 133 bytes
-rw-r--r--skins/vector/images/link-icon.pngbin406 -> 359 bytes
-rw-r--r--skins/vector/images/lock-icon.pngbin227 -> 174 bytes
-rw-r--r--skins/vector/images/mail-icon.pngbin245 -> 197 bytes
-rw-r--r--skins/vector/images/news-icon.pngbin217 -> 180 bytes
-rw-r--r--skins/vector/images/page-base.pngbin114 -> 67 bytes
-rw-r--r--skins/vector/images/page-fade.pngbin152 -> 115 bytes
-rw-r--r--skins/vector/images/portal-break-ltr.pngbin206 -> 169 bytes
-rw-r--r--skins/vector/images/portal-break-rtl.pngbin198 -> 161 bytes
-rw-r--r--skins/vector/images/portal-break.pngbin135 -> 96 bytes
-rw-r--r--skins/vector/images/preferences-base.pngbin114 -> 67 bytes
-rw-r--r--skins/vector/images/preferences-break.pngbin286 -> 205 bytes
-rw-r--r--skins/vector/images/preferences-edge.pngbin114 -> 67 bytes
-rw-r--r--skins/vector/images/preferences-fade.pngbin126 -> 85 bytes
-rw-r--r--skins/vector/images/search-fade.pngbin132 -> 94 bytes
-rw-r--r--skins/vector/images/tab-break.pngbin162 -> 125 bytes
-rw-r--r--skins/vector/images/tab-current-fade.pngbin115 -> 70 bytes
-rw-r--r--skins/vector/images/tab-normal-fade.pngbin154 -> 117 bytes
-rw-r--r--skins/vector/images/talk-icon.pngbin210 -> 173 bytes
-rw-r--r--skins/vector/images/user-icon.pngbin584 -> 568 bytes
-rw-r--r--skins/vector/images/video-icon.pngbin200 -> 162 bytes
-rw-r--r--skins/vector/images/watch-icons.pngbin1745 -> 1422 bytes
-rw-r--r--skins/vector/screen-hd.css28
-rw-r--r--skins/vector/screen.css931
-rw-r--r--skins/vector/vector.js32
-rw-r--r--tests/RunSeleniumTests.php8
-rw-r--r--tests/TestsAutoLoader.php9
-rw-r--r--tests/jasmine/SpecRunner.html58
-rw-r--r--tests/jasmine/spec/mediawiki.Uri.spec.js307
-rw-r--r--tests/jasmine/spec_makers/makeJqueryMsgSpec.php20
-rw-r--r--tests/parser/parserTest.inc18
-rw-r--r--tests/parser/parserTests.txt1227
-rw-r--r--tests/parserTests.php2
-rw-r--r--tests/phpunit/MediaWikiLangTestCase.php5
-rw-r--r--tests/phpunit/MediaWikiPHPUnitCommand.php2
-rw-r--r--tests/phpunit/MediaWikiTestCase.php279
-rw-r--r--tests/phpunit/StructureTest.php8
-rw-r--r--tests/phpunit/bootstrap.php6
-rw-r--r--tests/phpunit/data/media/exif-gps.jpgbin665 -> 665 bytes
-rw-r--r--tests/phpunit/data/xmp/gps.result.php12
-rw-r--r--tests/phpunit/data/xmp/gps.xmp17
-rw-r--r--tests/phpunit/docs/ExportDemoTest.php36
-rw-r--r--tests/phpunit/includes/ArticleTablesTest.php4
-rw-r--r--tests/phpunit/includes/BlockTest.php107
-rw-r--r--tests/phpunit/includes/CdbTest.php2
-rw-r--r--tests/phpunit/includes/DiffHistoryBlobTest.php40
-rw-r--r--tests/phpunit/includes/EditPageTest.php9
-rw-r--r--tests/phpunit/includes/ExtraParserTest.php4
-rw-r--r--tests/phpunit/includes/GlobalFunctions/GlobalTest.php46
-rw-r--r--tests/phpunit/includes/GlobalFunctions/wfGetCallerTest.php35
-rw-r--r--tests/phpunit/includes/HtmlTest.php361
-rw-r--r--tests/phpunit/includes/IPTest.php40
-rw-r--r--tests/phpunit/includes/LinksUpdateTest.php154
-rw-r--r--tests/phpunit/includes/LocalisationCacheTest.php31
-rw-r--r--tests/phpunit/includes/MWNamespaceTest.php43
-rw-r--r--tests/phpunit/includes/MessageTest.php2
-rw-r--r--tests/phpunit/includes/PreferencesTest.php75
-rw-r--r--tests/phpunit/includes/RecentChangeTest.php273
-rw-r--r--tests/phpunit/includes/RevisionStorageTest.php408
-rw-r--r--tests/phpunit/includes/SampleTest.php2
-rw-r--r--tests/phpunit/includes/SanitizerTest.php36
-rw-r--r--tests/phpunit/includes/TemplateCategoriesTest.php16
-rw-r--r--tests/phpunit/includes/TestUser.php (renamed from tests/phpunit/includes/api/ApiTestUser.php)3
-rw-r--r--tests/phpunit/includes/TimestampTest.php72
-rw-r--r--tests/phpunit/includes/TitleMethodsTest.php131
-rw-r--r--tests/phpunit/includes/TitleTest.php75
-rw-r--r--tests/phpunit/includes/UserTest.php28
-rw-r--r--tests/phpunit/includes/WebRequestTest.php39
-rw-r--r--tests/phpunit/includes/WikiPageTest.php784
-rw-r--r--tests/phpunit/includes/XmlTest.php55
-rw-r--r--tests/phpunit/includes/ZipDirectoryReaderTest.php2
-rw-r--r--tests/phpunit/includes/api/ApiBlockTest.php51
-rw-r--r--tests/phpunit/includes/api/ApiEditPageTest.php84
-rw-r--r--tests/phpunit/includes/api/ApiOptionsTest.php276
-rw-r--r--tests/phpunit/includes/api/ApiPurgeTest.php1
-rw-r--r--tests/phpunit/includes/api/ApiQueryTest.php1
-rw-r--r--tests/phpunit/includes/api/ApiTest.php1
-rw-r--r--tests/phpunit/includes/api/ApiTestCase.php59
-rw-r--r--tests/phpunit/includes/api/ApiUploadTest.php1
-rw-r--r--tests/phpunit/includes/api/ApiWatchTest.php88
-rw-r--r--tests/phpunit/includes/api/PrefixUniquenessTest.php24
-rw-r--r--tests/phpunit/includes/api/RandomImageGenerator.php2
-rw-r--r--tests/phpunit/includes/api/generateRandomImages.php8
-rw-r--r--tests/phpunit/includes/cache/GenderCacheTest.php101
-rw-r--r--tests/phpunit/includes/cache/ProcessCacheLRUTest.php239
-rw-r--r--tests/phpunit/includes/db/DatabaseSQLTest.php147
-rw-r--r--tests/phpunit/includes/db/DatabaseSqliteTest.php10
-rw-r--r--tests/phpunit/includes/db/ORMRowTest.php234
-rw-r--r--tests/phpunit/includes/db/TestORMRowTest.php174
-rw-r--r--tests/phpunit/includes/debug/MWDebugTest.php7
-rw-r--r--tests/phpunit/includes/filerepo/FileBackendTest.php754
-rw-r--r--tests/phpunit/includes/filerepo/FileRepoTest.php8
-rw-r--r--tests/phpunit/includes/filerepo/StoreBatchTest.php1
-rw-r--r--tests/phpunit/includes/libs/CSSJanusTest.php560
-rw-r--r--tests/phpunit/includes/libs/CSSMinTest.php142
-rw-r--r--tests/phpunit/includes/libs/GenericArrayObjectTest.php245
-rw-r--r--tests/phpunit/includes/libs/JavaScriptMinifierTest.php66
-rw-r--r--tests/phpunit/includes/media/BitmapMetadataHandlerTest.php5
-rw-r--r--tests/phpunit/includes/media/ExifRotationTest.php20
-rw-r--r--tests/phpunit/includes/media/ExifTest.php22
-rw-r--r--tests/phpunit/includes/media/FormatMetadataTest.php2
-rw-r--r--tests/phpunit/includes/media/GIFMetadataExtractorTest.php2
-rw-r--r--tests/phpunit/includes/media/GIFTest.php2
-rw-r--r--tests/phpunit/includes/media/JpegMetadataExtractorTest.php2
-rw-r--r--tests/phpunit/includes/media/JpegTest.php2
-rw-r--r--tests/phpunit/includes/media/PNGMetadataExtractorTest.php2
-rw-r--r--tests/phpunit/includes/media/PNGTest.php2
-rw-r--r--tests/phpunit/includes/media/SVGMetadataExtractorTest.php24
-rw-r--r--tests/phpunit/includes/media/TiffTest.php2
-rw-r--r--tests/phpunit/includes/media/XMPTest.php11
-rw-r--r--tests/phpunit/includes/mobile/DeviceDetectionTest.php40
-rw-r--r--tests/phpunit/includes/parser/MediaWikiParserTest.php2
-rw-r--r--tests/phpunit/includes/parser/NewParserTest.php18
-rw-r--r--tests/phpunit/includes/parser/ParserMethodsTest.php33
-rw-r--r--tests/phpunit/includes/parser/PreprocessorTest.php4
-rw-r--r--tests/phpunit/includes/specials/SpecialSearchTest.php8
-rw-r--r--tests/phpunit/includes/upload/UploadFromUrlTest.php14
-rw-r--r--tests/phpunit/includes/upload/UploadStashTest.php6
-rw-r--r--tests/phpunit/includes/upload/UploadTest.php4
-rw-r--r--tests/phpunit/languages/LanguageHeTest.php14
-rw-r--r--tests/phpunit/languages/LanguageHuTest.php34
-rw-r--r--tests/phpunit/languages/LanguageSrTest.php28
-rw-r--r--tests/phpunit/languages/LanguageTest.php478
-rw-r--r--tests/phpunit/languages/LanguageUzTest.php120
-rw-r--r--tests/phpunit/languages/utils/CLDRPluralRuleEvaluatorTest.php95
-rw-r--r--tests/phpunit/maintenance/DumpTestCase.php352
-rw-r--r--tests/phpunit/maintenance/MaintenanceTest.php812
-rw-r--r--tests/phpunit/maintenance/backupPrefetchTest.php270
-rw-r--r--tests/phpunit/maintenance/backupTextPassTest.php563
-rw-r--r--tests/phpunit/maintenance/backup_LogTest.php227
-rw-r--r--tests/phpunit/maintenance/backup_PageTest.php389
-rw-r--r--tests/phpunit/maintenance/fetchTextTest.php243
-rw-r--r--tests/phpunit/maintenance/getSlaveServerTest.php69
-rw-r--r--tests/phpunit/phpunit.php70
-rw-r--r--tests/phpunit/suite.xml5
-rw-r--r--tests/phpunit/suites/UploadFromUrlTestSuite.php2
-rw-r--r--tests/qunit/QUnitTestResources.php15
-rw-r--r--tests/qunit/data/callMwLoaderTestCallback.js1
-rw-r--r--tests/qunit/data/defineTestCallback.js4
-rw-r--r--tests/qunit/data/load.mock.php58
-rw-r--r--tests/qunit/data/qunitOkCall.js4
-rw-r--r--tests/qunit/data/styleTest.css.php61
-rw-r--r--tests/qunit/data/testrunner.js194
-rw-r--r--tests/qunit/data/testwarm.inject.js349
-rw-r--r--tests/qunit/index.html139
-rw-r--r--tests/qunit/suites/resources/jquery/jquery.autoEllipsis.test.js25
-rw-r--r--tests/qunit/suites/resources/jquery/jquery.byteLength.test.js37
-rw-r--r--tests/qunit/suites/resources/jquery/jquery.byteLimit.test.js397
-rw-r--r--tests/qunit/suites/resources/jquery/jquery.client.test.js64
-rw-r--r--tests/qunit/suites/resources/jquery/jquery.colorUtil.test.js69
-rw-r--r--tests/qunit/suites/resources/jquery/jquery.delayedBind.test.js40
-rw-r--r--tests/qunit/suites/resources/jquery/jquery.getAttrs.test.js14
-rw-r--r--tests/qunit/suites/resources/jquery/jquery.highlightText.test.js25
-rw-r--r--tests/qunit/suites/resources/jquery/jquery.localize.test.js84
-rw-r--r--tests/qunit/suites/resources/jquery/jquery.mwExtension.test.js62
-rw-r--r--tests/qunit/suites/resources/jquery/jquery.tabIndex.test.js25
-rw-r--r--tests/qunit/suites/resources/jquery/jquery.tablesorter.test.js309
-rw-r--r--tests/qunit/suites/resources/jquery/jquery.textSelection.test.js44
-rw-r--r--tests/qunit/suites/resources/mediawiki.api/mediawiki.api.parse.test.js26
-rw-r--r--tests/qunit/suites/resources/mediawiki.api/mediawiki.api.test.js59
-rw-r--r--tests/qunit/suites/resources/mediawiki.special/mediawiki.special.recentchanges.test.js27
-rw-r--r--tests/qunit/suites/resources/mediawiki/mediawiki.Title.test.js121
-rw-r--r--tests/qunit/suites/resources/mediawiki/mediawiki.Uri.test.js388
-rw-r--r--tests/qunit/suites/resources/mediawiki/mediawiki.cldr.test.js74
-rw-r--r--tests/qunit/suites/resources/mediawiki/mediawiki.jqueryMsg.test.js124
-rw-r--r--tests/qunit/suites/resources/mediawiki/mediawiki.jscompat.test.js40
-rw-r--r--tests/qunit/suites/resources/mediawiki/mediawiki.language.test.js394
-rw-r--r--tests/qunit/suites/resources/mediawiki/mediawiki.test.js631
-rw-r--r--tests/qunit/suites/resources/mediawiki/mediawiki.user.test.js57
-rw-r--r--tests/qunit/suites/resources/mediawiki/mediawiki.util.test.js241
-rw-r--r--tests/selenium/SeleniumConfig.php36
-rw-r--r--tests/selenium/data/SimpleSeleniumTestDB.sql2
-rw-r--r--tests/selenium/data/mediawiki118_fresh_installation.sql2
-rw-r--r--tests/selenium/installer/MediaWikiButtonsAvailabilityTestCase.php4
-rw-r--r--tests/selenium/installer/MediaWikiDifferentDatabaseAccountTestCase.php2
-rw-r--r--tests/selenium/installer/MediaWikiDifferntDatabasePrefixTestCase.php2
-rw-r--r--tests/selenium/installer/MediaWikiErrorsConnectToDatabasePageTestCase.php2
-rw-r--r--tests/selenium/installer/MediaWikiErrorsNamepageTestCase.php2
-rw-r--r--tests/selenium/installer/MediaWikiHelpFieldHintTestCase.php2
-rw-r--r--tests/selenium/installer/MediaWikiInstallationCommonFunction.php6
-rw-r--r--tests/selenium/installer/MediaWikiInstallerTestSuite.php26
-rw-r--r--tests/selenium/installer/MediaWikiMySQLDataBaseTestCase.php2
-rw-r--r--tests/selenium/installer/MediaWikiMySQLiteDataBaseTestCase.php2
-rw-r--r--tests/selenium/installer/MediaWikiOnAlreadyInstalledTestCase.php2
-rw-r--r--tests/selenium/installer/MediaWikiRestartInstallationTestCase.php2
-rw-r--r--tests/selenium/installer/MediaWikiRightFrameworkLinksTestCase.php2
-rw-r--r--tests/selenium/installer/MediaWikiUpgradeExistingDatabaseTestCase.php4
-rw-r--r--tests/selenium/installer/MediaWikiUserInterfaceTestCase.php2
-rw-r--r--tests/selenium/installer/README.txt2
-rw-r--r--tests/selenium/suites/MediawikiCoreSmokeTestCase.php2
-rw-r--r--tests/selenium/suites/MyContributionsTestCase.php2
-rw-r--r--tests/selenium/suites/MyWatchListTestCase.php2
-rw-r--r--tests/testHelpers.inc4
-rw-r--r--thumb.php215
-rw-r--r--thumb.php526
-rw-r--r--thumb_handler.php25
-rw-r--r--thumb_handler.php526
1925 files changed, 549638 insertions, 488381 deletions
diff --git a/.gitreview b/.gitreview
index 96d08bba..ebac82cb 100644
--- a/.gitreview
+++ b/.gitreview
@@ -2,4 +2,5 @@
host=gerrit.wikimedia.org
port=29418
project=mediawiki/core.git
-defaultbranch=REL1_19
+defaultbranch=REL1_20
+defaultrebase=0
diff --git a/.jshintignore b/.jshintignore
new file mode 100644
index 00000000..2f44f870
--- /dev/null
+++ b/.jshintignore
@@ -0,0 +1,28 @@
+# third-party libs
+extensions/
+node_modules/
+resources/jquery/jquery.appear.js
+resources/jquery/jquery.async.js
+resources/jquery/jquery.cycle.all.js
+resources/jquery/jquery.cookie.js
+resources/jquery/jquery.farbtastic.js
+resources/jquery/jquery.form.js
+resources/jquery/jquery.hoverIntent.js
+resources/jquery/jquery.js
+resources/jquery/jquery.json.js
+resources/jquery/jquery.jStorage.js
+resources/jquery/jquery.mockjax.js
+resources/jquery/jquery.qunit.js
+resources/jquery/jquery.validate.js
+resources/jquery/jquery.xmldom.js
+resources/jquery.effects/
+resources/jquery.tipsy/
+resources/jquery.ui/
+resources/mediawiki.libs/
+tests/jasmine/
+
+# legacy scripts
+skins/common/
+
+# github.com/jshint/jshint/issues/729
+tests/qunit/suites/resources/mediawiki/mediawiki.jscompat.test.js
diff --git a/.jshintrc b/.jshintrc
new file mode 100644
index 00000000..31dc9a0c
--- /dev/null
+++ b/.jshintrc
@@ -0,0 +1,25 @@
+{
+ "predef": [
+ "mediaWiki",
+ "jQuery",
+ "QUnit",
+ "mw",
+ "$"
+ ],
+
+ "bitwise": true,
+ "immed": true,
+ "latedef": true,
+ "newcap": true,
+ "noarg": true,
+ "nonew": true,
+ "undef": true,
+
+ "laxbreak": true,
+ "loopfunc": true,
+ "smarttabs": true,
+ "multistr": true,
+ "onecase": true,
+
+ "browser": true
+}
diff --git a/CREDITS b/CREDITS
index 05931937..5ceccc53 100644
--- a/CREDITS
+++ b/CREDITS
@@ -1,4 +1,4 @@
-MediaWiki 1.19 is a collaborative project released under the
+MediaWiki 1.20 is a collaborative project released under the
GNU General Public License v2. We would like to recognize the
following names for their contribution to the product.
@@ -7,8 +7,9 @@ following names for their contribution to the product.
* Alex Z.
* Alexandre Emsenhuber
* Andrew Garrett
+* Arthur Richards
* Aryeh Gregor
-* Antoine Musso
+* Antoine Musso
* Brian Wolff
* Bertrand Grondin
* Brad Jorsch
@@ -24,7 +25,7 @@ following names for their contribution to the product.
* Derk-Jan Hartman
* Domas Mituzas
* Emufarmers
-* Fran Rogers
+* Fran McCrory
* Greg Sabino Mullane
* Guy Van den Broeck
* Happy-melon
@@ -86,7 +87,9 @@ following names for their contribution to the product.
* Amir E. Aharoni
* Andrew Dunbar
* Antonio Ospite
+* Asier Lostalé
* Azliq7
+* Bagariavivek
* Beau
* Bergi
* Borislav Manolov
@@ -95,6 +98,8 @@ following names for their contribution to the product.
* Brianna Laugher
* Carlin
* Carsten Nielsen
+* Christian Neubauer
+* Christian Aistleitner
* Conrad Irwin
* cryptocoryne
* Dan Barrett
@@ -104,6 +109,7 @@ following names for their contribution to the product.
* David Baumgarten
* Denny Vrandecic
* Edward Z. Yang
+* Elvis Stansvik
* Erwin Dokter
* FunPika
* fomafix
@@ -112,13 +118,16 @@ following names for their contribution to the product.
* Grunny
* Harry Burt
* Ireas
+* Jacob Block
* Jaska Zedlik
* Jeremy Baron
* Jidanni
* Jimmy Xu
* Jonathan Wiltshire
-* Karun Dambietz
+* John N
+* Karun Dambiec
* Kim Hyun-Joon
+* Krenair
* Lee Worden
* Lejonel
* liangent
@@ -129,6 +138,7 @@ following names for their contribution to the product.
* Manuel Menal
* Marcin Cieślak
* Marcus Buck
+* Mark A. Pelletier
* Marooned
* Mathias Ertl
* Matthew Britton
@@ -143,6 +153,7 @@ following names for their contribution to the product.
* Michael Walsh
* Mike Horvath
* Mormegil
+* moejoe0000
* MrBlueSky
* MrPete
* MZMcBride
@@ -154,6 +165,7 @@ following names for their contribution to the product.
* Nx.devnull
* Nikola Kovacs
* Nikolaos S. Karastathis
+* Nischay Nahata
* Olaf Lenz
* Olivier Finlay Beaton
* Paul Copperman
@@ -164,12 +176,14 @@ following names for their contribution to the product.
* rgcjonas
* Robert Treat
* RockMFR
+* Russell Blau
* Rusty Burchfield
* Salvatore Ingala
* Scott Colcord
* Simon Walker
* Solitarius
* Søren Løvborg
+* Srikanth Lakshmanan
* Stefano Codari
* Str4nd
* svip
@@ -181,6 +195,7 @@ following names for their contribution to the product.
* Ville Stadista
* Vitaliy Filippov
* William Demchick
+* Yusuke Matsubara
* Yuvaraj Pandian T
* Zachary Hauri
@@ -191,4 +206,4 @@ following names for their contribution to the product.
* Meno25
* Rotem Liss
* Shinjiman
-* Translatewiki.net Translators http://translatewiki.net/wiki/Special:ListUsers/translator
+* Translatewiki.net Translators https://translatewiki.net/wiki/Special:ListUsers/translator
diff --git a/HISTORY b/HISTORY
index 2669f67d..408ae384 100644
--- a/HISTORY
+++ b/HISTORY
@@ -63,7 +63,7 @@ This a maintenance and security release of the MediaWiki 1.18 branch.
for Oracle DB.
* (bug 33117) prop=revisions allows deleted text to be exposed through cache pollution.
-=== MediaWiki 1.18.0 ===
+== MediaWiki 1.18.0 ==
2011-11-24
This is the first stable release of the MediaWiki 1.18 branch.
diff --git a/INSTALL b/INSTALL
index 3a2860fe..c4bb8be9 100644
--- a/INSTALL
+++ b/INSTALL
@@ -6,7 +6,7 @@ Starting with MediaWiki 1.2.0, it's possible to install and configure the wiki
"in-place", as long as you have the necessary prerequisites available.
Required software:
-* Web server with PHP 5.2.3 or higher.
+* Web server with PHP 5.3.2 or higher.
* A SQL server, the following types are supported
** MySQL 5.0.2 or higher
** PostgreSQL 8.3 or higher
diff --git a/README b/README
index 078f92c9..805b8ee4 100644
--- a/README
+++ b/README
@@ -1,5 +1,3 @@
-2008-11-11
-
For system requirements, installation and upgrade details, see the files
RELEASE-NOTES, INSTALL, and UPGRADE.
@@ -48,8 +46,7 @@ The MediaWiki software was written by:
* Victor Vasiliev
* Rotem Liss
* Platonides
-* Antoine Musso
-* Several others (view CREDITS for a more complete list)
+* Many others (view CREDITS for a more complete list)
The contributors hold the copyright to this work, and it is licensed under the
terms of the GNU General Public License, version 2 or later (see
@@ -88,8 +85,8 @@ The official website for MediaWiki is located at:
http://www.mediawiki.org/
-The code is currently maintained in a Subversion repository at
-svn.wikimedia.org. See http://www.mediawiki.org/wiki/Subversion for details.
+The code is currently maintained in a Git repository at
+gerrit.wikimedia.org. See http://www.mediawiki.org/wiki/Git for details.
Please report bugs and make feature requests in our Bugzilla system:
diff --git a/RELEASE-NOTES-1.19 b/RELEASE-NOTES-1.19
deleted file mode 100644
index b72816f7..00000000
--- a/RELEASE-NOTES-1.19
+++ /dev/null
@@ -1,488 +0,0 @@
-= MediaWiki release notes =
-
-Security reminder: MediaWiki does not require PHP's register_globals
-setting since version 1.2.0. If you have it on, turn it '''off''' if you can.
-
-== MediaWiki 1.19.3 ==
-
-This is a security release of the MediaWiki 1.19 branch
-
-=== Changes since 1.19.2 ===
-* (bug 40995) Prevent session fixation in Special:UserLogin (CVE-2012-5391)
-* (bug 41400) Prevent linker regex from exceeding PCRE backtrack limit
-* Increase permitted runtime for testParserTest (only used for continuous
- integration).
-* Updated messages translations from http://translatewiki.net/
-
-== MediaWiki 1.19.2 ==
-
-This is a security release of the MediaWiki 1.19 branch
-
-=== Changes since 1.19.1 ===
-* (bug 39700) File: link to non-existing file can inject html
-* (bug 39823) Hidden block text leaking to admins
-* (bug 39184) LDAP password leakage
-* (bug 39180) Disallow framing of api results
-* (bug 37587) Enforce language codes to be html safe
-* (bug 39824) Check global blocks on account creation
-
-== MediaWiki 1.19 ==
-
-MediaWiki 1.19 is a large release that contains many new features and bug
-fixes. This is a summary of the major changes of interest to users.
-You can consult the RELEASE-NOTES-1.19 file for the full list of changes in
-this version.
-
-Our thanks go to everyone who helped to improve MediaWiki by testing the beta
-release and submitting bug reports.
-
-=== Changes since 1.19.1 ===
-* (bug 38406) Properly quote table names in DatabaseBase::tableName()
-* (bug 38249) Parser will throw an exception instead of outputting gibberish if
- PCRE is compiled without support for unicode properties.
-
-=== Changes since 1.19.0 ===
-* (bug 36568) Fixed "Illegal string offset 'LIMIT'" warnings in updater
-* (bug 36938) Correctly escape uselang attribute to prevent xss
-* Expanded Blacklist for SVG Files
-
-=== Changes since 1.19 beta 2 ===
-* Special:Watchlist no longer sets links to feed when the user is anonymous.
-* (bug 35961) Hash comparison should always be strict.
-* Fix broken email confirmation expiration caused by MWCryptRand changes.
-* (bug 35671) PHP Notice: Undefined index: gettoken in includes/api/ApiMain.php
- on line 598.
-* (bug 36042) 'show' causes a fatal in blocks API.
-
-=== Changes since 1.19 beta 1 ===
-* (bug 35014) Including a special page no longer sets the page's title to the
- included page
-* (bug 35019) Edit summaries are no longer transformed in notification e-mails
-* (bug 35152) Help message for e-mail is shown again in user preferences
-* (bug 34887) $3 and $4 parameters are now substituted correctly in message
- "movepage-moved"
-* (bug 34841) Edit links are no longer displayed when display old page versions
-* (bug 34889) User name should be normalized on Special:Contributions
-* (bug 35051) If heading has a trailing space after == then its name is not
- preloaded into edit summary on section edit
-* (bug 31417) New ID mw-content-text around the actual page text, without categories,
- contentSub, ... The same div often also contains the class mw-content-ltr/rtl.
-* (bug 35303) Proxy and DNS blacklist blocking works again
-* (bug 22555) Remove or skip strip markers from tag hooks like <nowiki> in
- core parser functions which operate on strings, such as padleft.
-* (bug 18295) Don't expose strip markers when a tag appears inside a link
- inside a heading.
-* (bug 34212) ApiBlock/ApiUnblock allow action to take place without a token
- parameter present.
-* (bug 34907) Fixed exposure of tokens through load.php that could have facilitated
- CSRF attacks.
-* (bug 35317) CSRF in Special:Upload.
-
-=== Configuration changes in 1.19 ===
-* Removed SkinTemplateSetupPageCss hook; use BeforePageDisplay instead.
-* (bug 27132) movefile right granted by default to registered users.
-* Default cookie lifetime ($wgCookieExpiration) is increased to 180 days.
-* (bug 31204) Removed old user.user_options.
-* $wgMaxImageArea now applies to jpeg files if they are not scaled with
- ImageMagick.
-* Introduced $wgQueryPageDefaultLimit (defaults to 50) for the number of
- items to show by default on query pages (special pages such as Whatlinkshere).
-* (bug 32470) Increase the length of ug_group.
-* (bug 32239) Removed $wgEnableTooltipsAndAccesskeys.
-* Removed $wgVectorShowVariantName.
-* Removed $wgExtensionAliasesFiles. Use $wgExtensionMessagesFiles.
-* Removed $wgResourceLoaderInlinePrivateModules , now always enabled.
-
-=== New features in 1.19 ===
-* (bug 19838) Add ability to get all interwiki prefixes also if the interwiki
- cache is used.
-* $wgDnsBlacklistUrls now accepts an array with url and key as the
- elements to work with DNSBLs that require keys, such as
- Project Honeypot.
-* (bug 30022) Add support for custom loadScript sources to ResourceLoader.
-* (bug 19052) Unicode space separator characters (Zs) now terminates external
- links and images links.
-* (bug 30160) Add public method to mw.loader to get module names from registry.
-* (bug 15558) Parameters to special pages included in wikitext can now be passed
- as with templates.
-* Installer now issues a warning if mod_security is present.
-* (bug 29455) Add support for a filter callback function in jQuery byteLimit
- plugin.
-* Added two new GetLocalURL hooks to better serve extensions working on a
- limited type of titles.
-* Added a --no-updates flag to importDump.php that skips updating the links
- tables.
-* Most presentational html attributes like valign are now converted to inline
- css style rules. These attributes were removed from html5 and so we clean
- them up when $wgHtml5 is enabled. This can be disabled using
- $wgCleanupPresentationalAttributes.
-* Magic words (time and number-formatting ones, plus DIRECTIONMARK, but not
- NAMESPACE) now depend on the page content language instead of the site
- language. In theory this sets the right magic words in system messages,
- although they are not used there.
-* (bug 30451) Add page_props to RefreshLinks::deleteLinksFromNonexistent.
-* (bug 30450) Clear page_props table on page deletion.
-* Hook added to check for exempt from account creation throttle.
-* (bug 30344) Add configuration variable for setting custom priorities when
- generating sitemaps.
-* (bug 96170) Add array support for space-separated list attributes (like
- 'class') in the Html helper class.
-* (bug 26470) Add checkered background image on hover on files pages.
-* (bug 30774) mediawiki.html: Add support for numbers and booleans in the
- attribute values and element contents.
-* Conversion script between Tifinagh and Latin for the Tachelhit language.
-* (bug 16755) Add options 'noreplace' and 'noerror' to {{DEFAULTSORT:...}}
- to stop it from replace an already existing default sort, and suppress error.
-* (bug 18578) Rewrote revision delete related messages to allow better
- localisation.
-* (bug 30364) LanguageConverter now depends on the page content language
- instead of the wiki content language.
-* Jump links will now be usable in CSS-capable browsers instead of only
- in outdated text browsers.
-* New common*.css files usable by skins instead of having to copy piles
- of generic styles from MonoBook or Vector's css.
-* Some deprecated presentational html attributes will now be automatically
- converted to css.
-* (bug 31297) Add support for namespaces in Special:RecentChanges subpage filter
- syntax.
-* The default user signature now contains a talk link in addition to the user link.
-* (bug 25306) Add link of old page title to MediaWiki:Delete_and_move_reason.
-* Added hook BitmapHandlerCheckImageArea.
-* (bug 30062) Add $wgDBprefix option to cli installer.
-* getUserPermissionsErrors and getUserPermissionsErrorsExpensive hooks are now
- also called when checking for 'read' permission.
-* Introduce $wgEnableSearchContributorsByIP which controls whether searching
- for an IP address redirects to the contributions list for that IP.
-* (bug 8859) Database::update should take array of tables too.
-* (bug 19698) Add "Inverse namespaces" option to Special:Contributions.
-* (bug 24037) Add byte length of revision to Special:Contributions.
-* (bug 1672) Added $wgDisableUploadScriptChecks to allow uploading of files
- containing HTML or JS. DISABLING THESE CHECKS IS VERY DANGEROUS.
-* New path mappings can be added using the WebRequestPathInfoRouter hook
- and adding paths to the PathRouter.
-* (bug 32666) Special:ActiveUsers now allows a subpage to be used as value for the
- "target" query parameter (eg. Special:ActiveUsers/Username).
-* New JavaScript variable wgPageContentLanguage.
-* Added new debugging toolbar, enabled with $wgDebugToolbar.
-* Differences in the history page now uses slightly better colors for people
- perceiving colors differently.
-* (bug 32879) Upgrade jQuery to 1.7.1.
-* jQuery UI upgraded to 1.8.17.
-* Extensions can use the 'Language::getMessagesFileName' hook to define new
- languages using messages files outside of core.
-* (bug 32512) Add 'Associated namespace' checkbox to Special:Contributions.
-* Added $wgSend404Code, true by default, which can be set to false to send a
- 200 status code instead of 404 for nonexistent articles.
-* (bug 33447) Link to the broken image tracking category from Special:Wantedfiles.
-* (bug 27724) Add timestamp to job queue.
-* (bug 30339) Implement SpecialPage for running javascript tests. Disabled by default, due to
- tests potentially being harmful, not to be run on a production wiki.
- Enable by setting $wgEnableJavaScriptTest to true.
-* Extensions can use the RequestContextCreateSkin hook to override what skin is
- loaded in some contexts.
-* (bug 33456) Show $wgQueryCacheLimit on cached query pages.
-* (bug 10574) Add an option to allow all pages to be exported by Special:Export.
-* mediawiki.js Message object constructor is now publicly available as mw.Message.
-* (bug 29309) Allow CSS class per tooltip (tipsy).
-* (bug 33565) Add accesskey/tooltip to submit buttons on Special:EditWatchlist.
-* (bug 17959) Inline rendering/thumbnailing for Gimp XCF images.
-* (bug 27775) Namespace has it's own XML tag in the XML dump file.
-* (bug 30513) Redirect tag is now resolved in XML dump file.
-* sha1 xml tag added to XML dump file.
-* (bug 33646) Badtitle error page now emits a 400 HTTP status.
-* Special:MovePage now has a dropdown menu for namespaces.
-* (bug 34420) Special:Version now shows git HEAD sha1 when available.
-* (bug 33952) Refactor mw.toolbar to allow dynamic additions at any time.
-
-=== Bug fixes in 1.19 ===
-* $wgUploadNavigationUrl should be used for file redlinks if.
- $wgUploadMissingFileUrl is not set. The first was used for this
- until the second was introduced in 1.17.
-* BREAKING CHANGE: Style rules for wikitable are now more specific and prevent
- inheritance to nested tables which caused various issues (bug 30485 and bug
- 33434). If your wiki has overriden rules for ".wikitable", please revise them and
- adjust where neccecary. For comparison, use the "table.wikitable" section in
- skins/common/shared.css as base.
-* $wgUploadNavigationUrl is now used for file redlinks if
- $wgUploadMissingFileUrl is not set. The former was used for this until the
- second was introduced in 1.17.
-* (bug 27894) Move 'editondblclick' event listener down from body to
- div#bodyContent.
-* (bug 30172) The check for posix_isatty() in maintenance scripts did not detect
- when the function exists but is disabled. Introduced
- Maintenance::posix_isatty().
-* (bug 30264) Changed installer-generated LocalSettings.php to use
- require_once() instead require() for included extensions.
-* Do not convert text in the user interface language to another script.
-* (bug 26283) Previewing user JS/CSS pages didn't load other user JS/CSS pages.
-* (bug 26486) ResourceLoader modules with paths to nonexistent files cause PHP
- warnings/notices to be thrown.
-* (bug 30335) Fix for HTMLForms using GET that were breaking when non-friendly
- URLs are used.
-* (bug 28649) Preventing half truncated multi-byte unicode characters when
- truncating log comments.
-* Show --batch-size option in help of maintenance scripts that support it.
-* (bug 4381) Magic quotes cleaning was not comprehensive, key strings were not
- unescaped.
-* (bug 23057) Importers no longer can 'edit' or 'create' a fully-protected page by
- importing a new revision into it.
-* Allow moving the associated talk pages of subpages even if the base page
- has no subpage.
-* Per page edit-notices now work in namespaces without subpages enabled.
-* (bug 31081) $wgEnotifUseJobQ is no longer unconditionally enqueueing jobs.
-* (bug 30202) File names are now restricted on upload to 240 bytes, because of
- restrictions on some of the database fields.
-* Timezones are now recognised in user preferences when offset is different
- due to DST.
-* (bug 31692) "summary" parameter now also works when undoing revisions.
-* (bug 18823) "move succeeded" text displayed bluelinks even when redirect was
- suppressed.
-* (bug 19186) Special:UserLogin's title on Special:SpecialPages now says
- "create account" when the user cannot create an account.
-* (bug 31818) 'usercreated' message now supports GENDER.
-* (bug 32022) Our phpunit.php script can now be executed from another directory.
-* (bug 26020) Setting $wgEmailConfirmToEdit to true no longer removes diffs.
- from recent changes feeds.
-* (bug 30232) add current time to message wlnote on Special:Watchlist.
-* (bug 29110) $wgFeedDiffCutoff did not affect new pages.
-* (bug 32168) Add wfRemoveDotSegments for use in wfExpandUrl.
-* (bug 32358) Do not display "No higher resolution available" for dimensionless
- files (like audio files).
-* (bug 32168) Add wfAssembleUrl for use in wfExpandUrl.
-* (bug 32168) fixed - wfExpandUrl expands dot segments now.
-* (bug 31535) Upload comments now truncated properly, and don't have brackets.
-* (bug 32086) Special:PermanentLink now show an error message when no subpage
- was specified.
-* (bug 30368) Special:Newpages now shows the new page name for moved pages.
-* (bug 1697) The way to search blocked usernames in block log should be clearer.
-* (bug 29747) eAccelerator shared memory caching has been removed since it is
- now disabled by default and is buggy. APC, XCache and WinCache are not affected.
-* Installer now refuses to install if php was not compiled with Ctype support.
-* (bug 29475) Remove "trackback" feature entirely from core.
-* (bug 32665) Special:BlockList prefills the username in the input field if
- using the Special:BlockList/username URL.
-* (bug 27721) Make JavaScript variables wgSeparatorTransformTable and
- wgDigitTransformTable depend on page content language so the sort script
- sorts correctly more often.
-* (bug 32230) Expose wgRedirectedFrom in JavaScript.
-* (bug 31212) History tab not collapsed when the screen is narrow.
-* (bug 15521) Use new section summary when the action of adding a new section
- also happens to create the page.
-* (bug 32960) Remove EmailAuthenticationTimestamp from database when a
- email address is removed.
-* (bug 32414) Empty page get a empty bytes attribute in Export/Dump.
-* (bug 33101) Viewing a User or User talk of username resembling IP ending
- with .xxx causes Internal error.
-* Warning about undefined index in certain situations when $wgLogRestrictions
- causes the first log type requested to be removed but not the others.
-* Use separate message ('prefixindex-namespace') for title of
- Special:PrefixIndex rather then re-using Special:AllPages's allinnamespace.
-* (bug 33156) Special:Block now allows you to confirm you want to block yourself
- when using non-normalized username.
-* (bug 33246) News icon shown for news:// URLs but not for news: URLs.
-* (bug 33305) Make mw.util.addCSS resistant to IE's @font-face bug by setting
- cssText after DOM insertion.
-* (bug 30711) When adding a new section to a page with section=new, the text is
- now always added to the current version of the page.
-* (bug 31719) Fix uploads of SVGs exported by Adobe Illustrator by expanding
- XML entities correctly.
-* (bug 30914) Embeddable ResourceLoader modules (user.options, user.tokens)
- should be loaded in <head> for proper dependency resolution.
-* (bug 32702) Removed method Skin::makeGlobalVariablesScript() has been readded
- for backward compatibility.
-* (bug 31469) Make sure tracking category messages expand variables like
- {{NAMESPACE}} relative to correct title.
-* (bug 33454) ISO-8601 week-based year number (format character 'o') is now
- calculated correctly with respect to timezone.
-* (bug 32219) InstantCommons now fetches content from Wikimedia Commons using
- HTTPS when the local wiki is served over HTTPS.
-* (bug 33525) clearTagHooks doesn't clear function hooks.
-* (bug 33523) Function tag hooks don't appear on Special:Version.
-* Files with IPTC blocks we can't read no longer prevent extraction of exif
- or other metadata.
-* (bug 33587) Remove action "historysubmit" from history pages.
-* (bug 25800) mw.config wgAction should contain the actually performed action instead
- of whatever the query value contains.
-* (bug 4438) Add CSS hook for current WikiPage action.
-* (bug 33703) Common border-bottom color for <abbr> should inherit default (text) color.
-* (bug 33819) Display file sizes in appropriate units.
-* (bug 32948) {{REVISIONID}} and related variables are no longer blank after doing
- a null edit.
-* (bug 33880) $wgUsersNotifiedOnAllChanges should not send e-mail to user who made
- the edit.
-* (bug 33902) Decoding %2B with mw.Uri.decode results in ' ' instead of +.
-* (bug 33762) QueryPage-based special pages no longer misses *-summary message.
-* Other sizes links are no longer generated for wikis without a 404 thumbnail handler.
-* (bug 29454) Enforce byteLimit for page title input on Special:MovePage.
-* (bug 34114) CSSMin::remap() doesn't respect its $embed parameter.
-* Special:Contributions/newbies now shows the contributions for the user "newbies".
- New user contributions are obtained using the form or using ?contribs=newbie in URL.
-* It is now possible to delete images that have no corresponding description pages.
-* (bug 33165) GlobalFunctions.php line 1312: Call to a member function
- getText() on a non-object.
-* (bug 31676) Group dynamically inserted CSS into a single <style> tag, to work
- around a bug where not all styles were applied in Internet Explorer.
-* (bug 28936, bug 5280) Broken or invalid titles can't be removed from watchlist.
-* (bug 34600) Older skins using useHeadElement=false were broken in 1.18.
-* (bug 34604) [mw.config] wgActionPaths should be an object instead of a numeral
- array.* (bug 12262) Indents and lists are now aligned
-* (bug 29753) mw.util.tooltipAccessKeyPrefix should be alt-shift for Chrome
- on Windows
-* (bug 25095) Special:Categories should also include the first relevant item
- when "from" is filled.
-* (bug 34972) An error occurred while changing your watchlist settings for
- [[Special:WhatLinksHere/Example]]
-
-=== API changes in 1.19 ===
-* Made action=edit less likely to return "unknownerror", by returning the actual error
- message (which may have come from a hook call or similar).
-* (bug 19838) siprop=interwikimap can now use the interwiki cache.
-* (bug 29748) Add API search prefix support.
-* (bug 29684) Set forgotten parameter types in ApiQueryIWLinks.
-* (bug 29685) do not output NULL parentid with list=deletedrevs&drprop=parentid.
-* siprop=interwikimap and siprop=languages can use silanguagecode to have
- a best effort language name translation. Use CLDR extension for best result.
-* (bug 30230) action=expandtemplates should not silently override invalid title
- inputs.
-* (bug 18634) Create API to fetch MediaWiki's language fallback tree structure.
-* (bug 26885) Allow show/hide of account blocks, temporary blocks and single IP
- address blocks for list=blocks.
-* (bug 30591) Add support to only return keys in ApiAllMessages.
-* The API now respects $wgShowHostnames and won't share the hostname in
- severedby if it's set to false.
-* wlexcludeuser parameter added to ApiFeedWatchlist.
-* (bug 7304) Links on redirect pages no longer cause the redirect page to show
- up as a redirect to the linked page on Special:Whatlinkshere.
-* (bug 32609) API: Move captchaid/captchaword of action=edit from core
- to Captcha extension(s).
-* Added 'APIGetDescription' hook.
-* (bug 32688) Paraminfo for parameter "generator" of the query module shows too
- many types.
-* (bug 32415) Empty page get no size attribute in API output.
-* (bug 31759) Undefined property notice in querypages API.
-* (bug 32495) API should allow purge by pageids.
-* (bug 33147) API examples should explain what they do.
-* (bug 33482) Api incorrectly calls ApiBase::parseMultiValue if allowed
- values is given as an array.
-* (bug 32948) {{REVISIONID}} and related variables are no longer blank after
- calling action=purge&forcelinkupdate.
-* (bug 34377) action=watch now parses messages using the correct title instead
- of "API".
-* (bug 35036) WikiLove messages were not automatically updated in JavaScript
- after having been changed on-wiki due to a bug in core
-
-=== Languages updated in 1.19 ===
-
-MediaWiki supports over 350 languages. Many localisations are updated
-regularly. Below only new and removed languages are listed, as well as
-changes to languages because of Bugzilla reports.
-
-* Canadian English (en-ca) (new).
-* Norwegian (bokmål) (nb) (renamed from no).
-* Uighur (Latin) (ug-latn) was incorrectly marked as right-to-left language.
-* (bug 30217) Make pt-br a fallback of pt.
-* (bug 31193) Set fallback language of Assamese from Bengali to English.
-* Update date format for dsb and hsb: month names need the genitive.
-* (bug 28643) Serbian variant conversion improvements (Nikola Smolenski).
-* (bug 29405, bug 30809) Lower diacritics are invisible in titles in Indic
- languages Assamese, Bengali, Hindi, Malyalam and Odiya.
-* (bug 32826) Titles in indic languages are partially cut.
-* (bug 33367) Gendered namespaces for Czech.
-* (bug 33014) Language::formatSize()/formatBitrate() should be able to deal
- with larger numbers (tera-yotta).
-
-=== Other changes in 1.19 ===
-* BREAKING CHANGE: Legacy global array 'ta' and global function 'akeytt' have
- been removed from wikibits.js.
-* jquery.mwPrototypes module was renamed to jquery.mwExtension.
-* The maintenance script populateSha1.php was renamed to the more concise
- populateImageSha1.php.
-* The Client-IP header is no longer checked for when trying to resolve a client's
- real IP address.
-* (bug 22096) Although IE5.x and below was already unsupported officially, stylesheets
- existing exclusively for IE5.0 and IE5.5 have now been removed (which were in skins
- 'chick' and 'monobook').
-* The constructor for CategoryView has changed, the second parameter is now a
- Context source and is required.
-* The Title::escape{Local,Full,Canonical}URL methods are deprecated, please use
- proper html building methods to escape the normal get{...}URL methods instead.
-* The $variant arguments in the Title::get{Local,Full,Link,Canonical}URL methods
- have been replaced with a secondary query argument.
-* The $variant argument in the hooks for the Title::get{Local,Full,Link,Canonical}URL
- methods have been removed, the variant is now part of the $query argument.
-* Removed Title::isValidCssJsSubpage(), deprecated since 1.17 in favor of
- using Title::isCssJsSubpage() or checking Title::isWrongCaseCssJsPage().
-* Support for the deprecated hook MagicWordMagicWords was removed.
-* The Xml::namespaceSelector method has been deprecated, please use
- Html::namespaceSelector instead (note that the parameters have changed also).
-* (bug 33746) Preload popular ResourceLoader modules (mediawiki.util) as stop-gap
- for scripts missing dependencies.
- New configuration variable $wgPreloadJavaScriptMwUtil has been introduced for this
- (set to false by default for new installations). Set to true if your wiki has a large
- amount of user/site scripts that are lacking dependency information. In the short to
- medium term these user/site scripts should be fixed by adding the used modules to the
- dependencies in the module registry and/or wrapping them in a callback to mw.loader.using.
-
-== Compatibility ==
-
-MediaWiki 1.19 requires PHP 5.2.3. PHP 4 is no longer supported.
-
-MySQL is the recommended DBMS. PostgreSQL or SQLite can also be used, but
-support for them is somewhat less mature. There is experimental support for IBM
-DB2 and Oracle.
-
-The supported versions are:
-
-* MySQL 5.0.2 or later
-* PostgreSQL 8.3 or later
-* SQLite 3.3.7 or later
-* Oracle 9.0.1 or later
-
-== Upgrading ==
-
-1.19 has several database changes since 1.18, and will not work without schema
-updates.
-
-As of 1.19 several JavaScript interfaces that were deprecated or superseeded in
-MediaWiki 1.17, MediaWiki 1.16 or even earlier have been removed. They are
-listed at the top of the "Other changes" list as a "BREAKING CHANGE".
-
-If upgrading from before 1.11, and you are using a wiki as a commons
-repository, make sure that it is updated as well. Otherwise, errors may arise
-due to database schema changes.
-
-If upgrading from before 1.7, you may want to run refreshLinks.php to ensure
-new database fields are filled with data.
-
-If you are upgrading from MediaWiki 1.4.x or earlier, some major database
-changes are made, and there is a slightly higher chance that things could
-break. Don't forget to always back up your database before upgrading!
-
-See the file UPGRADE for more detailed upgrade instructions.
-
-For notes on 1.18.x and older releases, see HISTORY.
-
-== Online documentation ==
-
-Documentation for both end-users and site administrators is available on
-MediaWiki.org, and is covered under the GNU Free Documentation License (except
-for pages that explicitly state that their contents are in the public domain):
-
- https://www.mediawiki.org/wiki/Documentation
-
-== Mailing list ==
-
-A mailing list is available for MediaWiki user support and discussion:
-
- https://lists.wikimedia.org/mailman/listinfo/mediawiki-l
-
-A low-traffic announcements-only list is also available:
-
- https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce
-
-It's highly recommended that you sign up for one of these lists if you're
-going to run a public MediaWiki, so you can be notified of security fixes.
-
-== IRC help ==
-
-There's usually someone online in #mediawiki on irc.freenode.net.
diff --git a/RELEASE-NOTES-1.20 b/RELEASE-NOTES-1.20
new file mode 100644
index 00000000..17c3ba2e
--- /dev/null
+++ b/RELEASE-NOTES-1.20
@@ -0,0 +1,447 @@
+= MediaWiki release notes =
+
+Security reminder: MediaWiki does not require PHP's register_globals
+setting since version 1.2.0. If you have it on, turn it '''off''' if you can.
+
+
+== MediaWiki 1.20.2 ==
+
+This is a maintenance release of the MediaWiki 1.20 branch
+
+=== Changes since 1.20.1 ===
+* (bug 42638) Fix API action=options&reset=1 & unit tests.
+* (bug 42370) Fixed backport of 60cc060 to use mDoneWrites.
+
+== MediaWiki 1.20.1 ==
+
+This is a security release of the MediaWiki 1.20 branch
+
+=== Changes since 1.20 ===
+* (bug 42202) Validate options to prevent html injection
+* (bug 40995) Prevent session fixation in Special:UserLogin (CVE-2012-5391)
+* (bug 41400) Prevent linker regex from exceeding PCRE backtrack limit
+* Javscript Lint fixes
+* (bug 40632) Remove CleanupPresentationalAttributes feature
+* [Database] Fixed case where trx idle callbacks might be lost.
+
+== MediaWiki 1.20 ==
+
+MediaWiki 1.20 is a stable release.
+
+=== PHP 5.3 now required ===
+Since 1.20, the lowest supported version of PHP is now 5.3.2. Please
+upgrade PHP if you have not done so prior to upgrading MediaWiki.
+
+=== Configuration changes in 1.20 ===
+* $wgGitRepositoryViewers defines a mapping from Git remote repository to the
+ Gitweb instance URL used in Special:Version.
+* `$wgUsePathInfo = true;` is no longer needed to make $wgArticlePath work on servers
+ using like nginx, lighttpd, and apache over fastcgi. MediaWiki now always extracts
+ path info from REQUEST_URI if it's available.
+* The user right 'upload_by_url' is no longer given to sysops by default.
+ This only affects installations which have $wgAllowCopyUploads set to true.
+* Removed f-prot support from $wgAntivirusSetup.
+* New variable $wgDBerrorLogTZ to provide dates in the error log in a
+ different timezone than the wiki timezone set by $wgLocaltimezone.
+* New variables $wgDBssl and $wgDBcompress to enable SSL and compression for database
+ connections, if either are available for the selected DB type.
+* $wgUseCombinedLoginLink now defaults to false, making MediaWiki output separate
+ login and create account links by default.
+
+=== New features in 1.20 ===
+* Added TitleIsAlwaysKnown hook which gets called when determining if a page exists.
+* Added NamespaceIsMovable hook which gets called when determining if pages in a
+ certain namespace can be moved.
+* Added SpecialPageBeforeExecute hook which gets called before SpecialPage::execute.
+* Added SpecialPageAfterExecute hook which gets called after SpecialPage::execute.
+* Added ORMTable, ORMRow and ORMResult classes for additional abstraction of
+ database interaction.
+* Added CacheHelper and associated SpecialCachedPage and CachedAction helper classes.
+* (bug 32341) Add upload by URL domain limitation.
+* &useskin=default will now always display the default skin. Useful for users with a
+ preference for the non-default skin to look at something using the default skin.
+* (bug 27619) Remove preference option to display broken links as link?
+* (bug 34896) jQuery JSON plugin upgraded to v2.3 (2011-09-17).
+* (bug 34302) Add CSS classes to email fields in user preferences.
+* Introduced $wgDebugDBTransactions to trace transaction status (currently PostgreSQL only).
+* (bug 23795) Add parser itself to ParserMakeImageParams hook.
+* Introduce a cryptographic random number generator source api for use when
+ generating various tokens.
+* (bug 30963) Option on Special:Prefixindex and Special:Allpages to not show redirects.
+* (bug 18062) New message when edit or create the local page of a shared file.
+* (bug 22870) Separate interface message when creating a page.
+* (bug 17615) nosummary option should be reassigned on preview/captcha.
+* (bug 34355) Add a variable and parser function for the namespace number.
+* (bug 35649) Special:Version now shows hashes of extensions checked out from git.
+* (bug 35728) Git revisions are now linked on Special:Version.
+* "Show Changes" on default messages shows now diff against default message text
+* (bug 23006) create #speciale parser function.
+* generateSitemap can now optionally skip redirect pages.
+* (bug 27757) New API command just for retrieving tokens (not page-based).
+* Added GitViewers hook for extensions using external git repositories to have a web-based
+ repository viewer linked to from Special:Version.
+* Memcached debug logs can now be sent to their own file logs by setting
+ $wgDebugLogFile['memcached'] to some filepath.
+* (bug 35685) api.php URL and other entry point URLs are now listed on
+ Special:Version
+* Edit notices can now be translated.
+* jQuery upgraded to 1.8.2.
+* jQuery UI upgraded to 1.8.23.
+* QUnit upgraded from v1.2.0 to v1.10.0.
+* (bug 37604) jquery.cookie upgraded to 2011 version.
+* (bug 22887) Add warning and tracking category for preprocessor errors
+* (bug 31704) Allow selection of associated namespace on the watchlist
+* (bug 5445) Now remove autoblocks when a user is unblocked.
+* Added $wgLogExceptionBacktrace, on by default, to allow logging of exception
+ backtraces.
+* Added device detection for determining device capabilities.
+* QUnit.newMwEnvironment now supports passing a custom setup and/or teardown function.
+ Arguments signature has changed. First arguments is now an options object of which
+ 'config' can be a property. Previously 'config' itself was the first and only argument.
+* New getCreator and getOldestRevision methods added to WikiPage class
+* (bug 4220) the XML dump format schema now have unique identity constraints
+ for page and revision identifiers. Patch by Elvis Stansvik.
+* cleanupSpam.php now can delete spam pages if --delete was specified instead of blanking
+ them.
+* Added new hook ChangePasswordForm to allow adding of additional fields in Special:ChangePassword
+* Added new function getDomain to AuthPlugin for getting a user's domain
+* (bug 23427) New magic word {{PAGEID}} which gives the current page ID.
+ Will be null on previewing a page being created.
+* (bug 37627) UserNotLoggedIn() exception to show a generic error page whenever
+ a user is not logged in.
+* Watched status in changes lists are no longer indicated by <strong></strong>
+ tags with class "mw-watched". Instead, each line now has a class
+ "mw-changeslist-line-watched" or "mw-changeslist-line-not-watched", and the
+ title itself is surrounded by <span></span> tags with class "mw-title".
+* Added ContribsPager::reallyDoQuery hook allowing extensions to data to MyContribs
+* Added new hook ParserAfterParse to allow extensions to affect parsed output
+ after the parse is complete but before block level processing, link holder
+ replacement, and so on.
+* (bug 34678) Added InternalParseBeforeSanitize hook which gets called during Parser's
+ internalParse method just before the parser removes unwanted/dangerous HTML tags.
+* Added new hook AfterFinalPageOutput to allow modifications to buffered page output before sent
+ to the client.
+* (bug 36783) Implement jQuery Promise interface in mediawiki.api module.
+* Make dates in sortable tables sort according to the page content language
+ instead of the site content language
+* (bug 37926) Deleterevision will no longer allow users to delete log entries,
+ the new deletelogentry permission is required for this.
+* (bug 14237) Allow PAGESINCATEGORY to distinguish between 'all', 'pages', 'files'
+ and 'subcats'
+* (bug 38362) Make Special:Listuser includeable on wiki pages.
+* Added support in jquery.localize for placeholder attributes.
+* (bug 38151) Implemented mw.user.getRights for getting and caching the current
+ user's user rights.
+* Session storage can now configured independently of general object cache
+ storage, by using $wgSessionCacheType. $wgSessionsInMemcached has been
+ renamed to $wgSessionsInObjectCache, with the old name retained for backwards
+ compatibility. When this feature is enabled, the expiry time can now be
+ configured with $wgObjectCacheSessionExpiry.
+* Added a Redis client for object caching.
+* Implemented mw.user.getGroups for getting and caching user groups.
+* (bug 37830) Added $wgRequirePasswordforEmailChange to control whether password
+ confirmation is required for changing an email address or not.
+* HTMLForm mutators can now be chained (they return $this)
+* A new message, "api-error-filetype-banned-type", is available for formatting
+ API upload errors due to the file extension blacklist.
+* New hook 'ParserTestGlobals' allows to set globals before running parser tests.
+* Allow importing pages as subpage.
+* Add lang and hreflang attributes to language links on Login page.
+* (bug 22749) Create Special:MostInterwikis.
+* Show change tags when transclude Special:Recentchanges(linked) or Special:Newpages.
+* (bug 23226) Add |class= parameter to image links in order to add class(es) to HTML img tag.
+* (bug 39431) SVG animated status is now shown in long description.
+* (bug 39376) jquery.form upgraded to 3.14.
+* SVG files will now show the actual width in the SVG's specified units
+ in the metadata box.
+* Added ResourceLoader module "jquery.jStorage" (v0.3.0, http://jStorage.info/).
+* (bug 39273) Added AJAX support for "Show changes" (diff) in LivePreview.
+* Added ResourceLoader module "jquery.badge".
+* mw.util.$content now points to the overall content area in the skin rather than just
+ page text content area. If you need the old behaviour please use $( '#mw-content-text').
+* jsMessage has been replaced with a floating bubble notification system complete
+ with auto-hide, multi-message support, and message replacement tags.
+* jquery.messageBox which appears to be unused by both core and extensions has
+ been removed.
+* (bug 34939) Made link parsing insensitive ([HttP://]).
+* (bug 40072) Add CSS classes to items in output of ChangesList pages.
+* Added $wgCopyUploadProxy global to define which proxy to use for copy
+ uploads.
+* (bug 40448) mediawiki.legacy.mwsuggest has been replaced with a new module,
+ mediawiki.searchSuggest, based on SimpleSeach from Extension:Vector.
+
+=== Known issues in 1.20.0 ===
+These are issues that we're targeting to be fixed in a later release
+in the 1.20 series. Issues may be added or removed from this list as
+we see fit. For now, it is comprised of those bugs on the 1.20.0
+milestone in Bugzilla.
+
+* (bug 35894): Reports of secret key generation "hanging" on windows
+ This is probably a bug that has been fixed in PHP. If you run
+ into this, try upgrading your PHP.
+* (bug 38334): PHP Notice: Undefined index: href in /www/w/skins/Vector.php on line 416
+ We think this is a problem in some extension. If you see this,
+ try disabling your extensions and check out the logging patch on
+ this bug. Or try this patch:
+ <https://gerrit.wikimedia.org/r/#/c/27937/1/skins/Vector.php>
+* (bug 39268): [Regression] Toolbar inserts in main textarea only (instead of the focussed textarea)
+ This should only be an issue if you are using the ProofreadPage
+ extension.
+* (bug 40641): Clicking "others" in Special:Version asks to download a file
+ If you encounter this, you can tell your webserver to serve the
+ CREDITS file with text/plain MIME type to fix it.
+
+=== Bug fixes in 1.20 ===
+* (bug 40939): [Regression] InfoAction: Call to a member function getUserText() on a non-object
+* (bug 40780): searchsuggest-containing line ("containing...") doesn't include the entered text
+* (bug 37714): [Regression] Incomplete log entries
+* (bug 27202): API: Add timestamp sort to list=allimages
+* (bug 30245) Use the correct way to construct a log page title.
+* (bug 34237) Regenerate an empty user_token and save to the database
+ when we try to set the user's cookies for login.
+* (bug 32210) New edit emails for watched pages always provide a link to the
+ edit which triggered the mail.
+* (bug 12021) Added user talk link on Special:Listusers.
+* (bug 34445) section edit and TOC hide/show links are excluded from selection and
+ copy/paste on supporting browsers.
+* (bug 34428) Fixed incorrect hash mismatch errors in the DiffHistoryBlob
+ history compression method.
+* (bug 34702) Localised parentheses are now used in more special pages.
+* (bug 34723) When editing a script page on a RTL wiki the textbox should be LTR.
+* (bug 34762) Calling close() on a DatabaseBase object now clears the connection.
+* (bug 34863) Show deletion log extract on non-existent file pages if applicable.
+* (bug 28019) Let ?preloadtitle=foo be passed on to target of
+ Special:MyPage and Special:MyTalk.
+* (bug 34929) Show the correct diff when a section edit is rejected by the spam
+ filter.
+* (bug 15816) Add a switch for SETting the search_path (Postgres).
+* (bug 34521) Returning to the previous page after logging in loses any array-
+ valued parameters in the query string.
+* (bug 34735) Updated compressOld.php documentation to mention the different
+ usages of -s and -n parameters depending on compression type.
+* (bug 13896) Rendering of devanagari numbers in automatic '#' number lists.
+* (bug 33689) Upgrade to 1.19 on Postgres fails due to incomplete query when.
+ trying to defer foreign key for externallinks.
+* (bug 32748) Printer friendly version of article decode Unicode chars as a
+ pretty IRI in footer.
+* Removed white border around thumbnails in galleries.
+* (bug 31236) "Next" and "Previous" buttons are shown incorrectly in
+ an RTL environment.
+* (bug 35749) Updated maintenance/checkSyntax.php to use Git instead of
+ Subversion when invoked with the --modified option.
+* (bug 35069) On history pages, the " . . " separator after the number of
+ characters changed in a revision is now suppressed if no text would follow.
+* (bug 18704) Add a unique CSS class or ID to the tagfilter table row at RecentChanges
+* (bug 33564) transwiki import sometimes result in invalid title.
+* (bug 35572) Blocks appear to succeed even if query fails due to wrong DB structure
+* (bug 31757) Add a word-separator between help-messages in HTMLForm
+* (bug 30410) Removed deprecated $wgFilterCallback and the 'filtered' API error.
+* (bug 32604) Some messages needs escaping of wikitext inside username.
+* (bug 36537) Rename wfArrayToCGI to wfArrayToCgi for consistency with wfCgiToArray.
+* (bug 25946) The message on the top of Special:RecentChanges is now displayed.
+ in user language instead of content language.
+* (bug 35264) Wrong type used for <ns> in export.xsd
+* (bug 24985) Use $wgTmpDirectory as the default temp directory so that people
+ who don't have access to /tmp can specify an alternative.
+* (bug 27283) SqlBagOStuff breaks PostgreSQL transactions.
+* (bug 35727) mw.Api ajax() should put token parameter last.
+* (bug 37708) mw.Uri.clone() should make a deep copy.
+* (bug 38024) ResourceLoader should not create empty stylesheets for modules
+ that don't have stylesheets.
+* (bug 36812) Special:ActiveUsers "Hide bots" should hide users from any group
+ having the "bot" user right, instead of just the default "bot" user group.
+* (bug 35082) mw.util.addPortletLink incorrectly adds link to mutiple <ul> tags.
+* (bug 36991) jquery.tablesorter should extract date sort format from date
+ string instead of global config. Dates like "April 1 2012" and "1 April 2012"
+ now sort correctly regardless of the content language's DefaultDateFormat.
+* (bug 31895) mw.loader mode now correct when triggered from a $.fn.ready
+ handler that is bound before mediawiki.js's handler (e.g. browser-userscripts
+ like greasemonkey).
+* (bug 38152) jquery.tablesorter: Use .data() instead of .attr(), so that live
+ values are used instead of just the fixed values from when the tablesorter
+ was initialized.
+* (bug 38093) Gender of changed user groups missing in Special:Log/rights
+* (bug 35893) Special:Block needs to load mediawiki.special.block.js.
+* (bug 37331) ResourceLoader modules sometimes execute twice in Firefox
+* (bug 31644) GlobalUsage, CentralAuth and AbuseLog extensions should not use
+ insecure links to foreign wikis in the WikiMap.
+* (bug 36073) Avoid duplicate element IDs on File pages.
+* (bug 25095) Special:Categories should also include the first relevant item
+ when "from" is filled.
+* (bug 35526) jquery.tablesorter now uses a stable sort.
+* (bug 38953) --memory-limit switch not working for runJobs.php.
+* (bug 33037) Make subpage of Special:newfiles control how many files
+ are returned, like in previous versions.
+* (bug 36524) "Show" options on Special:RecentChanges and Special:RecentChangesLinked
+ are now remembered between successive clicks.
+* (bug 26069) Page title is no longer "Error" for all error pages.
+* (bug 39297) Show warning if thumbnail of animated image will not be animated.
+* (bug 38249) Parser will throw an exception instead of outputting gibberish if
+ PCRE is compiled without support for unicode properties.
+* (bug 30390) Suggested file name on Special:Upload should not contain
+ illegal characters.
+* EXIF below sea level GPS altitude data is now shown correctly.
+* (bug 39284) jquery.tablesorter should not consider "."" or "?"" to be a currency.
+* (bug 39273) "Show changes" should not be incorrectly displayed in the Live Preview state.
+* Made body-content lang attribute honor the variant language when it is set.
+* (bug 36761) "Mark pages as visited" now submits previously established filter options.
+* (bug 39635) PostgreSQL LOCK IN SHARE MODE option is a syntax error.
+* (bug 36329) Accesskey tooltips for Firefox 14 on Mac should use "ctrl-option-" prefix.
+* (bug 32552) Drop unused database field cat_hidden from table category.
+* (bug 40214) Category pages no longer use deprecated "width" HTML attribute.
+* (bug 39941) Add missing stylesheets to the installer pages
+* In HTML5 mode, allow new input element types values (such as color, range..)
+* (bug 36151) mw.Title: Don't limit extension in title parsing.
+* (bug 38158) jquery.byteLimit sometimes causes an unexpected 0 maxLength being enforced.
+* (bug 38163) jquery.byteLimit incorrectly limits input when using methods other than
+ basic per-char typing.
+* (bug 34495) patrol log now credit the user patrolling (instead of patrolled
+ user).
+* (bug 31676) ResourceLoader should work around IE stylesheet limit.
+* (bug 40498) ResourceLoader should not output an empty "@media print { }" block.
+* (bug 40500) ResourceLoader should not ignore media-type for urls in debug mode.
+* (bug 40660) ResourceLoaderWikiModule should not convert "&nbsp;" to a space
+ for pages from the MediaWiki-namespace.
+* (bug 40329) (bug 40632) Removed CleanupPresentationalAttributes feature.
+
+=== API changes in 1.20 ===
+* (bug 34316) Add ability to retrieve maximum upload size from MediaWiki API.
+* (bug 34313) MediaWiki API intro message about "HTML format" should mention
+ the format parameter.
+* (bug 32384) Allow descending order for list=watchlistraw.
+* (bug 31883) Limit of bkusers of list=blocks and titles of action=query is
+ not documented in API help.
+* (bug 32492) API now allows editing using pageid.
+* (bug 32497) API now allows changing of protection level using pageid.
+* (bug 32498) API now allows comparing pages using pageids.
+* (bug 30975) API import of pages with invalid characters in this wiki leads to Fatal Error.
+* (bug 30488) API now allows listing of backlinks/embeddedin/imageusage per pageid.
+* (bug 34927) Output media_type for list=filearchive.
+* (bug 28814) add properties to output of action=parse.
+* (bug 33224) add variants of content language to meta=siteinfo.
+* (bug 32643) action=purge with forcelinkupdate no longer crashes when ratelimit is reached.
+* The paraminfo module now also contains result properties for most modules.
+* (bug 32348) Allow descending order for list=alllinks.
+* (bug 31777) Upload unknown error ``fileexists-forbidden''.
+* (bug 32382) Allow descending order for list=iwbacklinks.
+* (bug 32381) Allow descending order for list=backlinks, list=embeddedin and list=imageusage.
+* (bug 32383) Allow descending order for list=langbacklinks.
+* API meta=siteinfo can now return the list of known variable IDs.
+* (bug 35980) list=deletedrevs now honors drdir correctly in "all" mode (mode #3).
+* (bug 29290) API avoids mangling fields in continuation parameters
+* (bug 36987) API avoids mangling fields in continuation parameters
+* (bug 30836) siteinfo prop=specialpagealiases will no longer return nonexistent special pages
+* (bug 38190) Add "required" flag to some token params for hint in api docs.
+* (bug 27567) Add file repo support to prop=duplicatefiles.
+* (bug 27610) Add archivename for non-latest image version to list=filearchive
+* (bug 38231) Add xml parse tree to action=parse.
+* Watchlist notification timestamp may be queried by page and may be updated via the API.
+* (bug 38904) prop=revisions&rvstart=... no longer blows up when continuing.
+* (bug 39032) ApiQuery generates help in constructor.
+* (bug 11142) Improve file extension blacklist error reporting in API upload.
+* (bug 39665) Cache AllowedGenerator array so it doesn't autoload all query classes
+ on every request.
+
+=== Languages updated in 1.20 ===
+
+MediaWiki supports over 350 languages. Many localisations are updated
+regularly. Below only new and removed languages are listed, as well as
+changes to languages because of Bugzilla reports.
+
+* Emilian (egl) added.
+* Tornedalen Finnish (fit) added.
+* Mizo (lus) added.
+* Santali (sat) added.
+* (bug 34192) Namespace gender aliases for Albanian languages (sq & aln).
+* (bug 35541) Namespace gender aliases for Croatian (hr).
+* (bug 36012) Space in $separatorTransformTable should be non-breaking in
+ Portuguese, Esperanto and Udmurt.
+* Turoyo (tru) added.
+* Cyrillic-Latin language converter added for Uzbek (uz).
+
+=== Other changes in 1.20 ===
+* The user_token field is now left empty until a user attempts to login and
+ cookies need to be set. It is also now possible to reset every user's
+ user_token simply by clearing the values in the user_token column.
+* Removed ./tests/qunit/index.html from core. It wasn't actively maintained and
+ has been made obsolete when [[Special:JavaScriptTest/qunit]] was introduced,
+ which actually uses ResourceLoader, LocalSettings and the Skin.
+* Removed $wgDBtransactions global. This was only checked in one class
+ and only applies to MyISAM or similar DBs. Those should only be used
+ for archived sites anyway. We can't get edit conflicts on such sites,
+ so the WikiPage code wasn't useful there either.
+* Deprecated mw.user.name in favour of mw.user.getName.
+* Deprecated mw.user.anonymous in favour of mw.user.isAnon.
+* Deprecated DatabaseBase functions newFromParams(), newFromType(), set(),
+ quote_ident(), and escapeLike() were removed.
+* Use of __DIR__ instead of dirname( __FILE__ ).
+* OutputPage::wrapWikiMsg() no longer supports the 'options' parameter. It was
+ not used and complicated migration to Message class.
+* Live preview functionality has been improved and moved into the
+ 'mediawiki.action.edit.preview' module. The old 'mediawiki.legacy.preview' module
+ has been removed.
+* (bug 40448) Removed mediawiki.legacy.mwsuggest module, and removed the
+ following that has become obsolete:
+ - globals $wgEnableMWSuggest and $wgMWSuggestTemplate.
+ - mw.config.values wgMWSuggestTemplate and wgSearchNamespaces.
+ - method SearchEngine::getMWSuggestTemplate().
+
+== Compatibility ==
+
+MediaWiki 1.20 requires PHP 5.3.2. PHP 4 is no longer supported.
+
+MySQL is the recommended DBMS. PostgreSQL or SQLite can also be used, but
+support for them is somewhat less mature. There is experimental support for IBM
+DB2 and Oracle.
+
+The supported versions are:
+
+* MySQL 5.0.2 or later
+* PostgreSQL 8.3 or later
+* SQLite 3.3.7 or later
+* Oracle 9.0.1 or later
+
+== Upgrading ==
+
+1.20 has several database changes since 1.19, and will not work without schema
+updates.
+
+If upgrading from before 1.11, and you are using a wiki as a commons
+repository, make sure that it is updated as well. Otherwise, errors may arise
+due to database schema changes.
+
+If upgrading from before 1.7, you may want to run refreshLinks.php to ensure
+new database fields are filled with data.
+
+If you are upgrading from MediaWiki 1.4.x or earlier, some major database
+changes are made, and there is a slightly higher chance that things could
+break. Don't forget to always back up your database before upgrading!
+
+See the file UPGRADE for more detailed upgrade instructions.
+
+For notes on 1.19.x and older releases, see HISTORY.
+
+== Online documentation ==
+
+Documentation for both end-users and site administrators is available on
+MediaWiki.org, and is covered under the GNU Free Documentation License (except
+for pages that explicitly state that their contents are in the public domain):
+
+ https://www.mediawiki.org/wiki/Documentation
+
+== Mailing list ==
+
+A mailing list is available for MediaWiki user support and discussion:
+
+ https://lists.wikimedia.org/mailman/listinfo/mediawiki-l
+
+A low-traffic announcements-only list is also available:
+
+ https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce
+
+It's highly recommended that you sign up for one of these lists if you're
+going to run a public MediaWiki, so you can be notified of security fixes.
+
+== IRC help ==
+
+There's usually someone online in #mediawiki on irc.freenode.net.
diff --git a/UPGRADE b/UPGRADE
index 9e7d0353..cdaf4f91 100644
--- a/UPGRADE
+++ b/UPGRADE
@@ -76,7 +76,7 @@ behaviour of MediaWiki.
Extensions usually need to be upgraded at the same time as the MediaWiki core.
-In MediaWiki 1.14 some extensions are migrated into the core. Please see the
+In MediaWiki 1.14 some extensions were migrated into the core. Please see the
HISTORY section "Migrated extensions" and disable these extensions in your
LocalSettings.php
diff --git a/api.php b/api.php
index a5a25799..7fae3731 100644
--- a/api.php
+++ b/api.php
@@ -1,9 +1,16 @@
<?php
-
/**
- * API for MediaWiki 1.8+
+ * This file is the entry point for all API queries.
+ *
+ * It begins by checking whether the API is enabled on this wiki; if not,
+ * it informs the user that s/he should set $wgEnableAPI to true and exits.
+ * Otherwise, it constructs a new ApiMain using the parameter passed to it
+ * as an argument in the URL ('?action=') and with write-enabled set to the
+ * value of $wgEnableWriteAPI as specified in LocalSettings.php.
+ * It then invokes "execute()" on the ApiMain object instance, which
+ * produces output in the format sepecified in the URL.
*
- * Copyright (C) 2006 Yuri Astrakhan <Firstname><Lastname>@gmail.com
+ * Copyright © 2006 Yuri Astrakhan <Firstname><Lastname>@gmail.com
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -23,31 +30,21 @@
* @file
*/
-/**
- * This file is the entry point for all API queries. It begins by checking
- * whether the API is enabled on this wiki; if not, it informs the user that
- * s/he should set $wgEnableAPI to true and exits. Otherwise, it constructs
- * a new ApiMain using the parameter passed to it as an argument in the URL
- * ('?action=') and with write-enabled set to the value of $wgEnableWriteAPI
- * as specified in LocalSettings.php. It then invokes "execute()" on the
- * ApiMain object instance, which produces output in the format sepecified
- * in the URL.
- */
-
// So extensions (and other code) can check whether they're running in API mode
define( 'MW_API', true );
// Bail if PHP is too low
-if ( !function_exists( 'version_compare' ) || version_compare( phpversion(), '5.2.3' ) < 0 ) {
+if ( !function_exists( 'version_compare' ) || version_compare( phpversion(), '5.3.2' ) < 0 ) {
+ // We need to use dirname( __FILE__ ) here cause __DIR__ is PHP5.3+
require( dirname( __FILE__ ) . '/includes/PHPVersionError.php' );
wfPHPVersionError( 'api.php' );
}
// Initialise common code.
if ( isset( $_SERVER['MW_COMPILED'] ) ) {
- require ( 'phase3/includes/WebStart.php' );
+ require ( 'core/includes/WebStart.php' );
} else {
- require ( dirname( __FILE__ ) . '/includes/WebStart.php' );
+ require ( __DIR__ . '/includes/WebStart.php' );
}
wfProfileIn( 'api.php' );
@@ -66,43 +63,6 @@ if ( !$wgEnableAPI ) {
die(1);
}
-// Selectively allow cross-site AJAX
-
-/**
- * Helper function to convert wildcard string into a regex
- * '*' => '.*?'
- * '?' => '.'
- *
- * @param $search string
- * @return string
- */
-function convertWildcard( $search ) {
- $search = preg_quote( $search, '/' );
- $search = str_replace(
- array( '\*', '\?' ),
- array( '.*?', '.' ),
- $search
- );
- return "/$search/";
-}
-
-if ( $wgCrossSiteAJAXdomains && isset( $_SERVER['HTTP_ORIGIN'] ) ) {
- $exceptions = array_map( 'convertWildcard', $wgCrossSiteAJAXdomainExceptions );
- $regexes = array_map( 'convertWildcard', $wgCrossSiteAJAXdomains );
- foreach ( $regexes as $regex ) {
- if ( preg_match( $regex, $_SERVER['HTTP_ORIGIN'] ) ) {
- foreach ( $exceptions as $exc ) { // Check against exceptions
- if ( preg_match( $exc, $_SERVER['HTTP_ORIGIN'] ) ) {
- break 2;
- }
- }
- header( "Access-Control-Allow-Origin: {$_SERVER['HTTP_ORIGIN']}" );
- header( 'Access-Control-Allow-Credentials: true' );
- break;
- }
- }
-}
-
// Set a dummy $wgTitle, because $wgTitle == null breaks various things
// In a perfect world this wouldn't be necessary
$wgTitle = Title::makeTitle( NS_MAIN, 'API' );
@@ -111,7 +71,7 @@ $wgTitle = Title::makeTitle( NS_MAIN, 'API' );
* is some form of an ApiMain, possibly even one that produces an error message,
* but we don't care here, as that is handled by the ctor.
*/
-$processor = new ApiMain( $wgRequest, $wgEnableWriteAPI );
+$processor = new ApiMain( RequestContext::getMain(), $wgEnableWriteAPI );
// Process data & print results
$processor->execute();
diff --git a/api.php5 b/api.php5
index 504098d3..bb515c5c 100644
--- a/api.php5
+++ b/api.php5
@@ -1 +1,24 @@
-<?php require 'api.php'; \ No newline at end of file
+<?php
+/**
+ * Version of api.php to used in web server requiring .php5 extension
+ * to execute scripts with PHP5 egine.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ * http://www.gnu.org/copyleft/gpl.html
+ *
+ * @file
+ */
+
+require 'api.php';
diff --git a/docs/code-coverage/README b/docs/code-coverage/README
index 7bc55ce2..76ce9bdc 100644
--- a/docs/code-coverage/README
+++ b/docs/code-coverage/README
@@ -1,2 +1,2 @@
This directory is for the auto-generated phpunit code coverage.
-Run 'make coverage' in the maintenance/tests/phpunit subdirectory to build.
+Run 'make coverage' in the tests/phpunit subdirectory to build.
diff --git a/docs/database.txt b/docs/database.txt
index 3985b70e..c0a2412c 100644
--- a/docs/database.txt
+++ b/docs/database.txt
@@ -8,7 +8,7 @@ By Tim Starling, January 2006.
For information about the MediaWiki database layout, such as a
description of the tables and their contents, please see:
http://www.mediawiki.org/wiki/Manual:Database_layout
- http://svn.wikimedia.org/viewvc/mediawiki/trunk/phase3/maintenance/tables.sql?view=markup
+ https://gerrit.wikimedia.org/r/gitweb?p=mediawiki/core.git;a=blob_plain;f=maintenance/tables.sql;hb=HEAD
------------------------------------------------------------------------
@@ -153,9 +153,9 @@ enclose small groups of queries in their own transaction. Use the
following syntax:
$dbw = wfGetDB( DB_MASTER );
-$dbw->begin();
+$dbw->begin( __METHOD__ );
/* Do queries */
-$dbw->commit();
+$dbw->commit( __METHOD__ );
Use of locking reads (e.g. the FOR UPDATE clause) is not advised. They
are poorly implemented in InnoDB and will cause regular deadlock errors.
diff --git a/docs/distributors.txt b/docs/distributors.txt
index e9f151cf..4a654315 100644
--- a/docs/distributors.txt
+++ b/docs/distributors.txt
@@ -87,9 +87,9 @@ which the user can edit by hand thereafter. It's just a plain old PHP file,
and can contain any PHP statements. It usually sets global variables that are
used for configuration, and includes files used by any extensions.
-Distributors cannot easily add extra statements to the autogenerated
-LocalSettings.php at the present time -- although hacking mw-config/index.php
-would work. It would be nice if this situation could be improved.
+Distributors can easily add extra statements to the autogenerated
+LocalSettings.php by changing mw-config/overrides.php (see that file for details
+and examples).
There's a new maintenance/install.php script which could be used for performing
an install through the command line.
@@ -106,6 +106,7 @@ intelligently:
mail().
== Updates ==
+
The correct way for updating a wiki is to update the files and then run from
command line the maintenance/update.php script (with appropriate parameters if
files were moved). It will perform all the needed steps to update the database
diff --git a/docs/doxygen_first_page.php b/docs/doxygen_first_page.php
index 11db1f58..9949d133 100644
--- a/docs/doxygen_first_page.php
+++ b/docs/doxygen_first_page.php
@@ -13,7 +13,7 @@ die("Not a valid entry point\n");
* Welcome on MediaWiki autogenerated documentation system.
*
* If you are looking to use, install or configure your wiki, you probably
- * want to look at the main site: http://www.mediawiki.org/
+ * want to look at the main site: https://www.mediawiki.org/
*
* @note this page is generated from docs/doxygen_first_page.php
*/
diff --git a/docs/export-0.1.xsd b/docs/export-0.1.xsd
index 0b3eb179..9ff48f03 100644
--- a/docs/export-0.1.xsd
+++ b/docs/export-0.1.xsd
@@ -2,57 +2,57 @@
<!--
This is an XML Schema description of the format
output by MediaWiki's Special:Export system.
-
+
The canonical URL to the schema document is:
http://www.mediawiki.org/xml/export-0.1.xsd
-
+
Use the namespace:
http://www.mediawiki.org/xml/export-0.1/
-->
<schema xmlns="http://www.w3.org/2001/XMLSchema"
- xmlns:mw="http://www.mediawiki.org/xml/export-0.1/"
- targetNamespace="http://www.mediawiki.org/xml/export-0.1/"
- elementFormDefault="qualified">
+ xmlns:mw="http://www.mediawiki.org/xml/export-0.1/"
+ targetNamespace="http://www.mediawiki.org/xml/export-0.1/"
+ elementFormDefault="qualified">
<annotation>
<documentation xml:lang="en">
MediaWiki's page export format
</documentation>
</annotation>
-
+
<!-- Need this to reference xml:lang -->
<import namespace="http://www.w3.org/XML/1998/namespace"
- schemaLocation="http://www.w3.org/2001/xml.xsd"/>
-
+ schemaLocation="http://www.w3.org/2001/xml.xsd"/>
+
<!-- Our root element -->
<element name="mediawiki" type="mw:MediaWikiType"/>
-
+
<complexType name="MediaWikiType">
<sequence>
<element name="page" type="mw:PageType"
- minOccurs="0" maxOccurs="unbounded"/>
+ minOccurs="0" maxOccurs="unbounded"/>
</sequence>
<attribute name="version" type="string" use="required"/>
<attribute ref="xml:lang" use="required"/>
</complexType>
-
+
<complexType name="PageType">
<sequence>
<!-- Title in text form. (Using spaces, not underscores; with namespace ) -->
<element name="title" type="string"/>
-
+
<!-- optional page ID number -->
<element name="id" type="positiveInteger" minOccurs="0"/>
-
+
<!-- comma-separated list of string tokens, if present -->
<element name="restrictions" type="string" minOccurs="0"/>
-
+
<!-- Zero or more sets of revision data -->
<element name="revision" type="mw:RevisionType"
- minOccurs="0" maxOccurs="unbounded"/>
+ minOccurs="0" maxOccurs="unbounded"/>
</sequence>
</complexType>
-
+
<complexType name="RevisionType">
<sequence>
<element name="id" type="positiveInteger" minOccurs="0"/>
@@ -63,12 +63,12 @@
<element name="text" type="string"/>
</sequence>
</complexType>
-
+
<complexType name="ContributorType">
<sequence>
<element name="username" type="string" minOccurs="0"/>
<element name="id" type="positiveInteger" minOccurs="0" />
-
+
<element name="ip" type="string" minOccurs="0"/>
</sequence>
</complexType>
diff --git a/docs/export-0.2.xsd b/docs/export-0.2.xsd
index 8acbf543..55b05f8d 100644
--- a/docs/export-0.2.xsd
+++ b/docs/export-0.2.xsd
@@ -2,54 +2,54 @@
<!--
This is an XML Schema description of the format
output by MediaWiki's Special:Export system.
-
+
Version 0.2 adds optional basic file upload info support,
which is used by our OAI export/import submodule.
-
+
The canonical URL to the schema document is:
http://www.mediawiki.org/xml/export-0.2.xsd
-
+
Use the namespace:
http://www.mediawiki.org/xml/export-0.2/
-->
<schema xmlns="http://www.w3.org/2001/XMLSchema"
- xmlns:mw="http://www.mediawiki.org/xml/export-0.2/"
- targetNamespace="http://www.mediawiki.org/xml/export-0.2/"
- elementFormDefault="qualified">
+ xmlns:mw="http://www.mediawiki.org/xml/export-0.2/"
+ targetNamespace="http://www.mediawiki.org/xml/export-0.2/"
+ elementFormDefault="qualified">
<annotation>
<documentation xml:lang="en">
MediaWiki's page export format
</documentation>
</annotation>
-
+
<!-- Need this to reference xml:lang -->
<import namespace="http://www.w3.org/XML/1998/namespace"
- schemaLocation="http://www.w3.org/2001/xml.xsd"/>
-
+ schemaLocation="http://www.w3.org/2001/xml.xsd"/>
+
<!-- Our root element -->
<element name="mediawiki" type="mw:MediaWikiType"/>
-
+
<complexType name="MediaWikiType">
<sequence>
<element name="page" type="mw:PageType"
- minOccurs="0" maxOccurs="unbounded"/>
+ minOccurs="0" maxOccurs="unbounded"/>
</sequence>
<attribute name="version" type="string" use="required"/>
<attribute ref="xml:lang" use="required"/>
</complexType>
-
+
<complexType name="PageType">
<sequence>
<!-- Title in text form. (Using spaces, not underscores; with namespace ) -->
<element name="title" type="string"/>
-
+
<!-- optional page ID number -->
<element name="id" type="positiveInteger" minOccurs="0"/>
-
+
<!-- comma-separated list of string tokens, if present -->
<element name="restrictions" type="string" minOccurs="0"/>
-
+
<!-- Zero or more sets of revision or upload data -->
<choice minOccurs="0" maxOccurs="unbounded">
<element name="revision" type="mw:RevisionType" />
@@ -57,7 +57,7 @@
</choice>
</sequence>
</complexType>
-
+
<complexType name="RevisionType">
<sequence>
<element name="id" type="positiveInteger" minOccurs="0"/>
@@ -68,33 +68,33 @@
<element name="text" type="string"/>
</sequence>
</complexType>
-
+
<complexType name="ContributorType">
<sequence>
<element name="username" type="string" minOccurs="0"/>
<element name="id" type="positiveInteger" minOccurs="0" />
-
+
<element name="ip" type="string" minOccurs="0"/>
</sequence>
</complexType>
-
+
<complexType name="UploadType">
<sequence>
<!-- Revision-style data... -->
<element name="timestamp" type="dateTime"/>
<element name="contributor" type="mw:ContributorType"/>
<element name="comment" type="string" minOccurs="0"/>
-
+
<!-- Filename. (Using underscores, not spaces. No 'Image:' namespace marker.) -->
<element name="filename" type="string"/>
-
+
<!-- URI at which this resource can be obtained -->
<element name="src" type="anyURI"/>
-
+
<element name="size" type="positiveInteger" />
-
+
<!-- TODO: add other metadata fields -->
</sequence>
</complexType>
-
+
</schema>
diff --git a/docs/export-0.3.xsd b/docs/export-0.3.xsd
index 1e0b7c88..ea2b816e 100644
--- a/docs/export-0.3.xsd
+++ b/docs/export-0.3.xsd
@@ -2,48 +2,48 @@
<!--
This is an XML Schema description of the format
output by MediaWiki's Special:Export system.
-
+
Version 0.2 adds optional basic file upload info support,
which is used by our OAI export/import submodule.
-
+
Version 0.3 adds some site configuration information such
as a list of defined namespaces.
-
+
The canonical URL to the schema document is:
http://www.mediawiki.org/xml/export-0.3.xsd
-
+
Use the namespace:
http://www.mediawiki.org/xml/export-0.3/
-->
<schema xmlns="http://www.w3.org/2001/XMLSchema"
- xmlns:mw="http://www.mediawiki.org/xml/export-0.3/"
- targetNamespace="http://www.mediawiki.org/xml/export-0.3/"
- elementFormDefault="qualified">
+ xmlns:mw="http://www.mediawiki.org/xml/export-0.3/"
+ targetNamespace="http://www.mediawiki.org/xml/export-0.3/"
+ elementFormDefault="qualified">
<annotation>
<documentation xml:lang="en">
MediaWiki's page export format
</documentation>
</annotation>
-
+
<!-- Need this to reference xml:lang -->
<import namespace="http://www.w3.org/XML/1998/namespace"
- schemaLocation="http://www.w3.org/2001/xml.xsd"/>
-
+ schemaLocation="http://www.w3.org/2001/xml.xsd"/>
+
<!-- Our root element -->
<element name="mediawiki" type="mw:MediaWikiType"/>
-
+
<complexType name="MediaWikiType">
<sequence>
<element name="siteinfo" type="mw:SiteInfoType"
- minOccurs="0" maxOccurs="1"/>
+ minOccurs="0" maxOccurs="1"/>
<element name="page" type="mw:PageType"
- minOccurs="0" maxOccurs="unbounded"/>
+ minOccurs="0" maxOccurs="unbounded"/>
</sequence>
<attribute name="version" type="string" use="required"/>
<attribute ref="xml:lang" use="required"/>
</complexType>
-
+
<complexType name="SiteInfoType">
<sequence>
<element name="sitename" type="string" minOccurs="0" />
@@ -53,30 +53,30 @@
<element name="namespaces" type="mw:NamespacesType" minOccurs="0" />
</sequence>
</complexType>
-
+
<simpleType name="CaseType">
<restriction base="NMTOKEN">
<!-- Cannot have two titles differing only by case of first letter. -->
<!-- Default behavior through 1.5, $wgCapitalLinks = true -->
<enumeration value="first-letter" />
-
+
<!-- Complete title is case-sensitive -->
<!-- Behavior when $wgCapitalLinks = false -->
<enumeration value="case-sensitive" />
-
+
<!-- Cannot have two titles differing only by case. -->
<!-- Not yet implemented as of MediaWiki 1.5 -->
<enumeration value="case-insensitive" />
</restriction>
</simpleType>
-
+
<complexType name="NamespacesType">
<sequence>
<element name="namespace" type="mw:NamespaceType"
- minOccurs="0" maxOccurs="unbounded" />
+ minOccurs="0" maxOccurs="unbounded" />
</sequence>
</complexType>
-
+
<complexType name="NamespaceType">
<simpleContent>
<extension base="string">
@@ -84,18 +84,18 @@
</extension>
</simpleContent>
</complexType>
-
+
<complexType name="PageType">
<sequence>
<!-- Title in text form. (Using spaces, not underscores; with namespace ) -->
<element name="title" type="string"/>
-
+
<!-- optional page ID number -->
<element name="id" type="positiveInteger" minOccurs="0"/>
-
+
<!-- comma-separated list of string tokens, if present -->
<element name="restrictions" type="string" minOccurs="0"/>
-
+
<!-- Zero or more sets of revision or upload data -->
<choice minOccurs="0" maxOccurs="unbounded">
<element name="revision" type="mw:RevisionType" />
@@ -103,7 +103,7 @@
</choice>
</sequence>
</complexType>
-
+
<complexType name="RevisionType">
<sequence>
<element name="id" type="positiveInteger" minOccurs="0"/>
@@ -114,7 +114,7 @@
<element name="text" type="mw:TextType" />
</sequence>
</complexType>
-
+
<complexType name="TextType">
<simpleContent>
<extension base="string">
@@ -122,33 +122,33 @@
</extension>
</simpleContent>
</complexType>
-
+
<complexType name="ContributorType">
<sequence>
<element name="username" type="string" minOccurs="0"/>
<element name="id" type="positiveInteger" minOccurs="0" />
-
+
<element name="ip" type="string" minOccurs="0"/>
</sequence>
</complexType>
-
+
<complexType name="UploadType">
<sequence>
<!-- Revision-style data... -->
<element name="timestamp" type="dateTime"/>
<element name="contributor" type="mw:ContributorType"/>
<element name="comment" type="string" minOccurs="0"/>
-
+
<!-- Filename. (Using underscores, not spaces. No 'Image:' namespace marker.) -->
<element name="filename" type="string"/>
-
+
<!-- URI at which this resource can be obtained -->
<element name="src" type="anyURI"/>
-
+
<element name="size" type="positiveInteger" />
-
+
<!-- TODO: add other metadata fields -->
</sequence>
</complexType>
-
+
</schema>
diff --git a/docs/export-0.4.xsd b/docs/export-0.4.xsd
index 3e7f2eab..b3ea3bf8 100644
--- a/docs/export-0.4.xsd
+++ b/docs/export-0.4.xsd
@@ -2,52 +2,52 @@
<!--
This is an XML Schema description of the format
output by MediaWiki's Special:Export system.
-
+
Version 0.2 adds optional basic file upload info support,
which is used by our OAI export/import submodule.
-
+
Version 0.3 adds some site configuration information such
as a list of defined namespaces.
-
+
Version 0.4 adds per-revision delete flags, log exports,
discussion threading data, a per-page redirect flag, and
per-namespace capitalization.
The canonical URL to the schema document is:
http://www.mediawiki.org/xml/export-0.4.xsd
-
+
Use the namespace:
http://www.mediawiki.org/xml/export-0.4/
-->
<schema xmlns="http://www.w3.org/2001/XMLSchema"
- xmlns:mw="http://www.mediawiki.org/xml/export-0.4/"
- targetNamespace="http://www.mediawiki.org/xml/export-0.4/"
- elementFormDefault="qualified">
+ xmlns:mw="http://www.mediawiki.org/xml/export-0.4/"
+ targetNamespace="http://www.mediawiki.org/xml/export-0.4/"
+ elementFormDefault="qualified">
<annotation>
<documentation xml:lang="en">
MediaWiki's page export format
</documentation>
</annotation>
-
+
<!-- Need this to reference xml:lang -->
<import namespace="http://www.w3.org/XML/1998/namespace"
- schemaLocation="http://www.w3.org/2001/xml.xsd"/>
-
+ schemaLocation="http://www.w3.org/2001/xml.xsd"/>
+
<!-- Our root element -->
<element name="mediawiki" type="mw:MediaWikiType"/>
-
+
<complexType name="MediaWikiType">
<sequence>
<element name="siteinfo" type="mw:SiteInfoType"
- minOccurs="0" maxOccurs="1"/>
+ minOccurs="0" maxOccurs="1"/>
<element name="page" type="mw:PageType"
- minOccurs="0" maxOccurs="unbounded"/>
+ minOccurs="0" maxOccurs="unbounded"/>
</sequence>
<attribute name="version" type="string" use="required"/>
<attribute ref="xml:lang" use="required"/>
</complexType>
-
+
<complexType name="SiteInfoType">
<sequence>
<element name="sitename" type="string" minOccurs="0" />
@@ -57,23 +57,23 @@
<element name="namespaces" type="mw:NamespacesType" minOccurs="0" />
</sequence>
</complexType>
-
+
<simpleType name="CaseType">
<restriction base="NMTOKEN">
<!-- Cannot have two titles differing only by case of first letter. -->
<!-- Default behavior through 1.5, $wgCapitalLinks = true -->
<enumeration value="first-letter" />
-
+
<!-- Complete title is case-sensitive -->
<!-- Behavior when $wgCapitalLinks = false -->
<enumeration value="case-sensitive" />
-
+
<!-- Cannot have non-case senstitive titles eg [[FOO]] == [[Foo]] -->
<!-- Not yet implemented as of MediaWiki 1.18 -->
<enumeration value="case-insensitive" />
</restriction>
</simpleType>
-
+
<simpleType name="DeletedFlagType">
<restriction base="NMTOKEN">
<enumeration value="deleted"/>
@@ -83,10 +83,10 @@
<complexType name="NamespacesType">
<sequence>
<element name="namespace" type="mw:NamespaceType"
- minOccurs="0" maxOccurs="unbounded" />
+ minOccurs="0" maxOccurs="unbounded" />
</sequence>
</complexType>
-
+
<complexType name="NamespaceType">
<simpleContent>
<extension base="string">
@@ -95,33 +95,33 @@
</extension>
</simpleContent>
</complexType>
-
+
<complexType name="PageType">
<sequence>
<!-- Title in text form. (Using spaces, not underscores; with namespace ) -->
<element name="title" type="string"/>
-
+
<!-- optional page ID number -->
<element name="id" type="positiveInteger" minOccurs="0"/>
-
+
<!-- flag if the current revision is a redirect -->
- <element name="redirect" minOccurs="0"/>
+ <element name="redirect" minOccurs="0"/>
<!-- comma-separated list of string tokens, if present -->
<element name="restrictions" type="string" minOccurs="0"/>
-
+
<!-- Zero or more sets of revision or upload data -->
<choice minOccurs="0" maxOccurs="unbounded">
<element name="revision" type="mw:RevisionType" />
<element name="upload" type="mw:UploadType" />
<element name="logitem" type="mw:LogItemType" />
</choice>
-
+
<!-- Zero or One sets of discussion threading data -->
<element name="discussionthreadinginfo" minOccurs="0" maxOccurs="1" type="mw:DiscussionThreadingInfo" />
</sequence>
</complexType>
-
+
<complexType name="RevisionType">
<sequence>
<element name="id" type="positiveInteger" minOccurs="0"/>
@@ -144,7 +144,7 @@
<element name="text" type="mw:TextType" />
</sequence>
</complexType>
-
+
<complexType name="CommentType">
<simpleContent>
<extension base="string">
@@ -160,7 +160,7 @@
<extension base="string">
<attribute ref="xml:space" use="optional" default="preserve" />
<!-- This allows deleted=deleted on non-empty elements, but XSD is not omnipotent -->
- <attribute name="deleted" use="optional" type="mw:DeletedFlagType"/>
+ <attribute name="deleted" use="optional" type="mw:DeletedFlagType"/>
<!-- This isn't a good idea; we should be using "ID" instead of "NMTOKEN" -->
<!-- However, "NMTOKEN" is strictest definition that is both compatible with existing -->
<!-- usage ([0-9]+) and with the "ID" type. -->
@@ -168,37 +168,37 @@
</extension>
</simpleContent>
</complexType>
-
+
<complexType name="ContributorType">
<sequence>
<element name="username" type="string" minOccurs="0"/>
<element name="id" type="positiveInteger" minOccurs="0" />
-
+
<element name="ip" type="string" minOccurs="0"/>
</sequence>
<!-- This allows deleted=deleted on non-empty elements, but XSD is not omnipotent -->
<attribute name="deleted" use="optional" type="mw:DeletedFlagType"/>
</complexType>
-
+
<complexType name="UploadType">
<sequence>
<!-- Revision-style data... -->
<element name="timestamp" type="dateTime"/>
<element name="contributor" type="mw:ContributorType"/>
<element name="comment" type="string" minOccurs="0"/>
-
+
<!-- Filename. (Using underscores, not spaces. No 'Image:' namespace marker.) -->
<element name="filename" type="string"/>
-
+
<!-- URI at which this resource can be obtained -->
<element name="src" type="anyURI"/>
-
+
<element name="size" type="positiveInteger" />
-
+
<!-- TODO: add other metadata fields -->
</sequence>
</complexType>
-
+
<!-- Discussion threading data for LiquidThreads -->
<complexType name="DiscussionThreadingInfo">
<sequence>
@@ -212,5 +212,5 @@
<element name="ThreadType" type="string" />
</sequence>
</complexType>
-
+
</schema>
diff --git a/docs/export-0.5.xsd b/docs/export-0.5.xsd
index 469446db..ed6c0029 100644
--- a/docs/export-0.5.xsd
+++ b/docs/export-0.5.xsd
@@ -2,54 +2,54 @@
<!--
This is an XML Schema description of the format
output by MediaWiki's Special:Export system.
-
+
Version 0.2 adds optional basic file upload info support,
which is used by our OAI export/import submodule.
-
+
Version 0.3 adds some site configuration information such
as a list of defined namespaces.
-
+
Version 0.4 adds per-revision delete flags, log exports,
discussion threading data, a per-page redirect flag, and
per-namespace capitalization.
-
+
Version 0.5 adds byte count per revision.
The canonical URL to the schema document is:
http://www.mediawiki.org/xml/export-0.5.xsd
-
+
Use the namespace:
http://www.mediawiki.org/xml/export-0.5/
-->
<schema xmlns="http://www.w3.org/2001/XMLSchema"
- xmlns:mw="http://www.mediawiki.org/xml/export-0.5/"
- targetNamespace="http://www.mediawiki.org/xml/export-0.5/"
- elementFormDefault="qualified">
+ xmlns:mw="http://www.mediawiki.org/xml/export-0.5/"
+ targetNamespace="http://www.mediawiki.org/xml/export-0.5/"
+ elementFormDefault="qualified">
<annotation>
<documentation xml:lang="en">
MediaWiki's page export format
</documentation>
</annotation>
-
+
<!-- Need this to reference xml:lang -->
<import namespace="http://www.w3.org/XML/1998/namespace"
- schemaLocation="http://www.w3.org/2001/xml.xsd"/>
-
+ schemaLocation="http://www.w3.org/2001/xml.xsd"/>
+
<!-- Our root element -->
<element name="mediawiki" type="mw:MediaWikiType"/>
-
+
<complexType name="MediaWikiType">
<sequence>
<element name="siteinfo" type="mw:SiteInfoType"
- minOccurs="0" maxOccurs="1"/>
+ minOccurs="0" maxOccurs="1"/>
<element name="page" type="mw:PageType"
- minOccurs="0" maxOccurs="unbounded"/>
+ minOccurs="0" maxOccurs="unbounded"/>
</sequence>
<attribute name="version" type="string" use="required"/>
<attribute ref="xml:lang" use="required"/>
</complexType>
-
+
<complexType name="SiteInfoType">
<sequence>
<element name="sitename" type="string" minOccurs="0" />
@@ -59,23 +59,23 @@
<element name="namespaces" type="mw:NamespacesType" minOccurs="0" />
</sequence>
</complexType>
-
+
<simpleType name="CaseType">
<restriction base="NMTOKEN">
<!-- Cannot have two titles differing only by case of first letter. -->
<!-- Default behavior through 1.5, $wgCapitalLinks = true -->
<enumeration value="first-letter" />
-
+
<!-- Complete title is case-sensitive -->
<!-- Behavior when $wgCapitalLinks = false -->
<enumeration value="case-sensitive" />
-
+
<!-- Cannot have non-case senstitive titles eg [[FOO]] == [[Foo]] -->
<!-- Not yet implemented as of MediaWiki 1.18 -->
<enumeration value="case-insensitive" />
</restriction>
</simpleType>
-
+
<simpleType name="DeletedFlagType">
<restriction base="NMTOKEN">
<enumeration value="deleted"/>
@@ -85,10 +85,10 @@
<complexType name="NamespacesType">
<sequence>
<element name="namespace" type="mw:NamespaceType"
- minOccurs="0" maxOccurs="unbounded" />
+ minOccurs="0" maxOccurs="unbounded" />
</sequence>
</complexType>
-
+
<complexType name="NamespaceType">
<simpleContent>
<extension base="string">
@@ -97,33 +97,33 @@
</extension>
</simpleContent>
</complexType>
-
+
<complexType name="PageType">
<sequence>
<!-- Title in text form. (Using spaces, not underscores; with namespace ) -->
<element name="title" type="string"/>
-
+
<!-- optional page ID number -->
<element name="id" type="positiveInteger" minOccurs="0"/>
-
+
<!-- flag if the current revision is a redirect -->
- <element name="redirect" minOccurs="0"/>
+ <element name="redirect" minOccurs="0"/>
<!-- comma-separated list of string tokens, if present -->
<element name="restrictions" type="string" minOccurs="0"/>
-
+
<!-- Zero or more sets of revision or upload data -->
<choice minOccurs="0" maxOccurs="unbounded">
<element name="revision" type="mw:RevisionType" />
<element name="upload" type="mw:UploadType" />
<element name="logitem" type="mw:LogItemType" />
</choice>
-
+
<!-- Zero or One sets of discussion threading data -->
<element name="discussionthreadinginfo" minOccurs="0" maxOccurs="1" type="mw:DiscussionThreadingInfo" />
</sequence>
</complexType>
-
+
<complexType name="RevisionType">
<sequence>
<element name="id" type="positiveInteger" minOccurs="0"/>
@@ -146,7 +146,7 @@
<element name="text" type="mw:TextType" />
</sequence>
</complexType>
-
+
<complexType name="CommentType">
<simpleContent>
<extension base="string">
@@ -162,7 +162,7 @@
<extension base="string">
<attribute ref="xml:space" use="optional" default="preserve" />
<!-- This allows deleted=deleted on non-empty elements, but XSD is not omnipotent -->
- <attribute name="deleted" use="optional" type="mw:DeletedFlagType"/>
+ <attribute name="deleted" use="optional" type="mw:DeletedFlagType"/>
<!-- This isn't a good idea; we should be using "ID" instead of "NMTOKEN" -->
<!-- However, "NMTOKEN" is strictest definition that is both compatible with existing -->
<!-- usage ([0-9]+) and with the "ID" type. -->
@@ -171,37 +171,37 @@
</extension>
</simpleContent>
</complexType>
-
+
<complexType name="ContributorType">
<sequence>
<element name="username" type="string" minOccurs="0"/>
<element name="id" type="positiveInteger" minOccurs="0" />
-
+
<element name="ip" type="string" minOccurs="0"/>
</sequence>
<!-- This allows deleted=deleted on non-empty elements, but XSD is not omnipotent -->
<attribute name="deleted" use="optional" type="mw:DeletedFlagType"/>
</complexType>
-
+
<complexType name="UploadType">
<sequence>
<!-- Revision-style data... -->
<element name="timestamp" type="dateTime"/>
<element name="contributor" type="mw:ContributorType"/>
<element name="comment" type="string" minOccurs="0"/>
-
+
<!-- Filename. (Using underscores, not spaces. No 'Image:' namespace marker.) -->
<element name="filename" type="string"/>
-
+
<!-- URI at which this resource can be obtained -->
<element name="src" type="anyURI"/>
-
+
<element name="size" type="positiveInteger" />
-
+
<!-- TODO: add other metadata fields -->
</sequence>
</complexType>
-
+
<!-- Discussion threading data for LiquidThreads -->
<complexType name="DiscussionThreadingInfo">
<sequence>
@@ -215,5 +215,5 @@
<element name="ThreadType" type="string" />
</sequence>
</complexType>
-
+
</schema>
diff --git a/docs/export-0.6.xsd b/docs/export-0.6.xsd
index 55428b56..4668794e 100644
--- a/docs/export-0.6.xsd
+++ b/docs/export-0.6.xsd
@@ -2,57 +2,57 @@
<!--
This is an XML Schema description of the format
output by MediaWiki's Special:Export system.
-
+
Version 0.2 adds optional basic file upload info support,
which is used by our OAI export/import submodule.
-
+
Version 0.3 adds some site configuration information such
as a list of defined namespaces.
-
+
Version 0.4 adds per-revision delete flags, log exports,
discussion threading data, a per-page redirect flag, and
per-namespace capitalization.
Version 0.5 adds byte count per revision.
-
+
Version 0.6 adds a separate namespace tag, and resolves the
- redirect target and adds a separate sha1 tag for each revision.
-
+ redirect target and adds a separate sha1 tag for each revision.
+
The canonical URL to the schema document is:
http://www.mediawiki.org/xml/export-0.6.xsd
-
+
Use the namespace:
http://www.mediawiki.org/xml/export-0.6/
-->
<schema xmlns="http://www.w3.org/2001/XMLSchema"
- xmlns:mw="http://www.mediawiki.org/xml/export-0.6/"
- targetNamespace="http://www.mediawiki.org/xml/export-0.6/"
- elementFormDefault="qualified">
+ xmlns:mw="http://www.mediawiki.org/xml/export-0.6/"
+ targetNamespace="http://www.mediawiki.org/xml/export-0.6/"
+ elementFormDefault="qualified">
<annotation>
<documentation xml:lang="en">
MediaWiki's page export format
</documentation>
</annotation>
-
+
<!-- Need this to reference xml:lang -->
<import namespace="http://www.w3.org/XML/1998/namespace"
- schemaLocation="http://www.w3.org/2001/xml.xsd"/>
-
+ schemaLocation="http://www.w3.org/2001/xml.xsd"/>
+
<!-- Our root element -->
<element name="mediawiki" type="mw:MediaWikiType"/>
-
+
<complexType name="MediaWikiType">
<sequence>
<element name="siteinfo" type="mw:SiteInfoType"
- minOccurs="0" maxOccurs="1"/>
+ minOccurs="0" maxOccurs="1"/>
<element name="page" type="mw:PageType"
- minOccurs="0" maxOccurs="unbounded"/>
+ minOccurs="0" maxOccurs="unbounded"/>
</sequence>
<attribute name="version" type="string" use="required"/>
<attribute ref="xml:lang" use="required"/>
</complexType>
-
+
<complexType name="SiteInfoType">
<sequence>
<element name="sitename" type="string" minOccurs="0" />
@@ -62,23 +62,23 @@
<element name="namespaces" type="mw:NamespacesType" minOccurs="0" />
</sequence>
</complexType>
-
+
<simpleType name="CaseType">
<restriction base="NMTOKEN">
<!-- Cannot have two titles differing only by case of first letter. -->
<!-- Default behavior through 1.5, $wgCapitalLinks = true -->
<enumeration value="first-letter" />
-
+
<!-- Complete title is case-sensitive -->
<!-- Behavior when $wgCapitalLinks = false -->
<enumeration value="case-sensitive" />
-
+
<!-- Cannot have non-case senstitive titles eg [[FOO]] == [[Foo]] -->
<!-- Not yet implemented as of MediaWiki 1.18 -->
<enumeration value="case-insensitive" />
</restriction>
</simpleType>
-
+
<simpleType name="DeletedFlagType">
<restriction base="NMTOKEN">
<enumeration value="deleted"/>
@@ -88,10 +88,10 @@
<complexType name="NamespacesType">
<sequence>
<element name="namespace" type="mw:NamespaceType"
- minOccurs="0" maxOccurs="unbounded" />
+ minOccurs="0" maxOccurs="unbounded" />
</sequence>
</complexType>
-
+
<complexType name="NamespaceType">
<simpleContent>
<extension base="string">
@@ -100,36 +100,36 @@
</extension>
</simpleContent>
</complexType>
-
+
<complexType name="PageType">
<sequence>
<!-- Title in text form. (Using spaces, not underscores; with namespace ) -->
<element name="title" type="string"/>
-
+
<!-- Namespace in canonical form -->
<element name="ns" type="positiveInteger"/>
-
+
<!-- optional page ID number -->
<element name="id" type="positiveInteger" minOccurs="0"/>
-
+
<!-- flag if the current revision is a redirect -->
- <element name="redirect" type="string" minOccurs="0"/>
+ <element name="redirect" type="string" minOccurs="0"/>
<!-- comma-separated list of string tokens, if present -->
<element name="restrictions" type="string" minOccurs="0"/>
-
+
<!-- Zero or more sets of revision or upload data -->
<choice minOccurs="0" maxOccurs="unbounded">
<element name="revision" type="mw:RevisionType" />
<element name="upload" type="mw:UploadType" />
<element name="logitem" type="mw:LogItemType" />
</choice>
-
+
<!-- Zero or One sets of discussion threading data -->
<element name="discussionthreadinginfo" minOccurs="0" maxOccurs="1" type="mw:DiscussionThreadingInfo" />
</sequence>
</complexType>
-
+
<complexType name="RevisionType">
<sequence>
<element name="id" type="positiveInteger" minOccurs="0"/>
@@ -153,7 +153,7 @@
<element name="text" type="mw:TextType" />
</sequence>
</complexType>
-
+
<complexType name="CommentType">
<simpleContent>
<extension base="string">
@@ -169,7 +169,7 @@
<extension base="string">
<attribute ref="xml:space" use="optional" default="preserve" />
<!-- This allows deleted=deleted on non-empty elements, but XSD is not omnipotent -->
- <attribute name="deleted" use="optional" type="mw:DeletedFlagType"/>
+ <attribute name="deleted" use="optional" type="mw:DeletedFlagType"/>
<!-- This isn't a good idea; we should be using "ID" instead of "NMTOKEN" -->
<!-- However, "NMTOKEN" is strictest definition that is both compatible with existing -->
<!-- usage ([0-9]+) and with the "ID" type. -->
@@ -178,37 +178,37 @@
</extension>
</simpleContent>
</complexType>
-
+
<complexType name="ContributorType">
<sequence>
<element name="username" type="string" minOccurs="0"/>
<element name="id" type="positiveInteger" minOccurs="0" />
-
+
<element name="ip" type="string" minOccurs="0"/>
</sequence>
<!-- This allows deleted=deleted on non-empty elements, but XSD is not omnipotent -->
<attribute name="deleted" use="optional" type="mw:DeletedFlagType"/>
</complexType>
-
+
<complexType name="UploadType">
<sequence>
<!-- Revision-style data... -->
<element name="timestamp" type="dateTime"/>
<element name="contributor" type="mw:ContributorType"/>
<element name="comment" type="string" minOccurs="0"/>
-
+
<!-- Filename. (Using underscores, not spaces. No 'Image:' namespace marker.) -->
<element name="filename" type="string"/>
-
+
<!-- URI at which this resource can be obtained -->
<element name="src" type="anyURI"/>
-
+
<element name="size" type="positiveInteger" />
-
+
<!-- TODO: add other metadata fields -->
</sequence>
</complexType>
-
+
<!-- Discussion threading data for LiquidThreads -->
<complexType name="DiscussionThreadingInfo">
<sequence>
@@ -222,5 +222,5 @@
<element name="ThreadType" type="string" />
</sequence>
</complexType>
-
+
</schema>
diff --git a/docs/export-0.7.xsd b/docs/export-0.7.xsd
new file mode 100644
index 00000000..48037463
--- /dev/null
+++ b/docs/export-0.7.xsd
@@ -0,0 +1,272 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+ This is an XML Schema description of the format
+ output by MediaWiki's Special:Export system.
+
+ Version 0.2 adds optional basic file upload info support,
+ which is used by our OAI export/import submodule.
+
+ Version 0.3 adds some site configuration information such
+ as a list of defined namespaces.
+
+ Version 0.4 adds per-revision delete flags, log exports,
+ discussion threading data, a per-page redirect flag, and
+ per-namespace capitalization.
+
+ Version 0.5 adds byte count per revision.
+
+ Version 0.6 adds a separate namespace tag, and resolves the
+ redirect target and adds a separate sha1 tag for each revision.
+
+ Version 0.7 adds a unique identity constraint for both page and
+ revision identifiers. See also bug 4220.
+ Fix type for <ns> from "positiveInteger" to "nonNegativeInteger" to allow 0
+ Moves <logitem> to its right location.
+ Add parentid to revision.
+ Fix type for <id> within <contributor> to "nonNegativeInteger"
+
+ The canonical URL to the schema document is:
+ http://www.mediawiki.org/xml/export-0.7.xsd
+
+ Use the namespace:
+ http://www.mediawiki.org/xml/export-0.7/
+-->
+<schema xmlns="http://www.w3.org/2001/XMLSchema"
+ xmlns:mw="http://www.mediawiki.org/xml/export-0.7/"
+ targetNamespace="http://www.mediawiki.org/xml/export-0.7/"
+ elementFormDefault="qualified">
+
+ <annotation>
+ <documentation xml:lang="en">
+ MediaWiki's page export format
+ </documentation>
+ </annotation>
+
+ <!-- Need this to reference xml:lang -->
+ <import namespace="http://www.w3.org/XML/1998/namespace"
+ schemaLocation="http://www.w3.org/2001/xml.xsd" />
+
+ <!-- Our root element -->
+ <element name="mediawiki" type="mw:MediaWikiType">
+ <!-- Page ID contraint, see bug 4220 -->
+ <unique name="PageIDConstraint">
+ <selector xpath="mw:page" />
+ <field xpath="mw:id" />
+ </unique>
+ <!-- Revision ID contraint, see bug 4220 -->
+ <unique name="RevIDConstraint">
+ <selector xpath="mw:page/mw:revision" />
+ <field xpath="mw:id" />
+ </unique>
+ </element>
+
+ <complexType name="MediaWikiType">
+ <sequence>
+ <element name="siteinfo" type="mw:SiteInfoType"
+ minOccurs="0" maxOccurs="1" />
+ <element name="page" type="mw:PageType"
+ minOccurs="0" maxOccurs="unbounded" />
+ <element name="logitem" type="mw:LogItemType"
+ minOccurs="0" maxOccurs="unbounded" />
+ </sequence>
+ <attribute name="version" type="string" use="required" />
+ <attribute ref="xml:lang" use="required" />
+ </complexType>
+
+ <complexType name="SiteInfoType">
+ <sequence>
+ <element name="sitename" type="string" minOccurs="0" />
+ <element name="base" type="anyURI" minOccurs="0" />
+ <element name="generator" type="string" minOccurs="0" />
+ <element name="case" type="mw:CaseType" minOccurs="0" />
+ <element name="namespaces" type="mw:NamespacesType" minOccurs="0" />
+ </sequence>
+ </complexType>
+
+ <simpleType name="CaseType">
+ <restriction base="NMTOKEN">
+ <!-- Cannot have two titles differing only by case of first letter. -->
+ <!-- Default behavior through 1.5, $wgCapitalLinks = true -->
+ <enumeration value="first-letter" />
+
+ <!-- Complete title is case-sensitive -->
+ <!-- Behavior when $wgCapitalLinks = false -->
+ <enumeration value="case-sensitive" />
+
+ <!-- Cannot have non-case senstitive titles eg [[FOO]] == [[Foo]] -->
+ <!-- Not yet implemented as of MediaWiki 1.18 -->
+ <enumeration value="case-insensitive" />
+ </restriction>
+ </simpleType>
+
+ <simpleType name="DeletedFlagType">
+ <restriction base="NMTOKEN">
+ <enumeration value="deleted" />
+ </restriction>
+ </simpleType>
+
+ <complexType name="NamespacesType">
+ <sequence>
+ <element name="namespace" type="mw:NamespaceType"
+ minOccurs="0" maxOccurs="unbounded" />
+ </sequence>
+ </complexType>
+
+ <complexType name="NamespaceType">
+ <simpleContent>
+ <extension base="string">
+ <attribute name="key" type="integer" />
+ <attribute name="case" type="mw:CaseType" />
+ </extension>
+ </simpleContent>
+ </complexType>
+
+ <complexType name="RedirectType">
+ <simpleContent>
+ <extension base="string">
+ <attribute name="title" type="string" />
+ </extension>
+ </simpleContent>
+ </complexType>
+
+ <complexType name="PageType">
+ <sequence>
+ <!-- Title in text form. (Using spaces, not underscores; with namespace ) -->
+ <element name="title" type="string" />
+
+ <!-- Namespace in canonical form -->
+ <element name="ns" type="nonNegativeInteger" />
+
+ <!-- optional page ID number -->
+ <element name="id" type="positiveInteger" />
+
+ <!-- flag if the current revision is a redirect -->
+ <element name="redirect" type="mw:RedirectType" minOccurs="0" maxOccurs="1" />
+
+ <!-- comma-separated list of string tokens, if present -->
+ <element name="restrictions" type="string" minOccurs="0" />
+
+ <!-- Zero or more sets of revision or upload data -->
+ <choice minOccurs="0" maxOccurs="unbounded">
+ <element name="revision" type="mw:RevisionType" />
+ <element name="upload" type="mw:UploadType" />
+ </choice>
+
+ <!-- Zero or One sets of discussion threading data -->
+ <element name="discussionthreadinginfo" minOccurs="0" maxOccurs="1" type="mw:DiscussionThreadingInfo" />
+ </sequence>
+ </complexType>
+
+ <complexType name="RevisionType">
+ <sequence>
+ <element name="id" type="positiveInteger" />
+ <element name="parentid" type="positiveInteger" minOccurs="0" />
+ <element name="timestamp" type="dateTime" />
+ <element name="contributor" type="mw:ContributorType" />
+ <element name="minor" minOccurs="0" maxOccurs="1" />
+ <element name="comment" type="mw:CommentType" minOccurs="0" maxOccurs="1" />
+ <element name="sha1" type="string" />
+ <element name="text" type="mw:TextType" />
+ </sequence>
+ </complexType>
+
+ <complexType name="LogItemType">
+ <sequence>
+ <element name="id" type="positiveInteger" />
+ <element name="timestamp" type="dateTime" />
+ <element name="contributor" type="mw:ContributorType" />
+ <element name="comment" type="mw:CommentType" minOccurs="0" />
+ <element name="type" type="string" />
+ <element name="action" type="string" />
+ <element name="text" type="mw:LogTextType" minOccurs="0" maxOccurs="1" />
+ <element name="logtitle" type="string" minOccurs="0" maxOccurs="1" />
+ <element name="params" type="mw:LogParamsType" minOccurs="0" maxOccurs="1" />
+ </sequence>
+ </complexType>
+
+ <complexType name="CommentType">
+ <simpleContent>
+ <extension base="string">
+ <!-- This allows deleted=deleted on non-empty elements, but XSD is not omnipotent -->
+ <attribute name="deleted" use="optional" type="mw:DeletedFlagType" />
+ </extension>
+ </simpleContent>
+ </complexType>
+
+ <complexType name="TextType">
+ <simpleContent>
+ <extension base="string">
+ <attribute ref="xml:space" use="optional" default="preserve" />
+ <!-- This allows deleted=deleted on non-empty elements, but XSD is not omnipotent -->
+ <attribute name="deleted" use="optional" type="mw:DeletedFlagType" />
+ <!-- This isn't a good idea; we should be using "ID" instead of "NMTOKEN" -->
+ <!-- However, "NMTOKEN" is strictest definition that is both compatible with existing -->
+ <!-- usage ([0-9]+) and with the "ID" type. -->
+ <attribute name="id" type="NMTOKEN" />
+ <attribute name="bytes" use="optional" type="nonNegativeInteger" />
+ </extension>
+ </simpleContent>
+ </complexType>
+
+ <complexType name="LogTextType">
+ <simpleContent>
+ <extension base="string">
+ <!-- This allows deleted=deleted on non-empty elements, but XSD is not omnipotent -->
+ <attribute name="deleted" use="optional" type="mw:DeletedFlagType" />
+ </extension>
+ </simpleContent>
+ </complexType>
+
+ <complexType name="LogParamsType">
+ <simpleContent>
+ <extension base="string">
+ <attribute ref="xml:space" use="optional" default="preserve" />
+ </extension>
+ </simpleContent>
+ </complexType>
+
+ <complexType name="ContributorType">
+ <sequence>
+ <element name="username" type="string" minOccurs="0" />
+ <element name="id" type="nonNegativeInteger" minOccurs="0" />
+
+ <element name="ip" type="string" minOccurs="0" />
+ </sequence>
+ <!-- This allows deleted=deleted on non-empty elements, but XSD is not omnipotent -->
+ <attribute name="deleted" use="optional" type="mw:DeletedFlagType" />
+ </complexType>
+
+ <complexType name="UploadType">
+ <sequence>
+ <!-- Revision-style data... -->
+ <element name="timestamp" type="dateTime" />
+ <element name="contributor" type="mw:ContributorType" />
+ <element name="comment" type="string" minOccurs="0" />
+
+ <!-- Filename. (Using underscores, not spaces. No 'File:' namespace marker.) -->
+ <element name="filename" type="string" />
+
+ <!-- URI at which this resource can be obtained -->
+ <element name="src" type="anyURI" />
+
+ <element name="size" type="positiveInteger" />
+
+ <!-- TODO: add other metadata fields -->
+ </sequence>
+ </complexType>
+
+ <!-- Discussion threading data for LiquidThreads -->
+ <complexType name="DiscussionThreadingInfo">
+ <sequence>
+ <element name="ThreadSubject" type="string" />
+ <element name="ThreadParent" type="positiveInteger" />
+ <element name="ThreadAncestor" type="positiveInteger" />
+ <element name="ThreadPage" type="string" />
+ <element name="ThreadID" type="positiveInteger" />
+ <element name="ThreadAuthor" type="string" />
+ <element name="ThreadEditStatus" type="string" />
+ <element name="ThreadType" type="string" />
+ </sequence>
+ </complexType>
+
+</schema>
diff --git a/docs/export-demo.xml b/docs/export-demo.xml
index 77b26a41..d198b93c 100644
--- a/docs/export-demo.xml
+++ b/docs/export-demo.xml
@@ -1,134 +1,149 @@
-<mediawiki xmlns="http://www.mediawiki.org/xml/export-0.4/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.mediawiki.org/xml/export-0.4/ http://www.mediawiki.org/xml/export-0.4.xsd" version="0.4" xml:lang="en">
-
-<!-- Optional global configuration info -->
-<siteinfo>
- <!-- Site name, as set in $wgSitename -->
- <sitename>DemoWiki</sitename>
+<mediawiki xmlns="http://www.mediawiki.org/xml/export-0.7/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.mediawiki.org/xml/export-0.7/ http://www.mediawiki.org/xml/export-0.7.xsd" version="0.7" xml:lang="en">
- <!-- Forgot where you got this set? -->
- <base>http://example.com/wiki/Main_Page</base>
-
- <!-- Source software version -->
- <generator>MediaWiki 1.5.0</generator>
-
- <!-- Title case sensitivity options of the wiki this data came from -->
- <!-- May be 'first-letter', 'case-sensitive', or 'case-insensitive' -->
- <case>first-letter</case>
-
- <!-- Defined namespace keys on the source wiki. -->
- <!-- Titles can be substring-split to obtain the symbolic numeric key -->
- <namespaces>
- <namespace key="-2">Media</namespace>
- <namespace key="-1">Special</namespace>
- <namespace key="0"></namespace>
- <namespace key="1">Talk</namespace>
- <namespace key="2">User</namespace>
- <namespace key="3">User talk</namespace>
- <namespace key="4">DemoWiki</namespace>
- <namespace key="5">DemoWIki talk</namespace>
- <namespace key="6">Image</namespace>
- <namespace key="7">Image talk</namespace>
- <namespace key="8">MediaWiki</namespace>
- <namespace key="9">MediaWiki talk</namespace>
- <namespace key="10">Template</namespace>
- <namespace key="11">Template talk</namespace>
- <namespace key="12">Help</namespace>
- <namespace key="13">Help talk</namespace>
- <namespace key="14">Category</namespace>
- <namespace key="15">Category talk</namespace>
- </namespaces>
-</siteinfo>
-
-<!-- The rest of the data will be a series of page records -->
-<page>
- <!-- Titles are listed here in text form, with namespace prefix -->
- <!-- if any, and spaces rather than the underscores used in URLs. -->
- <title>Page title</title>
+ <!-- Optional global configuration info -->
+ <siteinfo>
+ <!-- Site name, as set in $wgSitename -->
+ <sitename>DemoWiki</sitename>
+
+ <!-- Forgot where you got this set? -->
+ <base>http://example.com/wiki/Main_Page</base>
+
+ <!-- Source software version -->
+ <generator>MediaWiki 1.20</generator>
+
+ <!-- Title case sensitivity options of the wiki this data came from -->
+ <!-- May be 'first-letter', 'case-sensitive', or 'case-insensitive' -->
+ <case>first-letter</case>
+
+ <!-- Defined namespace keys on the source wiki. -->
+ <namespaces>
+ <namespace key="-2" case="first-letter">Media</namespace>
+ <namespace key="-1" case="first-letter">Special</namespace>
+ <namespace key="0" case="first-letter" />
+ <namespace key="1" case="first-letter">Talk</namespace>
+ <namespace key="2" case="first-letter">User</namespace>
+ <namespace key="3" case="first-letter">User talk</namespace>
+ <namespace key="4" case="first-letter">DemoWiki</namespace>
+ <namespace key="5" case="first-letter">DemoWIki talk</namespace>
+ <namespace key="6" case="first-letter">File</namespace>
+ <namespace key="7" case="first-letter">File talk</namespace>
+ <namespace key="8" case="first-letter">MediaWiki</namespace>
+ <namespace key="9" case="first-letter">MediaWiki talk</namespace>
+ <namespace key="10" case="first-letter">Template</namespace>
+ <namespace key="11" case="first-letter">Template talk</namespace>
+ <namespace key="12" case="first-letter">Help</namespace>
+ <namespace key="13" case="first-letter">Help talk</namespace>
+ <namespace key="14" case="first-letter">Category</namespace>
+ <namespace key="15" case="first-letter">Category talk</namespace>
+ </namespaces>
+ </siteinfo>
- <!-- The page's immutable page_id number in the source database. -->
- <!-- Page ID numbers are kept across page moves, but may change -->
- <!-- if a page is deleted and recreated. -->
- <id>1</id>
-
- <!-- Tag wether this article is a redirect -->
- <!-- This corresponds to the page_is_redirect in the page table -->
- <redirect />
+ <!-- The rest of the data will be a series of page records -->
+ <page>
+ <!-- Titles are listed here in text form, with namespace prefix -->
+ <!-- if any, and spaces rather than the underscores used in URLs. -->
+ <title>Page title</title>
+
+ <!-- Namespace in canonical form -->
+ <ns>0</ns>
+
+ <!-- The page's immutable page_id number in the source database. -->
+ <!-- Page ID numbers are kept across page moves, but may change -->
+ <!-- if a page is deleted and recreated. -->
+ <id>1</id>
+
+ <!-- Tag wether this article is a redirect and its target -->
+ <!-- This corresponds to the page_is_redirect in the page table -->
+ <redirect title="Target" />
+
+ <!-- If restricted, the ACL is listed here raw. -->
+ <restrictions>edit=sysop:move=sysop</restrictions>
+
+ <!-- With a series of revision records... -->
+
+ <!-- Remember this is XML; if you must use a regex-based extractor -->
+ <!-- in place of a standard XML parser, be very careful. -->
+ <!-- * Don't forget to decode character entities! -->
+ <!-- * If using a 'loose' XML parser, ensure that whitespace is -->
+ <!-- preserved in the <text> elements. -->
+ <revision>
+ <!-- Unique revision ID number (rev_id) in the source database. -->
+ <!-- This number uniquely identifies the revision on that wiki. -->
+ <id>100</id>
+ <!-- revision id of the parent revision -->
+ <parentid>99</parentid>
+ <timestamp>2001-01-15T13:15:00Z</timestamp>
+ <contributor>
+ <username>Foobar</username>
+ <id>42</id>
+ </contributor>
+ <minor />
+ <comment>I have just one thing to say!</comment>
+ <sha1>5x0ux8iwjrbmfzgv6pkketxgkcnpr7h</sha1>
+ <text xml:space="preserve" bytes="25">A bunch of [[text]] here.</text>
+ </revision>
+
+ <revision>
+ <id>99</id>
+ <timestamp>2001-01-15T13:10:27Z</timestamp>
+ <contributor>
+ <ip>10.0.0.2</ip>
+ </contributor>
+ <comment>new!</comment>
+ <sha1>etaxt3shcge6igz1biwy3d4um2pnle4</sha1>
+ <text xml:space="preserve" bytes="24">An earlier [[revision]].</text>
+ </revision>
+ </page>
- <!-- If restricted, the ACL is listed here raw. -->
- <restrictions>edit=sysop:move=sysop</restrictions>
+ <page>
+ <title>Talk:Page title</title>
+ <ns>1</ns>
+ <id>2</id>
+ <revision>
+ <id>101</id>
+ <timestamp>2001-01-15T14:03:00Z</timestamp>
+ <contributor><ip>10.0.0.2</ip></contributor>
+ <comment>hey</comment>
+ <sha1>ml80vmyjlixdstnywwihx003exfzq9j</sha1>
+ <text xml:space="preserve" bytes="47">WHYD YOU LOCK PAGE??!!! i was editing that jerk</text>
+ </revision>
+ </page>
- <!-- With a series of revision records... -->
+ <page>
+ <title>File:Some image.jpg</title>
+ <ns>6</ns>
+ <id>3</id>
+ <revision>
+ <id>102</id>
+ <timestamp>2001-01-15T20:34:12Z</timestamp>
+ <contributor><username>Foobar</username><id>42</id></contributor>
+ <comment>My awesomeest image!</comment>
+ <sha1>mehom37npwkpzhaiwu3wyr0egalumki</sha1>
+ <text xml:space="preserve" bytes="52">This is an awesome little imgae. I lurves it. {{PD}}</text>
+ </revision>
+ <upload>
+ <timestamp>2001-01-15T20:34:12Z</timestamp>
+ <contributor><username>Foobar</username><id>42</id></contributor>
+ <comment>My awesomeest image!</comment>
+ <filename>Some_image.jpg</filename>
+ <src>http://upload.wikimedia.org/commons/2/22/Some_image.jpg</src>
+ <size>12345</size>
+ </upload>
+ </page>
- <!-- Remember this is XML; if you must use a regex-based extractor -->
- <!-- in place of a standard XML parser, be very careful. -->
- <!-- * Don't forget to decode character entities! -->
- <!-- * If using a 'loose' XML parser, ensure that whitespace is -->
- <!-- preserved in the <text> elements. -->
- <revision>
- <!-- Unique revision ID number (rev_id) in the source database. -->
- <!-- This number uniquely identifies the revision on that wiki. -->
- <id>100</id>
-
- <timestamp>2001-01-15T13:15:00Z</timestamp>
- <contributor><username>Foobar</username><id>42</id></contributor>
- <minor />
- <comment>I have just one thing to say!</comment>
- <text xml:space="preserve">A bunch of [[text]] here.</text>
- </revision>
+ <!-- or a series of logitem records, but normaly page and logitem never exist both in one file -->
+ <logitem>
+ <id>15</id>
+ <timestamp>2008-10-23T03:20:32Z</timestamp>
+ <contributor>
+ <username>Wikimedian</username>
+ <id>12345</id>
+ </contributor>
+ <comment>content was: 'I think this was a silly edit'</comment>
+ <type>delete</type>
+ <action>delete</action>
+ <logtitle>Silly page name</logtitle>
+ <params xml:space="preserve" />
+ </logitem>
- <revision>
- <timestamp>2001-01-15T13:10:27Z</timestamp>
- <contributor><ip>10.0.0.2</ip></contributor>
- <comment>new!</comment>
- <text xml:space="preserve">An earlier [[revision]].</text>
- </revision>
-</page>
-
-<page>
- <title>Talk:Page title</title>
- <id>2</id>
- <revision>
- <id>101</id>
- <timestamp>2001-01-15T14:03:00Z</timestamp>
- <contributor><ip>10.0.0.2</ip></contributor>
- <comment>hey</comment>
- <text xml:space="preserve">WHYD YOU LOCK PAGE??!!! i was editing that jerk</text>
- </revision>
-</page>
-
-<page>
- <title>Image:Some image.jpg</title>
- <id>3</id>
- <revision>
- <id>102</id>
- <timestamp>2001-01-15T20:34:12Z</timestamp>
- <contributor><username>Foobar</username><id>42</id></contributor>
- <comment>My awesomeest image!</comment>
- <text xml:space="preserve">This is an awesome little imgae. I lurves it. {{PD}}</text>
- </revision>
- <upload>
- <timestamp>2001-01-15T20:34:12Z</timestamp>
- <contributor><username>Foobar</username><id>42</id></contributor>
- <comment>My awesomeest image!</comment>
- <filename>Some_image.jpg</filename>
- <src>http://upload.wikimedia.org/commons/2/22/Some_image.jpg</src>
- <size>12345</size>
- </upload>
-</page>
-
-<logitem>
- <id>15</id>
- <timestamp>2008-10-23T03:20:32Z</timestamp>
- <contributor>
- <username>Wikimedian</username>
- <id>12345</id>
- </contributor>
- <comment>content was: 'I think this was a silly edit'</comment>
- <type>delete</type>
- <action>delete</action>
- <logtitle>Silly page name</logtitle>
- <params xml:space="preserve" />
-</logitem>
-
-
</mediawiki>
diff --git a/docs/hooks.txt b/docs/hooks.txt
index a6f53c1a..ca64545f 100644
--- a/docs/hooks.txt
+++ b/docs/hooks.txt
@@ -245,6 +245,10 @@ $block: The block from which the autoblock is coming.
'AbortDiffCache': Can be used to cancel the caching of a diff
&$diffEngine: DifferenceEngine object
+'AbortEmailNotification': Can be used to cancel email notifications for an edit.
+$editor: The User who made the change.
+$title: The Title of the page that was edited.
+
'AbortLogin': Return false to cancel account login.
$user: the User object being authenticated against
$password: the password being submitted, not yet checked for validity
@@ -262,7 +266,7 @@ $reason: the reason for the move (added in 1.13)
'AbortNewAccount': Return false to cancel explicit account creation.
$user: the User object about to be created (read-only, incomplete)
-&$msg: out parameter: name of error message to display on abort
+&$msg: out parameter: HTML to display on abort
'ActionBeforeFormDisplay': before executing the HTMLForm object
$name: name of the action
@@ -286,11 +290,17 @@ $revCount: Number of revisions in the XML file
$sRevCount: Number of sucessfully imported revisions
$pageInfo: associative array of page information
+'AfterFinalPageOutput': Nearly at the end of OutputPage::output() but
+before OutputPage::sendCacheControl() and final ob_end_flush() which
+will send the buffered output to the client. This allows for last-minute
+modification of the output within the buffer by using ob_get_clean().
+$output: The OutputPage object where output() was called
+
'AjaxAddScript': Called in output page just before the initialisation
of the javascript ajax engine. The hook is only called when ajax
is enabled ( $wgUseAjax = true; ).
-'AlternateEdit': before checking if an user can edit a page and
+'AlternateEdit': before checking if a user can edit a page and
before showing the edit form ( EditPage::edit() ). This is triggered
on &action=edit.
$EditPage: the EditPage object
@@ -310,6 +320,14 @@ $body: Body of the message
Use this to extend core API modules.
&$module: Module object
+'ApiCheckCanExecute': Called during ApiMain::checkCanExecute. Use to
+further authenticate and authorize API clients before executing the
+module. Return false and set a message to cancel the request.
+$module: Module object
+$user: Current user
+&$message: API usage message to die with, as a message key or array
+as accepted by ApiBase::dieUsageMsg.
+
'APIEditBeforeSave': before saving a page with api.php?action=edit,
after processing request parameters. Return false to let the request
fail, returning an error message or an <edit result="Failure"> tag
@@ -331,6 +349,11 @@ descriptions.
&$module: ApiBase Module object
&$desc: Array of parameter descriptions
+'APIGetResultProperties': use this hook to mofify the properties
+in a module's result.
+&$module: ApiBase Module object
+&$properties: Array of properties
+
'APIQueryAfterExecute': after calling the execute() method of an
action=query submodule. Use this to extend core API modules.
&$module: Module object
@@ -388,6 +411,11 @@ is the User object. In the hook, just add your callback to the
$tokenFunctions array and return true (returning false makes no sense)
$tokenFunctions: array(action => callback)
+'ApiMain::onException': Called by ApiMain::executeActionWithErrorHandling()
+when an exception is thrown during API action execution.
+$apiMain: Calling ApiMain instance.
+$e: Exception object.
+
'ApiRsdServiceApis': Add or remove APIs from the RSD services list.
Each service should have its own entry in the $apis array and have a
unique name, passed as key for the array that represents the service data.
@@ -395,6 +423,11 @@ In this data array, the key-value-pair identified by the apiLink key is
required.
&$apis: array of services
+'ApiTokensGetTokenTypes': use this hook to extend action=tokens with new
+token types.
+&$tokenTypes: supported token types in format 'type' => callback function
+used to retrieve this type of tokens.
+
'ArticleAfterFetchContent': after fetching content of an article from
the database
$article: the article (object) being loaded from the database
@@ -417,6 +450,8 @@ $user: the user (object) deleting the article
$reason: the reason (string) the article is being deleted
$error: if the deletion was prohibited, the (raw HTML) error message to display
(added in 1.13)
+$status: Status object, modify this to throw an error. Overridden by $error
+ (added in 1.20)
'ArticleDeleteComplete': after an article is deleted
$article: the WikiPage that was deleted
@@ -667,6 +702,10 @@ $output: OutputPage object in use
'CategoryPageView': before viewing a categorypage in CategoryPage::view
$catpage: CategoryPage instance
+'ChangePasswordForm': For extensions that need to add a field to the ChangePassword form
+via the Preferences form
+&$extraFields: An array of arrays that hold fields like would be passed to the pretty function.
+
'ChangesListInsertArticleLink': Override or augment link to article in RC list.
&$changesList: ChangesList instance.
&$articlelink: HTML of link to article (already filled-in).
@@ -687,10 +726,18 @@ $user: user (object) whose email is being confirmed
&$pager: Pager object for contributions
&$queryInfo: The query for the contribs Pager
+'ContribsPager::reallyDoQuery': Called before really executing the query for My Contributions
+&$data: an array of results of all contribs queries
+$pager: The ContribsPager object hooked into
+$offset: Index offset, inclusive
+$limit: Exact query limit
+$descending: Query direction, false for ascending, true for descending
+
'ContributionsLineEnding': Called before a contributions HTML line is finished
$page: SpecialPage object for contributions
-$ret: the HTML line
+&$ret: the HTML line
$row: the DB row for this line
+&$classes: the classes to add to the surrounding <li>
'ContributionsToolLinks': Change tool links above Special:Contributions
$id: User identifier
@@ -735,11 +782,11 @@ $title: Title object for the title being linked to (may not be the same as
$wgTitle, if the section is included from a template)
$section: The designation of the section being pointed to, to be included in
the link, like "&section=$section"
-$tooltip: The default tooltip. Escape with htmlspecialchars() before using.
+$tooltip: The default tooltip. Escape before using.
By default, this is wrapped in