[Top][All Lists]
[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,