summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorManuel Giraud <manuel@ledu-giraud.fr>2023-10-24 14:51:04 +0200
committerEli Zaretskii <eliz@gnu.org>2023-11-04 10:03:33 +0200
commitce4a62eece608f13db2449e5d4e2d38f253663c4 (patch)
treee4390cca7704166e9c6b9673cd70a8edd664e74c
parent5ee66620fd2af8c5f356e6e720777e16d6c2c050 (diff)
downloademacs-ce4a62eece608f13db2449e5d4e2d38f253663c4.tar.gz
emacs-ce4a62eece608f13db2449e5d4e2d38f253663c4.tar.bz2
emacs-ce4a62eece608f13db2449e5d4e2d38f253663c4.zip
Fix desktop-save on remote dired (bug#66697)
Do not gather "misc data" for dired buffer not meant to be desktop saved. lisp/dired.el (dired-desktop-save-p): New function to test if `dired-directory' should be desktop saved. (dired-desktop-buffer-misc-data): Use it.
-rw-r--r--lisp/dired.el36
1 files changed, 22 insertions, 14 deletions
diff --git a/lisp/dired.el b/lisp/dired.el
index 99156b28365..c710e06722f 100644
--- a/lisp/dired.el
+++ b/lisp/dired.el
@@ -4877,22 +4877,30 @@ Ask means pop up a menu for the user to select one of copy, move or link."
(eval-when-compile (require 'desktop))
(declare-function desktop-file-name "desktop" (filename dirname))
+(defun dired-desktop-save-p ()
+ "Should `dired-directory' be desktop saved?"
+ (if (consp dired-directory)
+ (not (string-match-p desktop-files-not-to-save (car dired-directory)))
+ (not (string-match-p desktop-files-not-to-save dired-directory))))
+
(defun dired-desktop-buffer-misc-data (dirname)
"Auxiliary information to be saved in desktop file."
- (cons
- ;; Value of `dired-directory'.
- (if (consp dired-directory)
- ;; Directory name followed by list of files.
- (cons (desktop-file-name (car dired-directory) dirname)
- (cdr dired-directory))
- ;; Directory name, optionally with shell wildcard.
- (desktop-file-name dired-directory dirname))
- ;; Subdirectories in `dired-subdir-alist'.
- (cdr
- (nreverse
- (mapcar
- (lambda (f) (desktop-file-name (car f) dirname))
- dired-subdir-alist)))))
+ (when (and (stringp desktop-files-not-to-save)
+ (dired-desktop-save-p))
+ (cons
+ ;; Value of `dired-directory'.
+ (if (consp dired-directory)
+ ;; Directory name followed by list of files.
+ (cons (desktop-file-name (car dired-directory) dirname)
+ (cdr dired-directory))
+ ;; Directory name, optionally with shell wildcard.
+ (desktop-file-name dired-directory dirname))
+ ;; Subdirectories in `dired-subdir-alist'.
+ (cdr
+ (nreverse
+ (mapcar
+ (lambda (f) (desktop-file-name (car f) dirname))
+ dired-subdir-alist))))))
(defun dired-restore-desktop-buffer (_file-name
_buffer-name