Function: overlay-put
overlay-put is a function defined in buffer.c.
Signature
(overlay-put OVERLAY PROP VALUE)
Documentation
Set one property of overlay OVERLAY: give property PROP value VALUE.
VALUE will be returned.
Other relevant functions are documented in the overlay group.
Probably introduced at or before Emacs version 20.1.
Shortdoc
;; overlay
(overlay-put foo 'happy t)
e.g. => t
Aliases
speedbar-overlay-put (obsolete since 27.1)
semantic-overlay-put (obsolete since 27.1)
viper-overlay-put (obsolete since 27.1)
reftex-overlay-put (obsolete since 28.1)
Source Code
// Defined in /usr/src/emacs/src/buffer.c
{
Lisp_Object tail;
struct buffer *b;
bool changed;
CHECK_OVERLAY (overlay);
b = OVERLAY_BUFFER (overlay);
for (tail = XOVERLAY (overlay)->plist;
CONSP (tail) && CONSP (XCDR (tail));
tail = XCDR (XCDR (tail)))
if (EQ (XCAR (tail), prop))
{
changed = !EQ (XCAR (XCDR (tail)), value);
XSETCAR (XCDR (tail), value);
goto found;
}
/* It wasn't in the list, so add it to the front. */
changed = !NILP (value);
set_overlay_plist
(overlay, Fcons (prop, Fcons (value, XOVERLAY (overlay)->plist)));
found:
if (b)
{
if (changed)
modify_overlay (b, OVERLAY_START (overlay),
OVERLAY_END (overlay));
if (EQ (prop, Qevaporate) && ! NILP (value)
&& (OVERLAY_START (overlay)
== OVERLAY_END (overlay)))
Fdelete_overlay (overlay);
}
return value;
}