GNU bug report logs - #16505
24.3.50; Emacs seems to lose key events when typing fast

Previous Next

Package: emacs;

Reported by: Anders Lindgren <andlind <at> gmail.com>

Date: Mon, 20 Jan 2014 15:26:02 UTC

Severity: important

Found in version 24.3.50

Done: "Jan D." <jan.h.d <at> swipnet.se>

Bug is archived. No further changes may be made.

To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 16505 in the body.
You can then email your comments to 16505 AT debbugs.gnu.org in the normal way.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to bug-gnu-emacs <at> gnu.org:
bug#16505; Package emacs. (Mon, 20 Jan 2014 15:26:02 GMT) Full text and rfc822 format available.

Acknowledgement sent to Anders Lindgren <andlind <at> gmail.com>:
New bug report received and forwarded. Copy sent to bug-gnu-emacs <at> gnu.org. (Mon, 20 Jan 2014 15:26:02 GMT) Full text and rfc822 format available.

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

From: Anders Lindgren <andlind <at> gmail.com>
To: bug-gnu-emacs <at> gnu.org
Subject: 24.3.50; Emacs seems to loose key events when typing fast (seriously)
Date: Mon, 20 Jan 2014 16:25:15 +0100
[Message part 1 (text/plain, inline)]
When typing something fast like <down> <tab> repeated over and over again,
Emacs seems to loose key events. This seems to work correctly on 23.3.

Steps to repeat:

    emacs -Q
    Evaluate:

    (progn (insert "(") (make-string



In GNU Emacs 24.3.50.4 (x86_64-apple-darwin13.0.0, NS apple-appkit-1265.00)
 of 2014-01-16 on macpro.lan
Repository revision: 116039
eggert <at> cs.ucla.edu-20140116062406-oh0d3tsfqytj28ta
Windowing system distributor `Apple', version 10.3.1265
Configured using:
 `configure --with-ns'

Important settings:
  value of $LC_CTYPE: UTF-8
  locale-coding-system: utf-8-unix

Major mode: Lisp Interaction

Minor modes in effect:
  tooltip-mode: t
  electric-indent-mode: t
  mouse-wheel-mode: t
  tool-bar-mode: t
  menu-bar-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  blink-cursor-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t
  line-number-mode: t
  transient-mark-mode: t

Recent input:
<escape> x r e p o <tab> r <tab> <return>

Recent messages:
For information about GNU Emacs and the GNU system, type C-h C-a.
Making completion list...

Load-path shadows:
None found.

Features:
(shadow sort gnus-util mail-extr emacsbug message format-spec rfc822 mml
mml-sec mm-decode mm-bodies mm-encode mail-parse rfc2231 mailabbrev
gmm-utils mailheader sendmail rfc2047 rfc2045 ietf-drums mm-util
help-fns mail-prsvr mail-utils help-mode easymenu time-date tooltip
electric uniquify ediff-hook vc-hooks lisp-float-type mwheel ns-win
tool-bar dnd fontset image regexp-opt fringe tabulated-list newcomment
lisp-mode prog-mode register page menu-bar rfn-eshadow timer select
scroll-bar mouse jit-lock font-lock syntax facemenu font-core frame cham
georgian utf-8-lang misc-lang vietnamese tibetan thai tai-viet lao
korean japanese hebrew greek romanian slovak czech european ethiopic
indian cyrillic chinese case-table epa-hook jka-cmpr-hook help simple
abbrev minibuffer nadvice loaddefs button faces cus-face macroexp files
text-properties overlay sha1 md5 base64 format env code-pages mule
custom widget hashtable-print-readable backquote make-network-process
cocoa ns multi-tty emacs)
[Message part 2 (text/html, inline)]

Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#16505; Package emacs. (Mon, 20 Jan 2014 15:37:02 GMT) Full text and rfc822 format available.

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

From: Anders Lindgren <andlind <at> gmail.com>
To: 16505 <at> debbugs.gnu.org
Subject: Re: bug#16505: Acknowledgement (24.3.50; Emacs seems to loose key
 events when typing fast (seriously))
Date: Mon, 20 Jan 2014 16:36:12 +0100
[Message part 1 (text/plain, inline)]
I just sent out the previous letter before it was finished, so here comes
the rest of it (sorry about that):

Steps to repeat:

    emacs -Q
    Evaluate the following:
    (save-excursion
     (insert "(")
     (dotimes (x 10) (insert "abc\n")))
    C-g       (Just to know where you are in C-h l)
    Now press TAB and down arrow over and over again, as fast as you can,
like you're reindenting code.
    After a few lines, Emacs stops to indent. Looking at the end of C-h l,
you will see something like:

C-g <tab> <down> <down>
<tab> <down> <tab> <down> <tab> <down> <tab> C-h l

    Here, a <tab> is missing, which explains the indentation problems.

Sincerely,
    Anders Lindgren



On Mon, Jan 20, 2014 at 4:26 PM, GNU bug Tracking System <
help-debbugs <at> gnu.org> wrote:

> Thank you for filing a new bug report with debbugs.gnu.org.
>
> This is an automatically generated reply to let you know your message
> has been received.
>
> Your message is being forwarded to the package maintainers and other
> interested parties for their attention; they will reply in due course.
>
> Your message has been sent to the package maintainer(s):
>  bug-gnu-emacs <at> gnu.org
>
> If you wish to submit further information on this problem, please
> send it to 16505 <at> debbugs.gnu.org.
>
> Please do not send mail to help-debbugs <at> gnu.org unless you wish
> to report a problem with the Bug-tracking system.
>
> --
> 16505: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=16505
> GNU Bug Tracking System
> Contact help-debbugs <at> gnu.org with problems
>
[Message part 2 (text/html, inline)]

Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#16505; Package emacs. (Fri, 07 Feb 2014 14:18:01 GMT) Full text and rfc822 format available.

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

From: Anders Lindgren <andlind <at> gmail.com>
To: 16505 <at> debbugs.gnu.org
Subject: Re: bug#16505: Acknowledgement (24.3.50; Emacs seems to loose key
 events when typing fast (seriously))
