[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: switch-to-buffer incompatible behavior with Emacs 21
From: |
Nick Roberts |
Subject: |
Re: switch-to-buffer incompatible behavior with Emacs 21 |
Date: |
Thu, 24 Aug 2006 18:02:54 +1200 |
> The following patch fixes the problem
>
> -----------------------------------------------
> Index: buffer.c
> ===================================================================
> RCS file: /cvsroot/emacs/emacs/src/buffer.c,v
> retrieving revision 1.507
> diff -u -r1.507 buffer.c
> --- buffer.c 22 Aug 2006 09:25:59 -0000 1.507
> +++ buffer.c 24 Aug 2006 02:44:03 -0000
> @@ -1683,7 +1683,8 @@
> {
> char *err;
>
> - if (EQ (buffer, Fwindow_buffer (selected_window)))
> + if (EQ (buffer, Fwindow_buffer (selected_window))
> + && (! NILP (norecord) || EQ (buffer, XCDR (XCAR (Vbuffer_alist)))))
> /* Basically a NOP. Avoid signalling an error if the selected window
> is dedicated, or a minibuffer, ... */
> return Fset_buffer (buffer);
The comment suggests that this patch will create a problems. Perhaps the
patch below solves them.
--
Nick http://www.inet.net.nz/~nickrob
*** buffer.c 23 Aug 2006 09:44:28 +1200 1.507
--- buffer.c 24 Aug 2006 17:59:38 +1200
***************
*** 1684,1692 ****
char *err;
if (EQ (buffer, Fwindow_buffer (selected_window)))
! /* Basically a NOP. Avoid signalling an error if the selected window
! is dedicated, or a minibuffer, ... */
! return Fset_buffer (buffer);
err = no_switch_window (selected_window);
if (err) error (err);
--- 1684,1696 ----
char *err;
if (EQ (buffer, Fwindow_buffer (selected_window)))
! {
! if (NILP (norecord) && !EQ (buffer, XCDR (XCAR (Vbuffer_alist))))
! record_buffer (buffer);
! /* Basically a NOP. Avoid signalling an error if the selected window
! is dedicated, or a minibuffer, ... */
! return Fset_buffer (buffer);
! }
err = no_switch_window (selected_window);
if (err) error (err);
Re: switch-to-buffer incompatible behavior with Emacs 21, Richard Stallman, 2006/08/25