emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] Changes to emacs/src/window.c


From: Stefan Monnier
Subject: [Emacs-diffs] Changes to emacs/src/window.c
Date: Thu, 01 Dec 2005 11:25:16 -0500

Index: emacs/src/window.c
diff -c emacs/src/window.c:1.528 emacs/src/window.c:1.529
*** emacs/src/window.c:1.528    Sun Nov 27 19:16:28 2005
--- emacs/src/window.c  Thu Dec  1 16:25:15 2005
***************
*** 1969,1975 ****
    GCPRO1 (windows);
    best_window = Qnil;
  
!   for (; CONSP (windows); windows = CDR (windows))
      {
        struct window *w;
  
--- 1969,1975 ----
    GCPRO1 (windows);
    best_window = Qnil;
  
!   for (; CONSP (windows); windows = XCDR (windows))
      {
        struct window *w;
  
***************
*** 3667,3673 ****
  #endif
    set_buffer_internal (old);
  
!   if (!EQ (Vtemp_buffer_show_function, Qnil))
      call1 (Vtemp_buffer_show_function, buf);
    else
      {
--- 3667,3673 ----
  #endif
    set_buffer_internal (old);
  
!   if (!NILP (Vtemp_buffer_show_function))
      call1 (Vtemp_buffer_show_function, buf);
    else
      {
***************
*** 5831,5837 ****
    else
      {
        if (XBUFFER (new_current_buffer) == current_buffer)
!       old_point = PT;
        else
        /* BUF_PT (XBUFFER (new_current_buffer)) gives us the position of
           point in new_current_buffer as of the last time this buffer was
--- 5831,5853 ----
    else
      {
        if (XBUFFER (new_current_buffer) == current_buffer)
!       /* The code further down "preserves point" by saving here PT in
!          old_point and then setting it later back into PT.  When the
!          current-selected-window and the final-selected-window both show
!          the current buffer, this suffers from the problem that the
!          current PT is the window-point of the current-selected-window,
!          while the final PT is the point of the final-selected-window, so
!          this copy from one PT to the other would end up moving the
!          window-point of the final-selected-window to the window-point of
!          the current-selected-window.  So we have to be careful which
!          point of the current-buffer we copy into old_point.  */
!       if (EQ (XWINDOW (data->current_window)->buffer, new_current_buffer)
!           && WINDOWP (selected_window)
!           && EQ (XWINDOW (selected_window)->buffer, new_current_buffer)
!           && !EQ (selected_window, data->current_window))
!         old_point = XMARKER (XWINDOW (data->current_window)->pointm)->charpos;
!       else
!         old_point = PT;
        else
        /* BUF_PT (XBUFFER (new_current_buffer)) gives us the position of
           point in new_current_buffer as of the last time this buffer was




reply via email to

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