GNU bug report logs -
#9751
23.3; Alternative Keyboard Feature/Bug
Previous Next
Reported by: Nikos Pitsianis <nikos <at> cs.duke.edu>
Date: Fri, 14 Oct 2011 07:19:02 UTC
Severity: normal
Found in version 23.3
Done: Stefan Monnier <monnier <at> iro.umontreal.ca>
Bug is archived. No further changes may be made.
Full log
View this message in rfc822 format
> typing `β' in Info has no effect, it doesn't call `beginning-of-buffer'.
> When typing in Info `C-h k β', it says:
> β is undefined
Ah, thanks, now I see.
So the issue is the following one:
1- keymaps provide a way to hide bindings in parent keymaps (by using an
explicit nil binding), but not to hide a binding in subsequent maps
(e.g. a local map can't hide a binding in the global map).
2- for the main keymaps used to bind keys to commands, we can work around
this limitation by binding the key to the command `undefined'.
3- but function-key-map doesn't know about this convention, so
`undefined' is not recognized as "not bound".
I think it would be good to fix (1), but there are very few keymaps that
are both "special in that the bindings are not commands" and have
a "subsequent keymap" at the same time. Also even if we fix (1), we'd
have to update all the code using `undefined' to use the new special
value (unless we choose `undefined' for that new value, of course).
So I think that fixing (3) is the best choice for now.
Does the patch below work for you?
Stefan
=== modified file 'src/keyboard.c'
--- src/keyboard.c 2011-10-03 20:50:54 +0000
+++ src/keyboard.c 2011-10-24 13:00:50 +0000
@@ -9852,7 +9852,9 @@
}
}
- if (first_binding < nmaps && NILP (submaps[first_binding])
+ if (first_binding < nmaps
+ && NILP (submaps[first_binding])
+ && !EQ (defs[first_binding], Qundefined)
&& indec.start >= t)
/* There is a binding and it's not a prefix.
(and it doesn't have any input-decode-map translation pending).
This bug report was last modified 13 years and 136 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.