From e928d437c2a065cb23a37dec3a6a22640d7abfb1 Mon Sep 17 00:00:00 2001 From: "Richard M. Stallman" Date: Sat, 21 Mar 1998 03:58:00 +0000 Subject: [PATCH] (record_delete): Replace LENGTH arg with STRING. (record_change): Call record_delete the new way. --- src/undo.c | 20 +++++++++----------- 1 file changed, 9 insertions(+), 11 deletions(-) diff --git a/src/undo.c b/src/undo.c index fc888381711..af57c4352b1 100644 --- a/src/undo.c +++ b/src/undo.c @@ -84,13 +84,14 @@ record_insert (beg, length) } /* Record that a deletion is about to take place, - for LENGTH characters at location BEG. */ + of the characters in STRING, at location BEG. */ void -record_delete (beg, length) - int beg, length; +record_delete (beg, string) + int beg; + Lisp_Object string; { - Lisp_Object lbeg, lend, sbeg; + Lisp_Object sbeg; int at_boundary; if (EQ (current_buffer->undo_list, Qt)) @@ -110,12 +111,10 @@ record_delete (beg, length) if (MODIFF <= SAVE_MODIFF) record_first_change (); - if (PT == beg + length) + if (PT == beg + XSTRING (string)->size) XSETINT (sbeg, -beg); else XSETFASTINT (sbeg, beg); - XSETFASTINT (lbeg, beg); - XSETFASTINT (lend, beg + length); /* If we are just after an undo boundary, and point wasn't at start of deleted range, record where it was. */ @@ -126,8 +125,7 @@ record_delete (beg, length) = Fcons (make_number (last_point_position), current_buffer->undo_list); current_buffer->undo_list - = Fcons (Fcons (Fbuffer_substring (lbeg, lend), sbeg), - current_buffer->undo_list); + = Fcons (Fcons (string, sbeg), current_buffer->undo_list); } /* Record the fact that MARKER is about to be adjusted by ADJUSTMENT. @@ -158,13 +156,13 @@ record_marker_adjustment (marker, adjustment) /* Record that a replacement is about to take place, for LENGTH characters at location BEG. - The replacement does not change the number of characters. */ + The replacement must not change the number of characters. */ void record_change (beg, length) int beg, length; { - record_delete (beg, length); + record_delete (beg, make_buffer_string (beg, beg + length, 1)); record_insert (beg, length); } -- 2.39.5