Date: Fri, 7 Feb 2014 15:17:46 +0100
[Message part 1 (text/plain, inline)]
I have looked a little bit into this (even though I haven't found much).

The following are the key bzr revisions:

    110785 -- OK

    110786..110811 -- Don't build on OS X (error during dump)

    110812..111504 -- Broken in another way. When pressing <down> <tab>
over an over again, Emacs gets stuck. Neither <tab> nor <down> will do
anything. However, typing a plain character makes Emacs escape this state
and start being responsive again. This seems to be an OS X related problem,
as the fix was applied to nsterm.m.

    111505 -- Broken as described in the original posts.

I hope this can shed some light on this, as this is a real problem that
will affect lots of users. One thing we should try to figure out is if this
is a problem specific to OS X, or if it is generic.

Sincerely,
    Anders Lindgren


On Mon, Jan 20, 2014 at 4:36 PM, Anders Lindgren <andlind <at> gmail.com> wrote:

> I just sent out the previous letter before it was finished, so here comes
> the rest of it (sorry about that):
>
> Steps to repeat:
>
>     emacs -Q
>     Evaluate the following:
>     (save-excursion
>      (insert "(")
>      (dotimes (x 10) (insert "abc\n")))
>     C-g       (Just to know where you are in C-h l)
>     Now press TAB and down arrow over and over again, as fast as you can,
> like you're reindenting code.
>     After a few lines, Emacs stops to indent. Looking at the end of C-h l,
> you will see something like:
>
> C-g <tab> <down> <down>
> <tab> <down> <tab> <down> <tab> <down> <tab> C-h l
>
>     Here, a <tab> is missing, which explains the indentation problems.
>
> Sincerely,
>     Anders Lindgren
>
>
>
> On Mon, Jan 20, 2014 at 4:26 PM, GNU bug Tracking System <
> help-debbugs <at> gnu.org> wrote:
>
>> Thank you for filing a new bug report with debbugs.gnu.org.
>>
>> This is an automatically generated reply to let you know your message
>> has been received.
>>
>> Your message is being forwarded to the package maintainers and other
>> interested parties for their attention; they will reply in due course.
>>
>> Your message has been sent to the package maintainer(s):
>>  bug-gnu-emacs <at> gnu.org
>>
>> If you wish to submit further information on this problem, please
>> send it to 16505 <at> debbugs.gnu.org.
>>
>> Please do not send mail to help-debbugs <at> gnu.org unless you wish
>> to report a problem with the Bug-tracking system.
>>
>> --
>> 16505: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=16505
>> GNU Bug Tracking System
>> Contact help-debbugs <at> gnu.org with problems
>>
>
>
[Message part 2 (text/html, inline)]

Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#16505; Package emacs. (Fri, 07 Feb 2014 16:07:01 GMT) Full text and rfc822 format available.

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

From: Dmitry Antipov <dmantipov <at> yandex.ru>
To: Anders Lindgren <andlind <at> gmail.com>
Cc: 16505 <at> debbugs.gnu.org
Subject: Re: bug#16505: Acknowledgement (24.3.50; Emacs seems to loose key
 events when typing fast (seriously))
