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);
|
text_index_invalidate (current_buffer, from_byte);
|
||||||
adjust_suspend_auto_hscroll (from, to);
|
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);
|
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 old_chars, ptrdiff_t old_bytes,
|
||||||
ptrdiff_t new_chars, ptrdiff_t new_bytes)
|
ptrdiff_t new_chars, ptrdiff_t new_bytes)
|
||||||
{
|
{
|
||||||
text_index_invalidate (current_buffer, from_byte);
|
|
||||||
|
|
||||||
if (old_chars == 0)
|
if (old_chars == 0)
|
||||||
{
|
{
|
||||||
/* Just an insertion: markers at FROM may need to move or not depending
|
/* 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;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
text_index_invalidate (current_buffer, from_byte);
|
||||||
adjust_suspend_auto_hscroll (from, from + old_chars);
|
adjust_suspend_auto_hscroll (from, from + old_chars);
|
||||||
marker_vector_adjust_for_replace (current_buffer, from, old_chars, new_chars);
|
marker_vector_adjust_for_replace (current_buffer, from, old_chars, new_chars);
|
||||||
check_markers ();
|
check_markers ();
|
||||||
|
|
|
||||||
|
|
@ -324,28 +324,6 @@ marker_vector_bytepos (const struct Lisp_Marker *m)
|
||||||
return buf_charpos_to_bytepos (m->buffer, charpos);
|
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
|
/* Adjust marker positions in buffer B for an insertion that stretches
|
||||||
from FROM_CHARPOS to TO_CHARPOS. When a marker points at the
|
from FROM_CHARPOS to TO_CHARPOS. When a marker points at the
|
||||||
insertion point FROM_CHARPOS, we advance it if either its
|
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);
|
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_charpos (const struct Lisp_Marker *m);
|
||||||
ptrdiff_t marker_vector_bytepos (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,
|
void marker_vector_adjust_for_insert (struct buffer *b, const ptrdiff_t from,
|
||||||
ptrdiff_t to, bool before_markers);
|
ptrdiff_t to, bool before_markers);
|
||||||
void marker_vector_adjust_for_replace (struct buffer *b, ptrdiff_t from,
|
void marker_vector_adjust_for_replace (struct buffer *b, ptrdiff_t from,
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue