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:
parent
c8beb5f023
commit
a57c107ab5
3 changed files with 2 additions and 26 deletions
|
|
@ -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 ();
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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,
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue