From: Luc Teirlinck Date: Sun, 30 Nov 2003 17:08:28 +0000 (+0000) Subject: (Fget_char_property_and_overlay): New function. X-Git-Tag: ttn-vms-21-2-B4~8240 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=97a1bc6376397911333f1decc764379fce397728;p=emacs.git (Fget_char_property_and_overlay): New function. (syms_of_textprop): Defsubr it. --- diff --git a/src/textprop.c b/src/textprop.c index a243eb6c917..4f13aefb1be 100644 --- a/src/textprop.c +++ b/src/textprop.c @@ -703,6 +703,30 @@ overlays are considered only if they are associated with OBJECT. */) { return get_char_property_and_overlay (position, prop, object, 0); } + +DEFUN ("get-char-property-and-overlay", Fget_char_property_and_overlay, + Sget_char_property_and_overlay, 2, 3, 0, + doc: /* Like `get-char-property', but with extra overlay information. +Return a cons whose car is the return value of `get-char-property' +with the same arguments, that is, the value of POSITION's property +PROP in OBJECT, and whose cdr is the overlay in which the property was +found, or nil, if it was found as a text property or not found at all. +OBJECT is optional and defaults to the current buffer. OBJECT may be +a string, a buffer or a window. For strings, the cdr of the return +value is always nil, since strings do not have overlays. If OBJECT is +a window, then that window's buffer is used, but window-specific +overlays are considered only if they are associated with OBJECT. If +POSITION is at the end of OBJECT, both car and cdr are nil. */) + (position, prop, object) + Lisp_Object position, object; + register Lisp_Object prop; +{ + Lisp_Object overlay; + Lisp_Object val + = get_char_property_and_overlay (position, prop, object, &overlay); + return Fcons(val, overlay); +} + DEFUN ("next-char-property-change", Fnext_char_property_change, Snext_char_property_change, 1, 2, 0, @@ -2277,6 +2301,7 @@ rear-nonsticky properties of the character overrides NONSTICKINESS. */); defsubr (&Stext_properties_at); defsubr (&Sget_text_property); defsubr (&Sget_char_property); + defsubr (&Sget_char_property_and_overlay); defsubr (&Snext_char_property_change); defsubr (&Sprevious_char_property_change); defsubr (&Snext_single_char_property_change);