Date: Fri, 07 Feb 2014 20:06:25 +0400
On 02/07/2014 06:17 PM, Anders Lindgren wrote:

> Here, a <tab> is missing, which explains the indentation problems.

Hmm...IMHO we shouldn't believe in anyone's fingers in such a case :-).

Do you have a tool to fake user input? On X, we have xdotool. I've tried
to insert 100 <tab> and 100 <down> with 0.05s delay between each "keypress":

xdotool selectwindow ==> (record window ID)

seq 99 -1 0 | xargs -n1 sh -c 'xdotool key --window $ID 23 && sleep 0.05 && xdotool key --window $ID 116 && sleep 0.05'

(23 is X keycode for <tab> and <116> for <down>) and there was 100 <tab> and
100 <down>, respectively...

Dmitry





Changed bug title to '24.3.50; Emacs seems to lose key events when typing fast' from '24.3.50; Emacs seems to loose key events when typing fast (seriously)' Request was from Glenn Morris <rgm <at> gnu.org> to control <at> debbugs.gnu.org. (Fri, 07 Feb 2014 17:19:02 GMT) Full text and rfc822 format available.

Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#16505; Package emacs. (Fri, 07 Feb 2014 21:04:02 GMT) Full text and rfc822 format available.

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

From: Anders Lindgren <andlind <at> gmail.com>
To: Dmitry Antipov <dmantipov <at> yandex.ru>
Cc: 16505 <at> debbugs.gnu.org
Subject: Re: bug#16505: Acknowledgement (24.3.50; Emacs seems to loose key
 events when typing fast (seriously))
Date: Fri, 7 Feb 2014 22:03:44 +0100
[Message part 1 (text/plain, inline)]
Hi!

I understand your scepticism about my fingers ;) However, the problem is
quite apparent, I get bitten by it several times per day. Also, it occurs
consistently when doing the <tab> <down> sequence in recent versions from
the trunk. On older versions, however, I don't see this behaviour at all.

Anyway, I tried to script this using AppleScript, asking the "System Event"
to send keycodes for <tab> and <down>. Unfortunately, Emacs behaves
perfectly and doesn't loose any key event when scripted.

Just for the record, this is the script I used:

repeat 100 times
    tell application "System Events" to key code 48      -- TAB
    tell application "System Events" to key code 125     -- DOWN
end

I started it from within emacs using M-! osascript xxx.osa RET

One approach to find the faulty revision is to back-patch the fix in 111505
into the revisions 110812-111504 to see if one of those revisions
introduced the problem. (If the problem is in the sequence 110786-110811,
it will be harder to track down, as they don't build properly). I will try
to find the time to do this, but I can't give any guarantees...

    -- Anders


On Fri, Feb 7, 2014 at 5:06 PM, Dmitry Antipov <dmantipov <at> yandex.ru> wrote:

> On 02/07/2014 06:17 PM, Anders Lindgren wrote:
>
>  Here, a <tab> is missing, which explains the indentation problems.
>>
>
> Hmm...IMHO we shouldn't believe in anyone's fingers in such a case :-).
>
> Do you have a tool to fake user input? On X, we have xdotool. I've tried
> to insert 100 <tab> and 100 <down> with 0.05s delay between each
> "keypress":
>
> xdotool selectwindow ==> (record window ID)
>
> seq 99 -1 0 | xargs -n1 sh -c 'xdotool key --window $ID 23 && sleep 0.05
> && xdotool key --window $ID 116 && sleep 0.05'
>
> (23 is X keycode for <tab> and <116> for <down>) and there was 100 <tab>
> and
> 100 <down>, respectively...
>
> Dmitry
>
>
[Message part 2 (text/html, inline)]

Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#16505; Package emacs. (Sat, 08 Feb 2014 00:16:02 GMT) Full text and rfc822 format available.

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

From: Lars Ingebrigtsen <larsi <at> gnus.org>
To: Dmitry Antipov <dmantipov <at> yandex.ru>
Cc: 16505 <at> debbugs.gnu.org, Anders Lindgren <andlind <at> gmail.com>
Subject: Re: bug#16505: Acknowledgement (24.3.50;
 Emacs seems to loose key events when typing fast (seriously))
Date: Fri, 07 Feb 2014 16:14:10 -0800
Dmitry Antipov <dmantipov <at> yandex.ru> writes:

>> Here, a <tab> is missing, which explains the indentation problems.
>
> Hmm...IMHO we shouldn't believe in anyone's fingers in such a case :-).

