From: Stefan Monnier Date: Sat, 25 Aug 2007 20:11:09 +0000 (+0000) Subject: (Finvisible_p): New function. X-Git-Tag: emacs-pretest-23.0.90~11311 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=e60c4e15efd282dfd4cf94af1eff96f540fe586a;p=emacs.git (Finvisible_p): New function. (syms_of_xdisp): defsubr it. --- diff --git a/src/ChangeLog b/src/ChangeLog index 5f2a7d820cd..b775844bf3b 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,8 @@ +2007-08-25 Stefan Monnier + + * xdisp.c (Finvisible_p): New function. + (syms_of_xdisp): defsubr it. + 2007-08-24 Juanma Barranquero * image.c (syms_of_image) : diff --git a/src/xdisp.c b/src/xdisp.c index b1a837b799a..da33b05c4c5 100644 --- a/src/xdisp.c +++ b/src/xdisp.c @@ -18435,6 +18435,27 @@ invisible_p (propval, list) return 0; } +DEFUN ("invisible-p", Finvisible_p, Sinvisible_p, 1, 1, 0, + doc: /* Non-nil if the property makes the text invisible. +POS-OR-PROP can be a marker or number, in which case it is taken to be +a position in the current buffer and the value of the `invisible' property +is checked; or it can be some other value, which is then presumed to be the +value of the `invisible' property of the text of interest. +The non-nil value returned can be t for truly invisible text or something +else if the text is replaced by an ellipsis. */) + (pos_or_prop) + Lisp_Object pos_or_prop; +{ + Lisp_Object prop = + (NATNUMP (pos_or_prop) || MARKERP (pos_or_prop)) + ? Fget_char_property (pos_or_prop, Qinvisible, Qnil) + : pos_or_prop; + int invis = TEXT_PROP_MEANS_INVISIBLE (prop); + return (invis == 0 ? Qnil + : invis == 1 ? Qt + : make_number (invis)); +} + /* Calculate a width or height in pixels from a specification using the following elements: @@ -23806,6 +23827,7 @@ syms_of_xdisp () defsubr (&Slookup_image_map); #endif defsubr (&Sformat_mode_line); + defsubr (&Sinvisible_p); staticpro (&Qmenu_bar_update_hook); Qmenu_bar_update_hook = intern ("menu-bar-update-hook");