* 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 commit is contained in:
Juri Linkov 2019-11-30 23:33:41 +02:00
parent 757e66afdc
commit 54c792ece6

View file

@ -2695,6 +2695,7 @@ Also discard all previous input in the minibuffer."
(interactive)
(delete-minibuffer-contents)
(ding)
(discard-input)
(minibuffer-message "Wrong answer")
(sit-for 2))
@ -2794,6 +2795,7 @@ Also discard all previous input in the minibuffer."
(interactive)
(delete-minibuffer-contents)
(ding)
(discard-input)
(minibuffer-message "Please answer y or n")
(sit-for 2))
@ -4607,7 +4609,7 @@ This function is called directly from the C code."
(string-match "\\.elc?\\>" file))
obarray))
(msg (format "Package %s is deprecated" package))
(fun (lambda (msg) (message "%s" msg))))
(fun (lambda (msg) (discard-input) (message "%s" msg))))
;; Cribbed from cl--compiling-file.
(when (or (not (fboundp 'byte-compile-warning-enabled-p))
(byte-compile-warning-enabled-p 'obsolete package))