From 392fe88ed00311c129d56cc0f3d62fbb9e813f4f Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Mon, 1 Apr 2024 13:59:41 -0400 Subject: [PATCH] fix(lib): sudo-{this,save}-file: file path for indirect clones If the buffer is an indirect clone, it may not have a buffer-file-name. Also changes the command to throw an error if the current file has no file path *and* is not a dired buffer. --- lisp/lib/files.el | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/lisp/lib/files.el b/lisp/lib/files.el index 088463293..022be0003 100644 --- a/lisp/lib/files.el +++ b/lisp/lib/files.el @@ -495,16 +495,17 @@ If FORCE-P, overwrite the destination file if it exists, without confirmation." (interactive) (find-file (doom--sudo-file-path - (or buffer-file-name + (or (buffer-file-name (buffer-base-buffer)) (when (or (derived-mode-p 'dired-mode) (derived-mode-p 'wdired-mode)) - default-directory))))) + default-directory) + (user-error "Cannot determine the file path of the current buffer"))))) ;;;###autoload (defun doom/sudo-save-buffer () "Save this file as root." (interactive) - (let ((file (doom--sudo-file-path buffer-file-name))) + (let ((file (doom--sudo-file-path (buffer-file-name (buffer-base-buffer))))) (if-let (buffer (find-file-noselect file)) (let ((origin (current-buffer))) (copy-to-buffer buffer (point-min) (point-max))