GNU bug report logs - #15042
24.3.50; while-no-input and input-pending-p

Previous Next

Package: emacs;

Reported by: michael_heerdegen <at> web.de

Date: Wed, 7 Aug 2013 15:41:01 UTC

Severity: minor

Found in version 24.3.50

Done: Lars Ingebrigtsen <larsi <at> gnus.org>

Bug is archived. No further changes may be made.

Full log


Message #8 received at 15042 <at> debbugs.gnu.org (full text, mbox):

From: Stefan Monnier <monnier <at> iro.umontreal.ca>
To: Michael Heerdegen <michael_heerdegen <at> web.de>
Cc: 15042 <at> debbugs.gnu.org, Thierry Volpiatto <thierry.volpiatto <at> gmail.com>
Subject: Re: bug#15042: 24.3.50; while-no-input and input-pending-p
Date: Wed, 07 Aug 2013 14:02:08 -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".

> 2.  Even if `input-pending-p' would not give false alarm sometimes - why
> needs `while-no-input' to use it?

while-no-input is for code which should runs "transparently" without
preventing the user from running his commands.  So if the user has
already typed the next key before we even get to while-no-input, we
definitely should not enter the while-no-input, since while-no-input
is implemented such that it is only interrupted by *new* input.

> 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?

I experienced that
 
 (while-no-input code ...)

is sometimes semantically equivalent to

 t

without any input.

        Stefan




This bug report was last modified 3 years and 324 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.