GNU bug report logs -
#8799
23.3; iswitchb
Previous Next
Reported by: Stephen Eglen <S.J.Eglen <at> damtp.cam.ac.uk>
Date: Sat, 4 Jun 2011 09:43:02 UTC
Severity: normal
Found in version 23.3
Fixed in version 24.1
Done: Chong Yidong <cyd <at> stupidchicken.com>
Bug is archived. No further changes may be made.
Full log
Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):
The following bug report was sent to me by Trevor Spiteri (thank you!).
----------------------------------------------------------------------
The documentation for iswitchb-window-buffer-p states that it should
return nil if BUFFER is visible in the current frame. Sometimes this
does not happen.
Suppose I am in a frame with two windows, one for buffer1 and the other
for buffer2, and I am currently in the window for buffer1. If I type:
C-x b b u f f e r 2 <return>
this works correctly, iswitchb-window-buffer-p returns nil, and
consequently both windows will show buffer2.
If instead of <return> I use C-j, that is, I am in the window for
buffer1 and buffer2 is in the other window, and I type:
C-x b b u f f e r 2 C-j
iswitchb-window-buffer-p does not return nil, and consequently not both
windows will show buffer2, but the window for buffer2 becomes the
current window.
To fix this, in the defun for iswitchb-window-buffer-p, the line
(if (memq buffer blist)
should be changed to:
(if (member buffer blist)
What I guess is happening is that using <return>, buffer is a string
obtained from the list of buffers, so it is eq to the corresponding
element in blist. When C-j is used, buffer is taken from user input, and
is thus not eq to the corresponding element in blist. Although it is not
eq, it is still equal, so changing memq to member fixes the issue.
----------------------------------------------------------------------
This bug report was last modified 13 years and 339 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.