]> git.eshelyaron.com Git - emacs.git/commitdiff
Fix problem with degenerate <html base="."> specs in shr
authorLars Ingebrigtsen <larsi@gnus.org>
Thu, 20 Feb 2020 14:14:39 +0000 (15:14 +0100)
committerLars Ingebrigtsen <larsi@gnus.org>
Thu, 20 Feb 2020 14:14:39 +0000 (15:14 +0100)
* lisp/url/url-expand.el (url-expand-file-name): Don't bug out on
degenerate base/expander pairs (bug#39235).

lisp/url/url-expand.el

index 47964b081f41c8eeb6096515d8e70728df9e0db0..f34ef810c4a3317292e11d2bfee36fbfced44a16 100644 (file)
@@ -92,12 +92,19 @@ path components followed by `..' are removed, along with the `..' itself."
   (cond
    ((= (length url) 0)                 ; nil or empty string
     (url-recreate-url default))
-   ((string-match url-nonrelative-link url) ; Fully-qualified URL, return it immediately
+   ((string-match url-nonrelative-link url) ; Fully-qualified URL,
+                                            ; return it immediately
     url)
    (t
     (let* ((urlobj (url-generic-parse-url url))
           (inhibit-file-name-handlers t)
-          (expander (url-scheme-get-property (url-type default) 'expand-file-name)))
+          (expander (if (url-type default)
+                         (url-scheme-get-property (url-type default)
+                                                  'expand-file-name)
+                       ;; If neither the default nor the URL to be
+                       ;; expanded have a protocol, then just use the
+                       ;; identity expander as a fallback.
+                       'url-identity-expander)))
       (if (string-match "^//" url)
          (setq urlobj (url-generic-parse-url (concat (url-type default) ":"
                                                      url))))