emacs-diffs
[Top][All Lists]
Advanced

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

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


From: Richard M. Stallman
Subject: [Emacs-diffs] Changes to emacs/src/undo.c
Date: Mon, 26 Dec 2005 16:32:57 +0000

Index: emacs/src/undo.c
diff -u emacs/src/undo.c:1.74 emacs/src/undo.c:1.75
--- emacs/src/undo.c:1.74       Tue Dec  6 07:40:14 2005
+++ emacs/src/undo.c    Mon Dec 26 16:32:57 2005
@@ -24,6 +24,7 @@
 #include "lisp.h"
 #include "buffer.h"
 #include "commands.h"
+#include "window.h"
 
 /* Limits controlling how much undo information to keep.  */
 
@@ -100,12 +101,19 @@
   /* If we are just after an undo boundary, and
      point wasn't at start of deleted range, record where it was.  */
   if (at_boundary
-      && last_point_position != pt
-      /* If we're called from batch mode, this could be nil.  */
       && BUFFERP (last_point_position_buffer)
+      /* If we're called from batch mode, this could be nil.  */
       && current_buffer == XBUFFER (last_point_position_buffer))
-    current_buffer->undo_list
-      = Fcons (make_number (last_point_position), current_buffer->undo_list);
+    {
+      /* If we have switched windows, use the point value
+        from the window we are in.  */
+      if (! EQ (last_point_position_window, selected_window))
+       last_point_position = marker_position (XWINDOW 
(selected_window)->pointm);
+
+      if (last_point_position != pt)
+       current_buffer->undo_list
+         = Fcons (make_number (last_point_position), 
current_buffer->undo_list);
+    }
 }
 
 /* Record an insertion that just happened or is about to happen,




reply via email to

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