Function: delete-overlay
delete-overlay is a function defined in buffer.c.
Signature
(delete-overlay OVERLAY)
Documentation
Delete the overlay OVERLAY from its buffer.
Other relevant functions are documented in the overlay group.
Shortdoc
;; overlay
(delete-overlay foo)
e.g. => t
Aliases
org-detach-overlay (obsolete since 9.0)
reftex-delete-overlay (obsolete since 28.1)
ediff-delete-overlay (obsolete since 27.1)
speedbar-delete-overlay (obsolete since 27.1)
semantic-overlay-delete (obsolete since 27.1)
Source Code
// Defined in /usr/src/emacs/src/buffer.c
{
Lisp_Object buffer;
struct buffer *b;
ptrdiff_t count = SPECPDL_INDEX ();
CHECK_OVERLAY (overlay);
buffer = Fmarker_buffer (OVERLAY_START (overlay));
if (NILP (buffer))
return Qnil;
b = XBUFFER (buffer);
specbind (Qinhibit_quit, Qt);
unchain_both (b, overlay);
drop_overlay (b, XOVERLAY (overlay));
/* When deleting an overlay with before or after strings, turn off
display optimizations for the affected buffer, on the basis that
these strings may contain newlines. This is easier to do than to
check for that situation during redisplay. */
if (!windows_or_buffers_changed
&& (!NILP (Foverlay_get (overlay, Qbefore_string))
|| !NILP (Foverlay_get (overlay, Qafter_string))))
b->prevent_redisplay_optimizations_p = 1;
return unbind_to (count, Qnil);
}