Subject: bug#40774: Error messages shouldn't be hidden when the user is idle

From: Juri Linkov <[email-masked]>
Date: Sun, 05 Dec 2021 20:54:20 +0200

>> +      if (NILP (preserve))
>> +        {
>> +          echo_area_buffer[0] = Qnil;
>> +          message_cleared_p = true;
>> +        }
>
> It an interesting idea, but I don't think this would be a
> backwards-compatible implementation.  Today, the return value of
> clear-message-function isn't used, so we have to assume that users of
> that variable returns...  whatever.  Giving it semantics now would lead
> to the message area being preserved unexpectedly.

To be able to use clear-message-function in Emacs 29,
we need to issue a notification in Emacs 28 NEWS:

diff --git a/etc/NEWS b/etc/NEWS
index 8e38c3690c..69d00a8bf1 100644
--- a/etc/NEWS
+++ b/etc/NEWS
@@ -3327,6 +3327,10 @@ This new 'etc-authors-mode' provides font-locking for displaying the
 
 * Incompatible Lisp Changes in Emacs 28.1
 
+---
+** The return value of 'clear-message-function' will change in later releases.
+When it will return a non-nil, the echo area won't be cleared.
+
 +++
 ** Emacs now prints a backtrace when signaling an error in batch mode.
 This makes debugging Emacs Lisp scripts run in batch mode easier.  To
--