GNU bug report logs - #6305
24.0.50; Regression: most, but not all, keyboard shortcuts are missing

Previous Next

Package: emacs;

Reported by: "Drew Adams" <drew.adams <at> oracle.com>

Date: Sat, 29 May 2010 21:39:02 UTC

Severity: normal

Found in version 24.0.50

Done: Glenn Morris <rgm <at> gnu.org>

Bug is archived. No further changes may be made.

Full log


View this message in rfc822 format

From: Lennart Borgman <lennart.borgman <at> gmail.com>
To: Stefan Monnier <monnier <at> iro.umontreal.ca>
Cc: 6305 <at> debbugs.gnu.org, Drew Adams <drew.adams <at> oracle.com>
Subject: bug#6305: 24.0.50; Regression: most, but not all, keyboard  shortcuts are missing
Date: Mon, 31 May 2010 18:33:45 +0200
On Mon, May 31, 2010 at 5:31 PM, Stefan Monnier
<monnier <at> iro.umontreal.ca> wrote:
>
>> I have also noticed that key bindings are not always shown in the
>> menus, but I wondered if that was because I was using
>> overriding-terminal-local-map there. I havn't had time to check,
>> however key bindings in global map and normal minor mode maps seems to
>> show up fine in the menus.
>
> I don't know where to start looking without a reproducible recipe.
> The fix for 6171 only touched tmm.el so it can't affect GUI menus.


I think the problem is this:

- Fwhere_is_internal calls Fcurrent_active_maps, but the latter does
not include overriding-terminal-local-map if the first arg is Qnil. It
is Qnil in this case so overriding-terminal-local-map is not
considered.

However using Qt for the first arg is no good either since then only
the overriding map(s) are considered. Obviously Fcurrent_active_maps
behaves this way for the key lookup in the command loop.

Perhaps there should be something like Freally_active_maps ()?


>> In the C code it looks up key bindings like this:
>>   (where-is-internal 'ido-kill-buffer nil t nil nil)
>> However it seems like key remapping is forgotten there.
>
> In which sense?


What was I thinking, I really should learn to be more explicit ... ;-)

Yes, of course it looks at remapping, but for menus it would be good
if this situation was handled too:

- Let us say `kill-buffer' is in the menus.
- It got remapped to `ido-kill-buffer'.

The code in parse_menu_item around line 8008 calls

	  keys = Fwhere_is_internal (def, Qnil, Qt, Qnil, Qnil);

Since the last arg is nil it does not find any binding for
`kill-buffer' AFAICS. Or do I miss something?




This bug report was last modified 14 years and 91 days ago.

Previous Next


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