Applying this patch and repeating the same kind of testing procedure produced the expected result.
On 24 Nov 2018, at 19:40, Eli Zaretskii <
eliz@gnu.org> wrote:
From: Terje Larsen <terje.larsen@klarna.com>
Date: Sat, 24 Nov 2018 12:56:19 +0100
M-x auto-save-visited-mode
M-: (message "%s" "hello")
... Wait 5 seconds ...
Now the message buffer gets cleared and you lose the message. This is
causing usability issues when using eldoc/reading some output message as
it continously gets cleared.
I would expect the `auto-save-visited' feature to not change the behaviour
of the Echo Area. If you compare this to the `auto-save-mode' which
outputs a message indicating a save, but restores the Echo Area after.
I have tracked down this to the `save-some-buffers' function or more
specifically the `map-y-or-n-p' function that it calls. In this function
there is a call to message like `(message "")`.
Right. Does the patch below fix the problem?diff --git a/lisp/emacs-lisp/map-ynp.el b/lisp/emacs-lisp/map-ynp.elindex 8260af5..93235bd 100644--- a/lisp/emacs-lisp/map-ynp.el+++ b/lisp/emacs-lisp/map-ynp.el@@ -79,6 +79,7 @@ map-y-or-n-pReturns the number of actions taken." (let* ((actions 0)+ (msg (current-message)) user-keys mouse-event map prompt char elt def ;; Non-nil means we should use mouse menus to ask. use-menus@@ -250,9 +251,10 @@ map-y-or-n-p (if delayed-switch-frame (setq unread-command-events (cons delayed-switch-frame unread-command-events))))- ;; Clear the last prompt from the minibuffer.+ ;; Clear the last prompt from the minibuffer, and restore the+ ;; previous echo-area message, if any. (let ((message-log-max nil))- (message ""))+ (message (or msg ""))) ;; Return the number of actions that were taken. actions))