Subject: bug#15042: 24.3.50; while-no-input and input-pending-p

From: Stefan Monnier <[email-masked]>
Date: Wed, 07 Aug 2013 21:19:55 -0400

>> > 1.  `input-pending-p' can (and does) return t in cases were no input is
>> > pending (see the doc).  In such cases, `while-no-input' just returns t,
>> > although no input was given.  This contradicts the doc, is not useful
>> > and the behavior is unforeseeable.
>> Those cases where it immediately returns t should hopefully be very
>> similar to those cases where it stops in the middle even tho the event
>> that interrupted it is "ignorable".
> Sure? (What are such "ignorable" events?)  That would mean that binding
> `throw-on-input' also "fires" in cases where no input arrived.

Same as for input-pending-p, I think, yes.  The issue is not really "no
input" but that what you consider as input is not necessarily the same
as what Emacs considers as input.

E.g. Moving the mouse might send mouse-movement events.  Would you consider
that as "input"?  Emacs sometimes does (e.g. when you select text with
the mouse), but in most cases it should be ignored.  Emacs tries to get
it right, but...

> Is there an alternative to cancel a calculation on input without "false
> positives"?

I don't think so.  But we can refine the definition of "input" to ebtter
match the user's expectation.

>> > With the current implementation, I have to `discard-input' if I don't
>> > want this.
>> Can you give an example where you'd want to do that?
> Actually, no.  This was hypothetical, maybe unfounded.

If/when you do, please report it, so we can try and fix it.

        Stefan