diff options
| author | Stefan Monnier | 2022-11-05 17:22:37 -0400 |
|---|---|---|
| committer | Stefan Monnier | 2022-11-05 17:22:37 -0400 |
| commit | 6e5ec085510ccf52ac6cb07c3a1a2778324a1d89 (patch) | |
| tree | 0ad67bf3aa5a7a6c9eb9e01754e5f57da19dd4b6 /src/buffer.h | |
| parent | 5c9895fffe4e34b7a31b0a8e4bce0b59a4bc0326 (diff) | |
| download | emacs-6e5ec085510ccf52ac6cb07c3a1a2778324a1d89.tar.gz emacs-6e5ec085510ccf52ac6cb07c3a1a2778324a1d89.zip | |
buffer.c: evaporate overlays in all indirect buffers
This fixes bug#58928. The patch works by moving the
`evaporate_overlays` check closer to `itree_delete_gap`.
* src/buffer.c (adjust_overlays_for_delete_in_buffer): New function,
integrating the functionality of `evaporate_overlays`.
(adjust_overlays_for_delete): Use it.
(evaporate_overlays): Delete function.
* src/buffer.h (evaporate_overlays): Delete declaration.
* src/insdel.c (adjust_markers_for_replace): Minor optimization.
(adjust_after_replace, replace_range, replace_range_2, del_range_2):
Don't call `evaporate_overlays`.
* test/src/buffer-tests.el (buffer-tests--overlays-indirect-evaporate):
Remove the `:expected-result :failed` attribute.
Diffstat (limited to 'src/buffer.h')
| -rw-r--r-- | src/buffer.h | 1 |
1 files changed, 0 insertions, 1 deletions
diff --git a/src/buffer.h b/src/buffer.h index 3ea4125645d..2e80c8a7b04 100644 --- a/src/buffer.h +++ b/src/buffer.h | |||
| @@ -1170,7 +1170,6 @@ extern EMACS_INT fix_position (Lisp_Object); | |||
| 1170 | extern void delete_all_overlays (struct buffer *); | 1170 | extern void delete_all_overlays (struct buffer *); |
| 1171 | extern void reset_buffer (struct buffer *); | 1171 | extern void reset_buffer (struct buffer *); |
| 1172 | extern void compact_buffer (struct buffer *); | 1172 | extern void compact_buffer (struct buffer *); |
| 1173 | extern void evaporate_overlays (ptrdiff_t); | ||
| 1174 | extern ptrdiff_t overlays_at (ptrdiff_t, bool, Lisp_Object **, ptrdiff_t *, ptrdiff_t *); | 1173 | extern ptrdiff_t overlays_at (ptrdiff_t, bool, Lisp_Object **, ptrdiff_t *, ptrdiff_t *); |
| 1175 | extern ptrdiff_t overlays_in (ptrdiff_t, ptrdiff_t, bool, Lisp_Object **, | 1174 | extern ptrdiff_t overlays_in (ptrdiff_t, ptrdiff_t, bool, Lisp_Object **, |
| 1176 | ptrdiff_t *, bool, bool, ptrdiff_t *); | 1175 | ptrdiff_t *, bool, bool, ptrdiff_t *); |