bug 18664, bug 19270: Relative URIs in interwiki table break things (in general:...
[lhc/web/wiklou.git] / includes / GlobalFunctions.php
index 69cae20..36860e3 100644 (file)
@@ -1409,16 +1409,19 @@ function wfAppendQuery( $url, $query ) {
 
 /**
  * Expand a potentially local URL to a fully-qualified URL.  Assumes $wgServer
- * is correct.  Also doesn't handle any type of relative URL except one
- * starting with a single "/": this won't work with current-path-relative URLs
- * like "subdir/foo.html", protocol-relative URLs like
- * "//en.wikipedia.org/wiki/", etc.  TODO: improve this!
+ * and $wgProto are correct.
+ *
+ * @todo this won't work with current-path-relative URLs
+ * like "subdir/foo.html", etc.
  *
  * @param $url String: either fully-qualified or a local path + query
  * @return string Fully-qualified URL
  */
 function wfExpandUrl( $url ) {
-       if( substr( $url, 0, 1 ) == '/' ) {
+       if( substr( $url, 0, 2 ) == '//' ) {
+               global $wgProto;
+               return $wgProto . ':' . $url;
+       } elseif( substr( $url, 0, 1 ) == '/' ) {
                global $wgServer;
                return $wgServer . $url;
        } else {