From 13c4e84419003cbae83a633caf74e619bf1b8d38 Mon Sep 17 00:00:00 2001 From: Michael Albinus Date: Thu, 10 Jul 2025 17:25:56 +0200 Subject: [PATCH] Fix handling of `browse-url-temp-file-name' * lisp/net/browse-url.el (browse-url--temp-file-setup): Add `browse-url-delete-temp-file' to `write-file-functions'. (browse-url-of-file, browse-url-delete-temp-file): Fix handling of `browse-url-temp-file-name'. (Bug#78830) (cherry picked from commit 9f82300bb049c716d59575eaee29262e38c5e8d2) --- lisp/net/browse-url.el | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/lisp/net/browse-url.el b/lisp/net/browse-url.el index 21fad0dd50c..6949ff67d9e 100644 --- a/lisp/net/browse-url.el +++ b/lisp/net/browse-url.el @@ -736,6 +736,7 @@ instead." (defmacro browse-url--temp-file-setup (&rest body) (declare (indent defun)) `(progn + (add-hook 'write-file-functions #'browse-url-delete-temp-file nil t) (add-hook 'kill-buffer-hook #'browse-url-delete-temp-file nil t) (with-file-modes #o600 ,@body))) @@ -757,11 +758,11 @@ interactively. Turn the filename into a URL with function (cond ((not (buffer-modified-p))) (browse-url-save-file (save-buffer)) (t (message "%s modified since last save" file)))))) - (when (and (file-remote-p file) - (not browse-url-temp-file-name)) + (when (file-remote-p file) (browse-url--temp-file-setup - (setq browse-url-temp-file-name (file-local-copy file) - file browse-url-temp-file-name))) + (unless browse-url-temp-file-name + (setq browse-url-temp-file-name (file-local-copy file))) + (setq file browse-url-temp-file-name))) (browse-url (browse-url-file-url file)) (run-hooks 'browse-url-of-file-hook)) @@ -838,7 +839,8 @@ narrowed." (declare (advertised-calling-convention () "31.1")) (let ((file-name (or temp-file-name browse-url-temp-file-name))) (if (and file-name (file-exists-p file-name)) - (delete-file file-name)))) + (delete-file file-name)) + (unless temp-file-name (setq browse-url-temp-file-name nil)))) (declare-function dired-get-filename "dired" (&optional localp no-error-if-not-filep)) -- 2.39.5