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
reftex-overlay-put (obsolete since 28.1)
speedbar-overlay-put (obsolete since 27.1)
semantic-overlay-put (obsolete since 27.1)
viper-overlay-put (obsolete since 27.1)
Source Code
// Defined in /usr/src/emacs/src/buffer.c
{
Lisp_Object tail, buffer;
bool changed;
CHECK_OVERLAY (overlay);
buffer = Fmarker_buffer (OVERLAY_START (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 (! NILP (buffer))
{
if (changed)
modify_overlay (XBUFFER (buffer),
marker_position (OVERLAY_START (overlay)),
marker_position (OVERLAY_END (overlay)));
if (EQ (prop, Qevaporate) && ! NILP (value)
&& (OVERLAY_POSITION (OVERLAY_START (overlay))
== OVERLAY_POSITION (OVERLAY_END (overlay))))
Fdelete_overlay (overlay);
}
return value;
}