emacs-pretest-bug
[Top][All Lists]
Advanced

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




reply via email to

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