I have seen Emacs drop characters if you keep Emacs busy doing other
things, like showing an animated image.  Emacs didn't use to lose
characters in that scenario.

-- 
(domestic pets only, the antidote for overdose, milk.)
  bloggy blog http://lars.ingebrigtsen.no/




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#16505; Package emacs. (Sat, 08 Feb 2014 08:48:01 GMT) Full text and rfc822 format available.

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

From: Eli Zaretskii <eliz <at> gnu.org>
To: Lars Ingebrigtsen <larsi <at> gnus.org>
Cc: 16505 <at> debbugs.gnu.org, dmantipov <at> yandex.ru, andlind <at> gmail.com
Subject: Re: bug#16505: Acknowledgement (24.3.50;
 Emacs seems to loose key events when typing fast (seriously))
Date: Sat, 08 Feb 2014 10:47:27 +0200
> From: Lars Ingebrigtsen <larsi <at> gnus.org>
> Date: Fri, 07 Feb 2014 16:14:10 -0800
> Cc: 16505 <at> debbugs.gnu.org, Anders Lindgren <andlind <at> gmail.com>
> 
> I have seen Emacs drop characters if you keep Emacs busy doing other
> things, like showing an animated image.  Emacs didn't use to lose
> characters in that scenario.

I have a hard time believing this.  Unless the OS itself drops the
characters (and I don't think any modern OS does), you'd have to come
with a plausible hypothesis for how this can happen on a particular OS
with a particular mechanism of keyboard input handling by Emacs on
that OS.

Doesn't the OS buffer keys without discarding them until the
application actually reads them?

On systems that use interrupts for Emacs keyboard input, what happens
with the keys you type if the interrupts are blocked for prolonged
times?  I hope Emacs never ignores these interrupts, but what happens
if it does?

Once a key was read by Emacs, there's simply no mechanism in Emacs I
know of to "drop" it.




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#16505; Package emacs. (Sat, 08 Feb 2014 10:24:01 GMT) Full text and rfc822 format available.

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

From: Lars Ingebrigtsen <larsi <at> gnus.org>
To: Eli Zaretskii <eliz <at> gnu.org>
Cc: 16505 <at> debbugs.gnu.org, dmantipov <at> yandex.ru, andlind <at> gmail.com
Subject: Re: bug#16505: Acknowledgement (24.3.50;
 Emacs seems to loose key events when typing fast (seriously))
Date: Sat, 08 Feb 2014 02:22:30 -0800
Eli Zaretskii <eliz <at> gnu.org> writes:

> I have a hard time believing this.  Unless the OS itself drops the
> characters (and I don't think any modern OS does), you'd have to come
> with a plausible hypothesis for how this can happen on a particular OS
> with a particular mechanism of keyboard input handling by Emacs on
> that OS.

I just tells em as I sees em.

I've been unable to come up with a test case, though.

-- 
(domestic pets only, the antidote for overdose, milk.)
  bloggy blog http://lars.ingebrigtsen.no/




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#16505; Package emacs. (Sat, 08 Feb 2014 10:55:02 GMT) Full text and rfc822 format available.

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

From: Eli Zaretskii <eliz <at> gnu.org>
To: Lars Ingebrigtsen <larsi <at> gnus.org>
Cc: 16505 <at> debbugs.gnu.org, dmantipov <at> yandex.ru, andlind <at> gmail.com
Subject: Re: bug#16505: Acknowledgement (24.3.50;
 Emacs seems to loose key events when typing fast (seriously))
Date: Sat, 08 Feb 2014 12:53:52 +0200
> From: Lars Ingebrigtsen <larsi <at> gnus.org>
> Cc: dmantipov <at> yandex.ru,  16505 <at> debbugs.gnu.org,  andlind <at> gmail.com
> Date: Sat, 08 Feb 2014 02:22:30 -0800
> 
> Eli Zaretskii <eliz <at> gnu.org> writes:
> 
> > I have a hard time believing this.  Unless the OS itself drops the
> > characters (and I don't think any modern OS does), you'd have to come
> > with a plausible hypothesis for how this can happen on a particular OS
> > with a particular mechanism of keyboard input handling by Emacs on
> > that OS.
> 
> I just tells em as I sees em.

I understand that.  I'm saying we will need a good working hypothesis
for how this can happen, before we will be able to do anything about
this.




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#16505; Package emacs. (Sat, 08 Feb 2014 20:05:01 GMT) Full text and rfc822 format available.

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

From: Anders Lindgren <andlind <at> gmail.com>
To: 16505 <at> debbugs.gnu.org
Cc: larsi <at> gnus.org, Dmitry Antipov <dmantipov <at> yandex.ru>,
 Eli Zaretskii <eliz <at> gnu.org>
Subject: Re: bug#16505: Acknowledgement (24.3.50; Emacs seems to loose key
 events when typing fast (seriously))
