From db1ed30b123ae1f0c962ec565f93a6c29f5494ff Mon Sep 17 00:00:00 2001 From: Stefan Monnier Date: Thu, 6 Mar 2025 11:21:42 -0500 Subject: [PATCH] (replace_range): Delete argument `markers` * src/lisp.h (replace_range): * src/insdel.c (replace_range): Delete argument `markers`, always true. * src/editfns.c (Ftranslate_region_internal): * src/cmds.c (internal_self_insert): * src/search.c (Freplace_match): Adjust callers accordingly. (cherry picked from commit 1133c081d6787fdc9634388b33e04382182be5b0) --- src/cmds.c | 2 +- src/editfns.c | 4 ++-- src/insdel.c | 17 +++-------------- src/lisp.h | 3 +-- src/search.c | 2 +- 5 files changed, 8 insertions(+), 20 deletions(-) diff --git a/src/cmds.c b/src/cmds.c index 20893e85647..9985855a0ce 100644 --- a/src/cmds.c +++ b/src/cmds.c @@ -458,7 +458,7 @@ internal_self_insert (int c, EMACS_INT n) ptrdiff_t to; if (ckd_add (&to, PT, chars_to_delete)) to = PTRDIFF_MAX; - replace_range (PT, to, string, true, true, true, false); + replace_range (PT, to, string, true, true, false); Fforward_char (make_fixnum (n)); } else if (n > 1) diff --git a/src/editfns.c b/src/editfns.c index 12700527ef3..0eeb8d4fb53 100644 --- a/src/editfns.c +++ b/src/editfns.c @@ -2520,7 +2520,7 @@ It returns the number of characters changed. */) but it should handle multibyte characters correctly. */ string = make_multibyte_string ((char *) str, 1, str_len); replace_range (pos, pos + 1, string, - true, false, true, false); + true, false, false); len = str_len; } else @@ -2564,7 +2564,7 @@ It returns the number of characters changed. */) = (VECTORP (val) ? Fconcat (1, &val) : Fmake_string (make_fixnum (1), val, Qnil)); - replace_range (pos, pos + len, string, true, false, true, false); + replace_range (pos, pos + len, string, true, false, false); pos_byte += SBYTES (string); pos += SCHARS (string); characters_changed += SCHARS (string); diff --git a/src/insdel.c b/src/insdel.c index d3917bf668c..3617d2f0102 100644 --- a/src/insdel.c +++ b/src/insdel.c @@ -1425,7 +1425,7 @@ adjust_after_insert (ptrdiff_t from, ptrdiff_t from_byte, void replace_range (ptrdiff_t from, ptrdiff_t to, Lisp_Object new, - bool run_mod_hooks, bool inherit, bool markers, + bool run_mod_hooks, bool inherit, bool adjust_match_data) { ptrdiff_t inschars = SCHARS (new); @@ -1541,19 +1541,8 @@ replace_range (ptrdiff_t from, ptrdiff_t to, Lisp_Object new, eassert (GPT <= GPT_BYTE); /* Adjust markers for the deletion and the insertion. */ - if (markers) - adjust_markers_for_replace (from, from_byte, nchars_del, nbytes_del, - inschars, outgoing_insbytes); - else - { - /* The character positions of the markers remain intact, but we - still need to update their byte positions, because the - deleted and the inserted text might have multibyte sequences - which make the original byte positions of the markers - invalid. */ - adjust_markers_bytepos (from, from_byte, from + inschars, - from_byte + outgoing_insbytes, true); - } + adjust_markers_for_replace (from, from_byte, nchars_del, nbytes_del, + inschars, outgoing_insbytes); offset_intervals (current_buffer, from, inschars - nchars_del); diff --git a/src/lisp.h b/src/lisp.h index 1d53bf544d5..e013ee7e419 100644 --- a/src/lisp.h +++ b/src/lisp.h @@ -4361,8 +4361,7 @@ extern void adjust_markers_for_insert (ptrdiff_t, ptrdiff_t, ptrdiff_t, ptrdiff_t, bool); extern void adjust_markers_bytepos (ptrdiff_t, ptrdiff_t, ptrdiff_t, ptrdiff_t, int); -extern void replace_range (ptrdiff_t, ptrdiff_t, Lisp_Object, bool, bool, - bool, bool); +extern void replace_range (ptrdiff_t, ptrdiff_t, Lisp_Object, bool, bool, bool); extern void replace_range_2 (ptrdiff_t, ptrdiff_t, ptrdiff_t, ptrdiff_t, const char *, ptrdiff_t, ptrdiff_t, bool); extern void syms_of_insdel (void); diff --git a/src/search.c b/src/search.c index c8eb04e388b..89bc7e91612 100644 --- a/src/search.c +++ b/src/search.c @@ -2761,7 +2761,7 @@ since only regular expressions have distinguished subexpressions. */) newpoint = sub_start + SCHARS (newtext); /* Replace the old text with the new in the cleanest possible way. */ - replace_range (sub_start, sub_end, newtext, true, false, true, true); + replace_range (sub_start, sub_end, newtext, true, false, true); if (case_action == all_caps) Fupcase_region (make_fixnum (search_regs.start[sub]), -- 2.39.5