From 1f4a85fca9371a402b876ec9278358c598711709 Mon Sep 17 00:00:00 2001 From: Martin Rudalics Date: Mon, 15 Apr 2024 11:17:51 +0200 Subject: [PATCH] Make 'buffer-last-name' work better after 'find-alternate-file' (Bug#68235) * lisp/files.el (find-alternate-file): Before killing the previous buffer, try to restore its name and filenames (Bug#68235). (cherry picked from commit 9a79db506e39c02daa81629f0b224a86fad2b3c6) --- lisp/files.el | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/lisp/files.el b/lisp/files.el index 82544bd20be..605d9b03d05 100644 --- a/lisp/files.el +++ b/lisp/files.el @@ -2133,6 +2133,15 @@ killed." (rename-buffer oname))) (unless (eq (current-buffer) obuf) (with-current-buffer obuf + (unless (get-buffer oname) + ;; Restore original's buffer name so 'kill-buffer' can use it + ;; to assign its last name (Bug#68235). + (rename-buffer oname)) + ;; Restore original buffer's file names so they can be still + ;; used when referencing the now defunct buffer (Bug#68235). + (setq buffer-file-name ofile) + (setq buffer-file-number onum) + (setq buffer-file-truename otrue) ;; We already ran these; don't run them again. (let (kill-buffer-query-functions kill-buffer-hook) (kill-buffer obuf)))))) -- 2.39.5