Date: Sat, 8 Feb 2014 21:04:13 +0100
[Message part 1 (text/plain, inline)]
Hi!

I have narrowed down the possible bzr revision candidates.

By back-applying 111505 into earlier revisions I have concluded that 110812
contains the problem. To ensure that the problem wasn't caused by 111505
itself, I also applied it to 110785 (the last revision without this
problem) without introducing the "key dropped" problem. In other words, the
problem must have been introduced somewhere in the range 110796..110811.

Unfortunately, I get a build error below for these revisions. The build
error is "not enough room for load commands for new __DATA segments", which
is issued from deep inside the "unexmacosx.c" module. I have no insight
into the "unexec" process, so this has stopped me from narrowing down the
problem further.

Any suggestions on moving forward would be welcome -- for example, would it
be possible to run Emacs undumped, avoiding unexec all together?

    -- Anders


On Fri, Feb 7, 2014 at 10:03 PM, Anders Lindgren <andlind <at> gmail.com> wrote:

> Hi!
>
> I understand your scepticism about my fingers ;) However, the problem is
> quite apparent, I get bitten by it several times per day. Also, it occurs
> consistently when doing the <tab> <down> sequence in recent versions from
> the trunk. On older versions, however, I don't see this behaviour at all.
>
> Anyway, I tried to script this using AppleScript, asking the "System
> Event" to send keycodes for <tab> and <down>. Unfortunately, Emacs behaves
> perfectly and doesn't loose any key event when scripted.
>
> Just for the record, this is the script I used:
>
> repeat 100 times
>     tell application "System Events" to key code 48      -- TAB
>     tell application "System Events" to key code 125     -- DOWN
> end
>
> I started it from within emacs using M-! osascript xxx.osa RET
>
> One approach to find the faulty revision is to back-patch the fix in
> 111505 into the revisions 110812-111504 to see if one of those revisions
> introduced the problem. (If the problem is in the sequence 110786-110811,
> it will be harder to track down, as they don't build properly). I will try
> to find the time to do this, but I can't give any guarantees...
>
>     -- Anders
>
>
> On Fri, Feb 7, 2014 at 5:06 PM, Dmitry Antipov <dmantipov <at> yandex.ru>wrote:
>
>> On 02/07/2014 06:17 PM, Anders Lindgren wrote:
>>
>>  Here, a <tab> is missing, which explains the indentation problems.
>>>
>>
>> Hmm...IMHO we shouldn't believe in anyone's fingers in such a case :-).
>>
>> Do you have a tool to fake user input? On X, we have xdotool. I've tried
>> to insert 100 <tab> and 100 <down> with 0.05s delay between each
>> "keypress":
>>
>> xdotool selectwindow ==> (record window ID)
>>
>> seq 99 -1 0 | xargs -n1 sh -c 'xdotool key --window $ID 23 && sleep 0.05
>> && xdotool key --window $ID 116 && sleep 0.05'
>>
>> (23 is X keycode for <tab> and <116> for <down>) and there was 100 <tab>
>> and
>> 100 <down>, respectively...
>>
>> Dmitry
>>
>>
>
[Message part 2 (text/html, inline)]

Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#16505; Package emacs. (Sat, 08 Feb 2014 20:30:03 GMT) Full text and rfc822 format available.

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

From: Eli Zaretskii <eliz <at> gnu.org>
To: Anders Lindgren <andlind <at> gmail.com>
Cc: 16505 <at> debbugs.gnu.org, larsi <at> gnus.org, dmantipov <at> yandex.ru
Subject: Re: bug#16505: Acknowledgement (24.3.50;
 Emacs seems to loose key events when typing fast (seriously))
Date: Sat, 08 Feb 2014 22:29:38 +0200
> Date: Sat, 8 Feb 2014 21:04:13 +0100
> From: Anders Lindgren <andlind <at> gmail.com>
> Cc: Dmitry Antipov <dmantipov <at> yandex.ru>, larsi <at> gnus.org, Eli Zaretskii <eliz <at> gnu.org>
> 
> By back-applying 111505 into earlier revisions I have concluded that 110812
> contains the problem. To ensure that the problem wasn't caused by 111505
> itself, I also applied it to 110785 (the last revision without this
> problem) without introducing the "key dropped" problem. In other words, the
> problem must have been introduced somewhere in the range 110796..110811.

