emacs-devel
[Top][All Lists]
Advanced

[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)
        




reply via email to

[Prev in Thread] Current Thread [Next in Thread]