1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2025-12-06 06:20:55 -08:00

(marker_vector_adjust_for_delete): Delete function

* src/marker-vector.c (marker_vector_adjust_for_delete): Delete function.
* src/marker-vector.h (marker_vector_adjust_for_delete): Delete declaration.
* src/insdel.c (adjust_markers_for_delete): Use
`marker_vector_adjust_for_replace` instead.
(adjust_markers_for_replace): Move call to`text_index_invalidate` so we
don't do it redundantly.
This commit is contained in:
Stefan Monnier 2025-04-23 01:50:13 -04:00
parent c8beb5f023
commit a57c107ab5
3 changed files with 2 additions and 26 deletions

View file

@ -252,7 +252,7 @@ adjust_markers_for_delete (ptrdiff_t from, ptrdiff_t from_byte,
{
text_index_invalidate (current_buffer, from_byte);
adjust_suspend_auto_hscroll (from, to);
marker_vector_adjust_for_delete (current_buffer, from, to);
marker_vector_adjust_for_replace (current_buffer, from, to - from, 0);
adjust_overlays_for_delete (from, to - from);
}
@ -303,8 +303,6 @@ adjust_markers_for_replace (ptrdiff_t from, ptrdiff_t from_byte,
ptrdiff_t old_chars, ptrdiff_t old_bytes,
ptrdiff_t new_chars, ptrdiff_t new_bytes)
{
text_index_invalidate (current_buffer, from_byte);
if (old_chars == 0)
{
/* Just an insertion: markers at FROM may need to move or not depending
@ -317,6 +315,7 @@ adjust_markers_for_replace (ptrdiff_t from, ptrdiff_t from_byte,
return;
}
text_index_invalidate (current_buffer, from_byte);
adjust_suspend_auto_hscroll (from, from + old_chars);
marker_vector_adjust_for_replace (current_buffer, from, old_chars, new_chars);
check_markers ();

View file

@ -324,28 +324,6 @@ marker_vector_bytepos (const struct Lisp_Marker *m)
return buf_charpos_to_bytepos (m->buffer, charpos);
}
/* Adjust all marker positions of buffer B for a deletion of a range
FROM_CHARPOS to TO_CHARPOS characters. */
void
marker_vector_adjust_for_delete (struct buffer *b,
const ptrdiff_t from_charpos,
const ptrdiff_t to_charpos)
{
const ptrdiff_t nchars = to_charpos - from_charpos;
struct Lisp_Vector *v = XVECTOR (BUF_MARKERS (b));
DO_MARKERS (b, m)
{
const ptrdiff_t charpos = XFIXNUM (CHARPOS (v, m->entry));
eassert (charpos <= Z);
if (charpos > to_charpos)
CHARPOS (v, m->entry) = make_fixnum (charpos - nchars);
else if (charpos > from_charpos)
CHARPOS (v, m->entry) = make_fixnum (from_charpos);
}
END_DO_MARKERS;
}
/* Adjust marker positions in buffer B for an insertion that stretches
from FROM_CHARPOS to TO_CHARPOS. When a marker points at the
insertion point FROM_CHARPOS, we advance it if either its

View file

@ -69,7 +69,6 @@ void marker_vector_reset (struct buffer *b);
void marker_vector_set_charpos (struct Lisp_Marker *m, ptrdiff_t charpos);
ptrdiff_t marker_vector_charpos (const struct Lisp_Marker *m);
ptrdiff_t marker_vector_bytepos (const struct Lisp_Marker *m);
void marker_vector_adjust_for_delete (struct buffer *b, ptrdiff_t from, ptrdiff_t to);
void marker_vector_adjust_for_insert (struct buffer *b, const ptrdiff_t from,
ptrdiff_t to, bool before_markers);
void marker_vector_adjust_for_replace (struct buffer *b, ptrdiff_t from,