Subject: bug#34614: 26.1.92; When reading input in mini-buffer, message to each area overide the input prompt

From: HaiJun Zhang <[email-masked]>
Date: Thu, 7 Nov 2019 14:52:24 +0000

在 2019年11月7日 +0800 AM6:33，Juri Linkov <[email-masked]>，写道：
Please try the following patch:

diff --git a/lisp/autorevert.el b/lisp/autorevert.el
index 9275513c8d..bbc4e8a4e2 100644
--- a/lisp/autorevert.el
+++ b/lisp/autorevert.el
@@ -815,7 +815,7 @@ auto-revert-handler
(when revert
(when (and auto-revert-verbose
(not (eq revert 'fast)))
- (message "Reverting buffer `%s'." (buffer-name)))
+ (minibuffer-message "Reverting buffer `%s'." (buffer-name)))
;; If point (or a window point) is at the end of the buffer, we
;; want to keep it at the end after reverting. This allows one
;; to tail a file.

The prompt is replaced with the message from autorevert. And after about 2~3 seconds (not fixed), the prompt comes back. What controls the delay(2~3 seconds)? It is not the value of minibuffer-message-timeout, which is 0.6. Is this expected?

And it behaves differently with the following test code:

(progn (run-with-idle-timer 3 nil
       (lambda ()
         (minibuffer-message “Reverting buffer `%s’." (buffer-name))))
    (call-interactively ‘find-file))

This works well. The prompt is NOT replaced. The message is appended to the end of the prompt and disappears after 0.6 second.