From 21384993d98d1d96e3425d575cda407fb5bb1a8b Mon Sep 17 00:00:00 2001 From: Aaron Schulz Date: Thu, 15 Jan 2009 18:36:59 +0000 Subject: [PATCH] Redid r45389 "Disallow broken Talk:File:x type titles (bug 5280)" --- includes/Title.php | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/includes/Title.php b/includes/Title.php index bac558f328..8ec621721f 100644 --- a/includes/Title.php +++ b/includes/Title.php @@ -2064,14 +2064,20 @@ class Title { # Namespace or interwiki prefix $firstPass = true; + $prefixRegexp = "/^(.+?)_*:_*(.*)$/S"; do { $m = array(); - if ( preg_match( "/^(.+?)_*:_*(.*)$/S", $dbkey, $m ) ) { + if ( preg_match( $prefixRegexp, $dbkey, $m ) ) { $p = $m[1]; - if ( $ns = $wgContLang->getNsIndex( $p )) { + if ( $ns = $wgContLang->getNsIndex( $p ) ) { # Ordinary namespace $dbkey = $m[2]; $this->mNamespace = $ns; + # For Talk:X pages, check if X has a "namespace" prefix + if( $ns == NS_TALK && preg_match( $prefixRegexp, $dbkey, $x ) ) { + if( $wgContLang->getNsIndex( $x[1] ) ) + return false; # Disallow Talk:File:x type titles... + } } elseif( Interwiki::isValidInterwiki( $p ) ) { if( !$firstPass ) { # Can't make a local interwiki link to an interwiki link. -- 2.20.1