versions: 19.14 ..
`key-binding' misinforms user when used by `describe-key' invoked
inside "text fields" on a key from extent map. It returns C-z binding
from `viper-vi-intercept-minor-mode' (viper mode is on), and in fact
active C-z binding is from extent map. This incorrect binding is
displayed to user. `describe-bindings' works fine.
I observe that `keymap.c' code for `key-binding' really differs from
what `describe-bindings' does. And before going into detail of what
`get_relevant_keymaps' returns: it can go beyond `maps' array bounds
when `(nmaps > countof (maps))'.
In my case it does not happen since last item in array filled by
`get_relevant_keymaps' is always `Vcurrent_global_map', and key
binding from global map is returned, but it can go wrong when there is
no key binding in returned *subset* of relevant keymaps.
If it does not go beyond `maps' array bounds, it can return wrong
value because it never requests all of `nmaps' keymaps and `(nmaps -
countof (maps))' are left unprocessed.
I ran over it all while trying to figure out what goes no in
`wid-edit' "text fields" as described in
<5a243be9612686-gin(a)mo.msk.ru>.
Show replies by date