[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: address@hidden: iswitchb bindings lost in with-output-to-temp-buffer
From: |
Stephen Eglen |
Subject: |
Re: address@hidden: iswitchb bindings lost in with-output-to-temp-buffer] |
Date: |
Mon, 4 Feb 2002 10:33:36 -0600 |
Richard Stallman writes:
> My hypothesis is that if view-mode is above iswitchb-mode in
> minor-mode-map-alist, the keybindings for iswitchb-mode are ignored
> within help mode buffers. In version 1 below, I get the "wrong"
> behaviour; in version 2 I get the "right behaviour":
>
> ----
> Version 1: iswitchb-global map will come after view-mode in
> minor-mode-map-alist. C-x b in the help buffers is defined as
> "switch-to-buffer"
>
> % emacs -q
> (iswitchb-mode)
> (describe-variable 'iswitchb-mode)
> (progn (other-window 1) (key-binding "\C-xb"))
>
> It is puzzling that View mode has any effect on C-x b. It does not
> bind C-x or any subcommands of C-x.
>
> Anyway, the failure does not happen for me in the development version.
> It does fail in the 21.2 pretest. So I think this is a bug we
> have fixed. If you can find the change that fixed this, maybe we
> can put it into 21.2.
Ok, I think I found the bug in the 21.1.90 pretest. Just to confirm,
if you run the code above in the 21.1.90 pretest, C-xb is bound to
"switch-to-buffer", whereas it should be "iswitchb-buffer".
Richard just reported this bug has been fixed in the development
version. So, I did a diff of keymap.c between 21.1.90 and the latest
development version. The following diff sounded relevant:
----
Revision 1.240 / (download) / (as text) - [select for diffs] , Thu Oct
18 22:14:34 2001 UTC (3 months, 2 weeks ago) by monnier
Branch: MAIN
Changes since 1.239: +1 -1 lines
Diff to previous 1.239 (colored)
(current_minor_maps): `override' only shadows its
correspondent in minor-mode-map-alist, not the whole tail.
----
And, indeed, when I applied that diff only, I think the bug is fixed.
So, I suggest that the following patch be applied to the 21.1.90
pretest.
Stephen
*** /tmp/keymap.c~ Mon Feb 4 10:30:57 2002
--- /tmp/keymap.c Mon Feb 4 10:30:57 2002
***************
*** 1174,1180 ****
{
val = assq_no_quit (var, lists[0]);
if (!NILP (val))
! break;
}
if (i >= cmm_size)
--- 1174,1180 ----
{
val = assq_no_quit (var, lists[0]);
if (!NILP (val))
! continue;
}
if (i >= cmm_size)