]> code.delx.au - gnu-emacs/blobdiff - lisp/url/url-expand.el
Update copyright year to 2015
[gnu-emacs] / lisp / url / url-expand.el
index 156b06c895bb589cfde2a9d2c995900cb729653b..c468a7952ec8874d933eaa7c1137ad13918264e4 100644 (file)
@@ -1,6 +1,6 @@
 ;;; url-expand.el --- expand-file-name for URLs
 
-;; Copyright (C) 1999, 2004-201 Free Software Foundation, Inc.
+;; Copyright (C) 1999, 2004-2015 Free Software Foundation, Inc.
 
 ;; Keywords: comm, data, processes
 
@@ -24,7 +24,6 @@
 (require 'url-methods)
 (require 'url-util)
 (require 'url-parse)
-(eval-when-compile (require 'cl))
 
 (defun url-expander-remove-relative-links (name)
   ;; Strip . and .. from pathnames
@@ -113,16 +112,20 @@ path components followed by `..' are removed, along with the `..' itself."
       ;; Well, they told us the scheme, let's just go with it.
       nil
     (setf (url-type urlobj) (or (url-type urlobj) (url-type defobj)))
-    (setf (url-port urlobj) (or (url-port urlobj)
+    (setf (url-port urlobj) (or (url-portspec urlobj)
                                 (and (string= (url-type urlobj)
                                               (url-type defobj))
-                                     (url-port defobj))))
+                                    (url-port defobj))))
     (if (not (string= "file" (url-type urlobj)))
        (setf (url-host urlobj) (or (url-host urlobj) (url-host defobj))))
     (if (string= "ftp"  (url-type urlobj))
        (setf (url-user urlobj) (or (url-user urlobj) (url-user defobj))))
     (if (string= (url-filename urlobj) "")
        (setf (url-filename urlobj) "/"))
+    ;; If the object we're expanding from is full, then we are now
+    ;; full.
+    (unless (url-fullness urlobj)
+      (setf (url-fullness urlobj) (url-fullness defobj)))
     (if (string-match "^/" (url-filename urlobj))
        nil
       (let ((query nil)