If that is the range, the only relevant commit seems to be 110802.

> Unfortunately, I get a build error below for these revisions. The build
> error is "not enough room for load commands for new __DATA segments", which
> is issued from deep inside the "unexmacosx.c" module. I have no insight
> into the "unexec" process, so this has stopped me from narrowing down the
> problem further.
> 
> Any suggestions on moving forward would be welcome -- for example, would it
> be possible to run Emacs undumped, avoiding unexec all together?

Try reverting only 110802.




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#16505; Package emacs. (Sun, 09 Feb 2014 12:57:01 GMT) Full text and rfc822 format available.

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

From: Anders Lindgren <andlind <at> gmail.com>
To: Eli Zaretskii <eliz <at> gnu.org>
Cc: 16505 <at> debbugs.gnu.org, larsi <at> gnus.org, Dmitry Antipov <dmantipov <at> yandex.ru>
Subject: Re: bug#16505: Acknowledgement (24.3.50; Emacs seems to loose key
 events when typing fast (seriously))
Date: Sun, 9 Feb 2014 13:56:16 +0100
[Message part 1 (text/plain, inline)]
Got it! It's revision 110793 -- this is a change to nsterm.m (hence an OS
X-specific problem).

The bzr log is as follows:

revno: 110793
fixes bug: http://debbugs.gnu.org/8680
author: Michael Marchionna <tralfaz <at> pacbell.net>
committer: Chong Yidong <cyd <at> gnu.org>
branch nick: trunk
timestamp: Sun 2012-11-04 11:34:10 +0800
message:
  * nsterm.m: Add NSClearLineFunctionKey and keypad keys.
  (keyDown): Remap keypad keys to X11 virtual key codes.

When looking at the code, it's unfortunately not obvious (to me) what the
cause is...

    -- Anders



On Sat, Feb 8, 2014 at 9:29 PM, Eli Zaretskii <eliz <at> gnu.org> wrote:

> > Date: Sat, 8 Feb 2014 21:04:13 +0100
> > From: Anders Lindgren <andlind <at> gmail.com>
> > Cc: Dmitry Antipov <dmantipov <at> yandex.ru>, larsi <at> gnus.org, Eli Zaretskii
> <eliz <at> gnu.org>
> >
> > By back-applying 111505 into earlier revisions I have concluded that
> 110812
> > contains the problem. To ensure that the problem wasn't caused by 111505
> > itself, I also applied it to 110785 (the last revision without this
> > problem) without introducing the "key dropped" problem. In other words,
> the
> > problem must have been introduced somewhere in the range 110796..110811.
>
> If that is the range, the only relevant commit seems to be 110802.
>
> > Unfortunately, I get a build error below for these revisions. The build
> > error is "not enough room for load commands for new __DATA segments",
> which
> > is issued from deep inside the "unexmacosx.c" module. I have no insight
> > into the "unexec" process, so this has stopped me from narrowing down the
> > problem further.
> >
> > Any suggestions on moving forward would be welcome -- for example, would
> it
> > be possible to run Emacs undumped, avoiding unexec all together?
>
> Try reverting only 110802.
>
[Message part 2 (text/html, inline)]

Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#16505; Package emacs. (Sun, 16 Feb 2014 07:44:02 GMT) Full text and rfc822 format available.

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

From: Anders Lindgren <andlind <at> gmail.com>
To: Eli Zaretskii <eliz <at> gnu.org>
Cc: 16505 <at> debbugs.gnu.org, Lars Ingebrigtsen <larsi <at> gnus.org>,
 Dmitry Antipov <dmantipov <at> yandex.ru>
Subject: Re: bug#16505: Acknowledgement (24.3.50; Emacs seems to loose key
 events when typing fast (seriously))
Date: Sun, 16 Feb 2014 08:42:46 +0100
[Message part 1 (text/plain, inline)]
Hi!

I got some time to track down the problem. It appears as though the OS
sometimes adds a spurious "key pad" flag to keys not on the key pad. The
way the nsterm.m is implemented, it fails to look them up making the key
dead.

The following patch will first try to lookup the key as a keypad key, and
if that fails, it will look it up as a plain key.

I have talked to the author of the 110793 revision and he has confirmed
that my patch works OK.

Unfortunately, I don't have write access to the bzr archive, so I can't
commit this myself.

