From a5227603c87ae899a6ccf7e581b80a0f6b816946 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Felici=C3=A1n=20N=C3=A9meth?= Date: Sun, 18 Feb 2024 09:22:30 +0100 Subject: [PATCH] Allow browse-url commands to invoke secondary browser * lisp/net/browse-url.el (browse-url-of-file) (browse-url-of-buffer): Use 'browse-url-secondary-browser-function' if the new argument 'secondary' is non-nil or when invoked with a prefix arg. --- lisp/net/browse-url.el | 25 +++++++++++++++++-------- 1 file changed, 17 insertions(+), 8 deletions(-) diff --git a/lisp/net/browse-url.el b/lisp/net/browse-url.el index 74740af3bd6..4c4c79a80da 100644 --- a/lisp/net/browse-url.el +++ b/lisp/net/browse-url.el @@ -728,13 +728,16 @@ browse-url-maybe-new-window ;; Browse current buffer ;;;###autoload -(defun browse-url-of-file (&optional file) +(defun browse-url-of-file (&optional file secondary) "Use a web browser to display FILE. Display the current buffer's file if FILE is nil or if called interactively. Turn the filename into a URL with function `browse-url-file-url'. Pass the URL to a browser using the -`browse-url' function then run `browse-url-of-file-hook'." - (interactive) +`browse-url' function then run `browse-url-of-file-hook'. + +With a prefix argument, or when SECONDARY is non-nil, use +`browse-url-secondary-browser-function' instead." + (interactive (list nil current-prefix-arg)) (or file (setq file (buffer-file-name)) (error "Current buffer has no file")) @@ -748,7 +751,10 @@ browse-url-of-file (not browse-url-temp-file-name)) (setq browse-url-temp-file-name (file-local-copy file) file browse-url-temp-file-name)) - (browse-url (browse-url-file-url file)) + (let ((url (browse-url-file-url file))) + (if secondary + (funcall browse-url-secondary-browser-function url) + (browse-url url))) (run-hooks 'browse-url-of-file-hook)) (defun browse-url--file-name-coding-system () @@ -789,14 +795,17 @@ browse-url-file-url file) ;;;###autoload -(defun browse-url-of-buffer (&optional buffer) +(defun browse-url-of-buffer (&optional buffer secondary) "Use a web browser to display BUFFER. See `browse-url' for details. Display the current buffer if BUFFER is nil. Display only the currently visible part of BUFFER (from a temporary file) if buffer is -narrowed." - (interactive) +narrowed. + +With a prefix argument, or when SECONDARY is non-nil, use +`browse-url-secondary-browser-function' instead." + (interactive (list nil current-prefix-arg)) (save-excursion (and buffer (set-buffer buffer)) (let ((file-name @@ -816,7 +825,7 @@ browse-url-of-buffer nil ".html")))) (setq file-name browse-url-temp-file-name) (write-region (point-min) (point-max) file-name nil 'no-message)) - (browse-url-of-file file-name)))) + (browse-url-of-file file-name secondary)))) (defun browse-url-delete-temp-file (&optional temp-file-name) "Delete `browse-url-temp-file-name' from the file system. -- 2.39.2