changeset 82845:652a69b79238

(Finvisible_p): New function. (syms_of_xdisp): defsubr it.
author Stefan Monnier <monnier@iro.umontreal.ca>
date Sat, 25 Aug 2007 20:11:09 +0000
parents a25b7156354b
children 6aa3ccf8fedc
files src/ChangeLog src/xdisp.c
diffstat 2 files changed, 27 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/src/ChangeLog	Sat Aug 25 20:07:23 2007 +0000
+++ b/src/ChangeLog	Sat Aug 25 20:11:09 2007 +0000
@@ -1,3 +1,8 @@
+2007-08-25  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+	* xdisp.c (Finvisible_p): New function.
+	(syms_of_xdisp): defsubr it.
+
 2007-08-24  Juanma Barranquero  <lekktu@gmail.com>
 
 	* image.c (syms_of_image) <image-library-alist, cross-disabled-images>:
--- a/src/xdisp.c	Sat Aug 25 20:07:23 2007 +0000
+++ b/src/xdisp.c	Sat Aug 25 20:11:09 2007 +0000
@@ -18435,6 +18435,27 @@
   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 @@
   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");