=== modified file 'src/nsterm.m'
--- src/nsterm.m 2014-02-10 22:15:54 +0000
+++ src/nsterm.m 2014-02-15 07:01:48 +0000
@@ -5119,9 +5119,17 @@
       /* (Carbon way: [theEvent keyCode]) */

       /* is it a "function key"? */
-      fnKeysym = (code < 0x00ff && (flags&NSNumericPadKeyMask))
- ? ns_convert_key ([theEvent keyCode] | NSNumericPadKeyMask)
- : ns_convert_key (code);
+      /* Note: Sometimes a plain key will have the NSNumericPadKeyMask
+         flag set (this is probably a bug in the OS).
+      */
+      if (code < 0x00ff && (flags&NSNumericPadKeyMask))
+        {
+          fnKeysym = ns_convert_key ([theEvent keyCode] |
NSNumericPadKeyMask);
+        }
+      if (fnKeysym == 0)
+        {
+          fnKeysym = ns_convert_key (code);
+        }

       if (fnKeysym)
         {



Sincerely,
    Anders Lindgren



On Sun, Feb 9, 2014 at 1:56 PM, Anders Lindgren <andlind <at> gmail.com> wrote:

> Got it! It's revision 110793 -- this is a change to nsterm.m (hence an OS
> X-specific problem).
>
> The bzr log is as follows:
>
> revno: 110793
> fixes bug: http://debbugs.gnu.org/8680
> author: Michael Marchionna <tralfaz <at> pacbell.net>
> committer: Chong Yidong <cyd <at> gnu.org>
> branch nick: trunk
> timestamp: Sun 2012-11-04 11:34:10 +0800
> message:
>   * nsterm.m: Add NSClearLineFunctionKey and keypad keys.
>   (keyDown): Remap keypad keys to X11 virtual key codes.
>
> When looking at the code, it's unfortunately not obvious (to me) what the
> cause is...
>
>     -- Anders
>
>
>
> On Sat, Feb 8, 2014 at 9:29 PM, Eli Zaretskii <eliz <at> gnu.org> wrote:
>
>> > Date: Sat, 8 Feb 2014 21:04:13 +0100
>> > From: Anders Lindgren <andlind <at> gmail.com>
>> > Cc: Dmitry Antipov <dmantipov <at> yandex.ru>, larsi <at> gnus.org, Eli
>> Zaretskii <eliz <at> gnu.org>
>> >
>> > By back-applying 111505 into earlier revisions I have concluded that
>> 110812
>> > contains the problem. To ensure that the problem wasn't caused by 111505
>> > itself, I also applied it to 110785 (the last revision without this
>> > problem) without introducing the "key dropped" problem. In other words,
>> the
>> > problem must have been introduced somewhere in the range 110796..110811.
>>
>> If that is the range, the only relevant commit seems to be 110802.
>>
>> > Unfortunately, I get a build error below for these revisions. The build
>> > error is "not enough room for load commands for new __DATA segments",
>> which
>> > is issued from deep inside the "unexmacosx.c" module. I have no insight
>> > into the "unexec" process, so this has stopped me from narrowing down
>> the
>> > problem further.
>> >
>> > Any suggestions on moving forward would be welcome -- for example,
>> would it
>> > be possible to run Emacs undumped, avoiding unexec all together?
>>
>> Try reverting only 110802.
>>
>
>
[Message part 2 (text/html, inline)]

Reply sent to "Jan D." <jan.h.d <at> swipnet.se>:
You have taken responsibility. (Sun, 16 Feb 2014 09:53:02 GMT) Full text and rfc822 format available.

Notification sent to Anders Lindgren <andlind <at> gmail.com>:
bug acknowledged by developer. (Sun, 16 Feb 2014 09:53:02 GMT) Full text and rfc822 format available.

Message #48 received at 16505-done <at> debbugs.gnu.org (full text, mbox):

From: "Jan D." <jan.h.d <at> swipnet.se>
To: Anders Lindgren <andlind <at> gmail.com>
Cc: 16505-done <at> debbugs.gnu.org, Eli Zaretskii <eliz <at> gnu.org>,
 Dmitry Antipov <dmantipov <at> yandex.ru>, Lars Ingebrigtsen <larsi <at> gnus.org>
Subject: Re: bug#16505: Acknowledgement (24.3.50; Emacs seems to loose key
 events when typing fast (seriously))
Date: Sun, 16 Feb 2014 10:52:25 +0100
Anders Lindgren skrev 2014-02-16 08:42:
> Hi!
>

Hello.

> I got some time to track down the problem. It appears as though the OS
> sometimes adds a spurious "key pad" flag to keys not on the key pad. The
> way the nsterm.m is implemented, it fails to look them up making the key
> dead.
>
> The following patch will first try to lookup the key as a keypad key,
> and if that fails, it will look it up as a plain key.

