]> git.eshelyaron.com Git - emacs.git/commitdiff
Fix `browse-url-of-dired'
authorLars Ingebrigtsen <larsi@gnus.org>
Sat, 17 Oct 2020 09:24:03 +0000 (11:24 +0200)
committerLars Ingebrigtsen <larsi@gnus.org>
Sat, 17 Oct 2020 09:24:03 +0000 (11:24 +0200)
* lisp/net/browse-url.el (browse-url-emacs): Make the
`browse-url-of-dired' command work again after the browse-emacs
changes (bug#42429).

lisp/net/browse-url.el

index e7dad48cf4a647854d52400c116d73ae79f81b3b..8b245b010669a58ed6c60719e7e2e8f60d54ea55 100644 (file)
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 ;;; Code:
 
+(require 'url)
+
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 ;; Variables
 
@@ -1374,10 +1376,16 @@ Optional argument SAME-WINDOW non-nil means show the URL in the
 currently selected window instead."
   (interactive (browse-url-interactive-arg "URL: "))
   (require 'url-handlers)
-  (let ((file-name-handler-alist
-         (cons (cons url-handler-regexp 'url-file-handler)
-               file-name-handler-alist)))
-    (if same-window (find-file url) (find-file-other-window url))))
+  (let ((parsed (url-generic-parse-url url))
+        (func (if same-window 'find-file 'find-file-other-window)))
+    (if (and (equal (url-type parsed) "file")
+             (file-directory-p (url-filename parsed)))
+        ;; It's a directory; just open it.
+        (funcall func (url-filename parsed))
+      (let ((file-name-handler-alist
+             (cons (cons url-handler-regexp 'url-file-handler)
+                   file-name-handler-alist)))
+        (funcall func url)))))
 
 (function-put 'browse-url-emacs 'browse-url-browser-kind 'internal)