Don't skip or double-process files in dired with auto-revert-mode (bug#75626)
* lisp/dired.el (dired--inhibit-auto-revert): New variable. (dired-map-over-marks): Make the generated code bind it. (dired-buffer-stale-p): Return nil if dired--inhibit-auto-revert is non-nil.
This commit is contained in:
parent
b568ff418c
commit
40d5ff01e5
1 changed files with 12 additions and 1 deletions
|
@ -944,6 +944,9 @@ Return value is the number of files marked, or nil if none were marked."
|
|||
""))))
|
||||
(and (> count 0) count)))
|
||||
|
||||
(defvar-local dired--inhibit-auto-revert nil
|
||||
"A non-nil value prevents `auto-revert-mode' from reverting the buffer.")
|
||||
|
||||
(defmacro dired-map-over-marks (body arg &optional show-progress
|
||||
distinguish-one-marked)
|
||||
"Eval BODY with point on each marked line. Return a list of BODY's results.
|
||||
|
@ -980,7 +983,9 @@ marked file, return (t FILENAME) instead of (FILENAME)."
|
|||
;;endless loop.
|
||||
;;This warning should not apply any longer, sk 2-Sep-1991 14:10.
|
||||
`(prog1
|
||||
(let ((inhibit-read-only t) case-fold-search found results)
|
||||
(let ((dired--inhibit-auto-revert t)
|
||||
(inhibit-read-only t)
|
||||
case-fold-search found results)
|
||||
(if (and ,arg (not (eq ,arg 'marked)))
|
||||
(if (integerp ,arg)
|
||||
(progn ;; no save-excursion, want to move point.
|
||||
|
@ -1289,6 +1294,12 @@ This feature is used by Auto Revert mode."
|
|||
;; Do not auto-revert when the dired buffer can be currently
|
||||
;; written by the user as in `wdired-mode'.
|
||||
buffer-read-only
|
||||
;; When a dired operation using dired-map-over-marks is in
|
||||
;; progress, dired--inhibit-auto-revert is bound to some
|
||||
;; non-nil value and we must not auto-revert because that could
|
||||
;; change the order of files leading to skipping or
|
||||
;; double-processing (see bug#75626).
|
||||
(not dired--inhibit-auto-revert)
|
||||
(dired-directory-changed-p dirname))))
|
||||
|
||||
(defcustom dired-auto-revert-buffer nil
|
||||
|
|
Loading…
Add table
Reference in a new issue