Merge "Allow additional interwiki prefixes on local interwiki links"
authorjenkins-bot <jenkins-bot@gerrit.wikimedia.org>
Sun, 20 Apr 2014 14:00:22 +0000 (14:00 +0000)
committerGerrit Code Review <gerrit@wikimedia.org>
Sun, 20 Apr 2014 14:00:22 +0000 (14:00 +0000)
includes/title/MediaWikiTitleCodec.php
tests/phpunit/includes/TitleTest.php

index 8d2fba0..288c1d9 100644 (file)
@@ -242,7 +242,6 @@ class MediaWikiTitleCodec implements TitleFormatter, TitleParser {
                }
 
                # Namespace or interwiki prefix
-               $firstPass = true;
                $prefixRegexp = "/^(.+?)_*:_*(.*)$/S";
                do {
                        $m = array();
@@ -264,13 +263,6 @@ class MediaWikiTitleCodec implements TitleFormatter, TitleParser {
                                                }
                                        }
                                } elseif ( Interwiki::isValidInterwiki( $p ) ) {
-                                       if ( !$firstPass ) {
-                                               //TODO: get rid of global state!
-                                               # Can't make a local interwiki link to an interwiki link.
-                                               # That's just crazy!
-                                               throw new MalformedTitleException( 'Interwiki prefix found in title: ' . $text );
-                                       }
-
                                        # Interwiki link
                                        $dbkey = $m[2];
                                        $parts['interwiki'] = $this->language->lc( $p );
@@ -283,7 +275,6 @@ class MediaWikiTitleCodec implements TitleFormatter, TitleParser {
                                                                throw new MalformedTitleException( 'Local interwiki with empty title: ' . $text );
                                                        }
                                                        $parts['interwiki'] = '';
-                                                       $firstPass = false;
 
                                                        # Do another namespace split...
                                                        continue 2;
index 118cf95..e86b556 100644 (file)
@@ -87,7 +87,9 @@ class TitleTest extends MediaWikiTestCase {
                        'remotetestiw: Talk: # anchor',
                        'remotetestiw: #bar',
                        'remotetestiw: Talk:',
-                       'remotetestiw: Talk: Foo'
+                       'remotetestiw: Talk: Foo',
+                       'localtestiw:remotetestiw:',
+                       'localtestiw:remotetestiw:foo'
                ) as $text ) {
                        $this->assertInstanceOf( 'Title', Title::newFromText( $text ), "Valid: $text" );
                }