From d792f0dbb16244dd5d7484d71b6bb5a58f202a01 Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Thu, 4 Apr 2024 17:56:26 -0400 Subject: [PATCH] fix(lib): sudo-{find,this}-file: disable auto-save auto-save can trigger processes that hang silently in the background, making those buffers inoperable (hanging Emacs) for the rest of the session, even if they are killed (tramp caches them), so I suppress them solely for these temporary tramp buffers created by doom/sudo-find-file and doom/sudo-this-file. --- lisp/lib/files.el | 22 ++++++++++++++-------- 1 file changed, 14 insertions(+), 8 deletions(-) diff --git a/lisp/lib/files.el b/lisp/lib/files.el index 94b47d4a3..8f03b4abe 100644 --- a/lisp/lib/files.el +++ b/lisp/lib/files.el @@ -487,19 +487,25 @@ If FORCE-P, overwrite the destination file if it exists, without confirmation." (defun doom/sudo-find-file (file) "Open FILE as root." (interactive "FOpen file as root: ") - (find-file (doom--sudo-file-path (expand-file-name file)))) + ;; HACK: Disable auto-save in temporary tramp buffers because it could trigger + ;; processes that hang silently in the background, making those buffers + ;; inoperable for the rest of that session (Tramp caches them). + (let ((auto-save-default nil) + ;; REVIEW: use only these when we drop 28 support + (remote-file-name-inhibit-auto-save t) + (remote-file-name-inhibit-auto-save-visited t)) + (find-file (doom--sudo-file-path (expand-file-name file))))) ;;;###autoload (defun doom/sudo-this-file () "Open the current file as root." (interactive) - (find-file - (doom--sudo-file-path - (or (buffer-file-name (buffer-base-buffer)) - (when (or (derived-mode-p 'dired-mode) - (derived-mode-p 'wdired-mode)) - default-directory) - (user-error "Cannot determine the file path of the current buffer"))))) + (doom/sudo-find-file + (or (buffer-file-name (buffer-base-buffer)) + (when (or (derived-mode-p 'dired-mode) + (derived-mode-p 'wdired-mode)) + default-directory) + (user-error "Cannot determine the file path of the current buffer")))) ;;;###autoload (defun doom/sudo-save-buffer ()