Thank you for the quick fix, that seems to solve the issue.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))
|