diff --git a/wdired.el b/wdired-fixed.el index fe5b4ef..c5956c5 100644 --- a/wdired.el +++ b/wdired-fixed.el @@ -351,6 +351,7 @@ non-nil means return old filename." (wdired-change-to-dired-mode) (let ((changes nil) (errors 0) + (marks (dired-remember-marks (point-min) (point-max))) files-deleted files-renamed some-file-names-unchanged @@ -376,6 +377,12 @@ non-nil means return old filename." (setq changes t) (if (not file-new) ;empty filename! (push file-old files-deleted) + (when dired-keep-marker-rename + (push (cons (substitute-in-file-name file-new) + (if (integerp dired-keep-marker-rename) + dired-keep-marker-rename + (cdr (assoc file-old marks)))) + marks)) (push (cons file-old (substitute-in-file-name file-new)) files-renamed)))) (forward-line -1))) @@ -393,7 +400,9 @@ non-nil means return old filename." (= (length files-renamed) 1)) (setq dired-directory (cdr (car files-renamed)))) ;; Re-sort the buffer. - (revert-buffer)) + (revert-buffer) + (let ((inhibit-read-only t)) + (dired-mark-remembered marks))) (let ((inhibit-read-only t)) (remove-text-properties (point-min) (point-max) '(old-name nil end-name nil old-link nil