diff options
| author | Kenichi Handa | 1998-03-24 05:41:38 +0000 |
|---|---|---|
| committer | Kenichi Handa | 1998-03-24 05:41:38 +0000 |
| commit | cbc1b668f313eac593d1de971d9c425629a41e28 (patch) | |
| tree | db7587705cd190124bdf4ea5d69ece7b5f502a85 /src/undo.c | |
| parent | 80e79e3e7ce845090eaa7ad7b632f35ed14422d4 (diff) | |
| download | emacs-cbc1b668f313eac593d1de971d9c425629a41e28.tar.gz emacs-cbc1b668f313eac593d1de971d9c425629a41e28.zip | |
(record_delete): Record last_point_position when there's
no record other than marker adjustment before undo boundary.
Diffstat (limited to 'src/undo.c')
| -rw-r--r-- | src/undo.c | 20 |
1 files changed, 18 insertions, 2 deletions
diff --git a/src/undo.c b/src/undo.c index af57c4352b1..ceaf3b421d2 100644 --- a/src/undo.c +++ b/src/undo.c | |||
| @@ -105,8 +105,24 @@ record_delete (beg, string) | |||
| 105 | Fundo_boundary (); | 105 | Fundo_boundary (); |
| 106 | XSETBUFFER (last_undo_buffer, current_buffer); | 106 | XSETBUFFER (last_undo_buffer, current_buffer); |
| 107 | 107 | ||
| 108 | at_boundary = (CONSP (current_buffer->undo_list) | 108 | if (CONSP (current_buffer->undo_list)) |
| 109 | && NILP (XCONS (current_buffer->undo_list)->car)); | 109 | { |
| 110 | /* Set AT_BOUNDARY to 1 only when we have nothing other than | ||
| 111 | marker adjustment before undo boundary. */ | ||
| 112 | |||
| 113 | Lisp_Object tail = current_buffer->undo_list, elt; | ||
| 114 | |||
| 115 | while (1) | ||
| 116 | { | ||
| 117 | elt = XCONS (tail)->car; | ||
| 118 | if (NILP (elt) || ! (CONSP (elt) && MARKERP (XCONS (elt)->car))) | ||
| 119 | break; | ||
| 120 | tail = XCONS (tail)->cdr; | ||
| 121 | } | ||
| 122 | at_boundary = NILP (elt); | ||
| 123 | } | ||
| 124 | else | ||
| 125 | at_boundary = 0; | ||
| 110 | 126 | ||
| 111 | if (MODIFF <= SAVE_MODIFF) | 127 | if (MODIFF <= SAVE_MODIFF) |
| 112 | record_first_change (); | 128 | record_first_change (); |