Subject: Re: bug#75626: 31.0.50; Dired misses or double-processes files when auto-revert-mode is enabled

From: Michael Heerdegen <[email-masked]>
Date: Wed, 29 Jan 2025 00:58:43 +0100

Tassilo Horn <[email-masked]> writes:

> > We could try to catch more of these situations programmatically.  We
> > could, for example, change `dired-buffer-stale-p' to return non-nil
> > when the selected window is an active minibuffer window and
> > `minibuffer-selected-window' is a window displaying the buffer which
> > is queried to be auto-reverted.  With other words: avoid auto revert
> > whenever the user is currently in a prompt from a command started in a
> > dired buffer.

> Maybe make sense but it doesn't work.  I tried with dired-do-compress
> and many marked files.  That will first create a *Marked Files* buffer,
> show that as a new bottom window, and then invoke the prompting function
> like yes-or-no-p.  I.e., (minibuffer-selected-window) is the window
> showing the *Marked Files* buffer, not the original dired buffer.

I see.  There are other implementation options: we could try to use the
buffer local bindings of `pre-command-hook' and `post-command-hook' to
set `dired--inhibit-auto-revert' non-nil whenever a command is processed
that had been started from a dired buffer.  Or just check `this-command'
for whether its name matches "\\`dired".  But of all these solutions are
probably not really optimal.  Is there a clean solution?

OTOH, going through the command definitions in dired.el will not solve
the problem for third party packages and user written commands.

Michael.