Mercurial > emacs
changeset 52012:d116f572d76b
(delete_all_overlays): New function.
author | Stefan Monnier <monnier@iro.umontreal.ca> |
---|---|
date | Tue, 22 Jul 2003 19:02:11 +0000 |
parents | 8bbd4454be32 |
children | 26ceb23fbe42 |
files | src/buffer.c |
diffstat | 1 files changed, 29 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/src/buffer.c Tue Jul 22 17:54:50 2003 +0000 +++ b/src/buffer.c Tue Jul 22 19:02:11 2003 +0000 @@ -630,8 +630,36 @@ return buf; } +void +delete_all_overlays (b) + struct buffer *b; +{ + Lisp_Object overlay; + + /* `reset_buffer' blindly sets the list of overlays to NULL, so we + have to empty the list, otherwise we end up with overlays that + think they belong to this buffer while the buffer doesn't know about + them any more. */ + while (b->overlays_before) + { + XSETMISC (overlay, b->overlays_before); + Fdelete_overlay (overlay); + } + while (b->overlays_after) + { + XSETMISC (overlay, b->overlays_after); + Fdelete_overlay (overlay); + } + eassert (b->overlays_before == NULL); + eassert (b->overlays_after == NULL); +} + /* Reinitialize everything about a buffer except its name and contents - and local variables. */ + and local variables. + If called on an already-initialized buffer, the list of overlays + should be deleted before calling this function, otherwise we end up + with overlays that claim to belong to the buffer but the buffer + claims it doesn't belong to it. */ void reset_buffer (b)