Subject: RE: bug#5923: 23.1.95; minibuffer-message discards input events

From: "Drew Adams" <[email-masked]>
Date: Wed, 28 Jul 2010 08:24:09 -0700

> >> Actually, the problem is here in `sit-for':
> >> (let ((read (read-event nil nil seconds)))
> >> (or (null read)
> >> (progn
> >> (if (eq overriding-terminal-local-map 
> >> universal-argument-map)
> >> (setq read (cons t read)))
> >> (push read unread-command-events)
> >> nil))))))
> >> 
> >> Since the value of `overriding-terminal-local-map' is not
> >> `universal-argument-map' in my case, it fails to treat any 
> >> input received properly.
> 
> > However, something else must be going on also, because the 
> > sit-for code is identical for Emacs 22, and I don't see the
> > bug in Emacs 22.
> 
> Thank you for your efforts digging into this bug.  I must say I know
> even less than you do about those parts of the code.  It's clearly too
> intricate for its own good, but I don't know how to streamline it.

Bummer; I'm sorry to hear that, as I had hoped for a fix.

Who wrote the code?  Richard perhaps?
Can't we get someone to understand it and DTRT?

This is after all a regression from Emacs 22.
Can't someone investigate to find out what change
really introduced the regression?

It doesn't seem right that development can break things and then just say that
they can't be fixed because the code is too hard to understand.  I understand
that development of new features and fixing of bugs can sometimes introduce
bugs, including regressions.  But I was hoping this could be fixed (restored).

C-u is a pretty basic part of Emacs.  Seems like this should be fixed before we
worry about adding more bells and whistles to Emacs.