Checked in, thanks.

	Jan D.

>
> I have talked to the author of the 110793 revision and he has confirmed
> that my patch works OK.
>
> Unfortunately, I don't have write access to the bzr archive, so I can't
> commit this myself.
>
> === modified file 'src/nsterm.m'
> --- src/nsterm.m2014-02-10 22:15:54 +0000
> +++ src/nsterm.m2014-02-15 07:01:48 +0000
> @@ -5119,9 +5119,17 @@
>         /* (Carbon way: [theEvent keyCode]) */
>         /* is it a "function key"? */
> -      fnKeysym = (code < 0x00ff && (flags&NSNumericPadKeyMask))
> -? ns_convert_key ([theEvent keyCode] | NSNumericPadKeyMask)
> -: ns_convert_key (code);
> +      /* Note: Sometimes a plain key will have the NSNumericPadKeyMask
> +         flag set (this is probably a bug in the OS).
> +      */
> +      if (code < 0x00ff && (flags&NSNumericPadKeyMask))
> +        {
> +          fnKeysym = ns_convert_key ([theEvent keyCode] |
> NSNumericPadKeyMask);
> +        }
> +      if (fnKeysym == 0)
> +        {
> +          fnKeysym = ns_convert_key (code);
> +        }
>         if (fnKeysym)
>           {
>
>
>
> Sincerely,
>      Anders Lindgren
>
>
>
> On Sun, Feb 9, 2014 at 1:56 PM, Anders Lindgren <andlind <at> gmail.com
> <mailto:andlind <at> gmail.com>> wrote:
>
>     Got it! It's revision 110793 -- this is a change to nsterm.m (hence
>     an OS X-specific problem).
>
>     The bzr log is as follows:
>
>     revno: 110793
>     fixes bug: http://debbugs.gnu.org/8680
>     author: Michael Marchionna <tralfaz <at> pacbell.net
>     <mailto:tralfaz <at> pacbell.net>>
>     committer: Chong Yidong <cyd <at> gnu.org <mailto:cyd <at> gnu.org>>
>     branch nick: trunk
>     timestamp: Sun 2012-11-04 11:34:10 +0800
>     message:
>        * nsterm.m: Add NSClearLineFunctionKey and keypad keys.
>        (keyDown): Remap keypad keys to X11 virtual key codes.
>
>     When looking at the code, it's unfortunately not obvious (to me)
>     what the cause is...
>
>          -- Anders
>
>
>
>     On Sat, Feb 8, 2014 at 9:29 PM, Eli Zaretskii <eliz <at> gnu.org
>     <mailto:eliz <at> gnu.org>> wrote:
>
>          > Date: Sat, 8 Feb 2014 21:04:13 +0100
>          > From: Anders Lindgren <andlind <at> gmail.com
>         <mailto:andlind <at> gmail.com>>
>          > Cc: Dmitry Antipov <dmantipov <at> yandex.ru
>         <mailto:dmantipov <at> yandex.ru>>, larsi <at> gnus.org
>         <mailto:larsi <at> gnus.org>, Eli Zaretskii <eliz <at> gnu.org
>         <mailto:eliz <at> gnu.org>>
>          >
>          > By back-applying 111505 into earlier revisions I have
>         concluded that 110812
>          > contains the problem. To ensure that the problem wasn't
>         caused by 111505
>          > itself, I also applied it to 110785 (the last revision
>         without this
>          > problem) without introducing the "key dropped" problem. In
>         other words, the
>          > problem must have been introduced somewhere in the range
>         110796..110811.
>
>         If that is the range, the only relevant commit seems to be 110802.
>
>          > Unfortunately, I get a build error below for these revisions.
>         The build
>          > error is "not enough room for load commands for new __DATA
>         segments", which
>          > is issued from deep inside the "unexmacosx.c" module. I have
>         no insight
>          > into the "unexec" process, so this has stopped me from
>         narrowing down the
>          > problem further.
>          >
>          > Any suggestions on moving forward would be welcome -- for
>         example, would it
>          > be possible to run Emacs undumped, avoiding unexec all together?
>
>         Try reverting only 110802.
>
>
>





bug archived. Request was from Debbugs Internal Request <help-debbugs <at> gnu.org> to internal_control <at> debbugs.gnu.org. (Sun, 16 Mar 2014 11:24:03 GMT) Full text and rfc822 format available.

This bug report was last modified 10 years and 65 days ago.

Previous Next


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