emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

master ea47bcc 2/2: Fix `browse-url-of-dired'


From: Lars Ingebrigtsen
Subject: master ea47bcc 2/2: Fix `browse-url-of-dired'
Date: Sat, 17 Oct 2020 05:24:14 -0400 (EDT)

branch: master
commit ea47bcc431ee7e3fbb545ad05b12ed921923c468
Author: Lars Ingebrigtsen <larsi@gnus.org>
Commit: Lars Ingebrigtsen <larsi@gnus.org>

    Fix `browse-url-of-dired'
    
    * 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 | 16 ++++++++++++----
 1 file changed, 12 insertions(+), 4 deletions(-)

diff --git a/lisp/net/browse-url.el b/lisp/net/browse-url.el
index e7dad48..8b245b0 100644
--- a/lisp/net/browse-url.el
+++ b/lisp/net/browse-url.el
@@ -134,6 +134,8 @@
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 ;;; 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)
 



reply via email to

[Prev in Thread] Current Thread [Next in Thread]