Subject: Re: bug#38560: 27.0.50; Emacs ignores input events during startup

From: Dmitry Gutov <[email-masked]>
Date: Tue, 10 Dec 2019 21:41:02 +0200

On 10.12.2019 18:05, Eli Zaretskii wrote:
>> From: Dmitry Gutov<[email-masked]>
>> Date: Tue, 10 Dec 2019 16:14:19 +0200
>>
>>> I have a configuration that takes 1-2 seconds to boot up.
>>>
>>> In previous versions (including the latest Emacs 26) it was rarely a
>>> problem because I could always start typing while the configuration
>>> finishes loading (e.g. C-x C-f first-chars-of-file-name).
>>>
>>> Emacs 27, however, ignores most of the keystrokes, so when I do that, by
>>> habit, I simply end up in the Scratch buffer with some of the last
>>> characters. E.g. "ile-name" in this example.
> There was some recent change related to discard-input, no?  Here:
> 
>    commit 54c792ece6c20297571aa68c613075c8a8152bcc
>    Author:     Juri Linkov<[email-masked]>
>    AuthorDate: Sat Nov 30 23:33:41 2019 +0200
>    Commit:     Juri Linkov<[email-masked]>
>    CommitDate: Sat Nov 30 23:33:41 2019 +0200
> 
>        * lisp/subr.el: Add discard-input to more functions.
> 
>        * lisp/subr.el (read-char-from-minibuffer-insert-other)
>        (y-or-n-p-insert-other): Use discard-input in case of user mistake.
>        (do-after-load-evaluation): Add discard-input before calling 'message',
>        so in case of the active minibuffer, calling minibuffer-message will allow
>        sit-for to wait the complete timeout, because discard-input will discard
>        all initial events that prevent sit-for from waiting during startup.
>        https://lists.gnu.org/archive/html/emacs-devel/2019-11/msg00581.html

This one is indeed the cuplrit.

And I think it's the change to do-after-load-evaluation that created 
this problem.

/Cc Juri.