/* Definitions and global variables for intervals.
- Copyright (C) 1993, 1994, 2000 Free Software Foundation, Inc.
+ Copyright (C) 1993, 1994, 2000, 2002 Free Software Foundation, Inc.
This file is part of GNU Emacs.
the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
-#ifndef NORMAL_FACE
#include "dispextern.h"
-#endif
#define NULL_INTERVAL ((INTERVAL)0)
#define INTERVAL_DEFAULT NULL_INTERVAL
/* If PROP is the `invisible' property of a character,
- this is 1 if the character should be treated as invisible. */
+ this is 1 if the character should be treated as invisible,
+ and 2 if it is invisible but with an ellipsis. */
#define TEXT_PROP_MEANS_INVISIBLE(prop) \
(EQ (current_buffer->invisibility_spec, Qt) \
? !NILP (prop) \
: invisible_p (prop, current_buffer->invisibility_spec))
-/* If PROP is the `invisible' property of a character,
- this is 1 if the character should be treated as invisible
- and should have an ellipsis. */
-
-#define TEXT_PROP_MEANS_INVISIBLE_WITH_ELLIPSIS(prop) \
- (EQ (current_buffer->invisibility_spec, Qt) \
- ? 0 \
- : invisible_ellipsis_p (prop, current_buffer->invisibility_spec))
-
-/* As above but for "completely" invisible (no ellipsis). */
-
-#define TEXT_PROP_MEANS_INVISIBLE_NOELLIPSIS(prop) \
- (EQ (current_buffer->invisibility_spec, Qt) \
- ? !NILP (prop) \
- : invisible_noellipsis_p (prop, current_buffer->invisibility_spec))
-
/* Declared in alloc.c */
extern INTERVAL make_interval P_ ((void));
int, int));
extern INTERVAL copy_intervals P_ ((INTERVAL, int, int));
extern Lisp_Object textget P_ ((Lisp_Object, Lisp_Object));
+extern Lisp_Object lookup_char_property P_ ((Lisp_Object, Lisp_Object, int));
extern void move_if_not_intangible P_ ((int));
extern int get_property_and_range P_ ((int, Lisp_Object, Lisp_Object *,
int *, int *, Lisp_Object));
Lisp_Object *, int));
/* Defined in xdisp.c */
-extern int invisible_ellipsis_p P_ ((Lisp_Object, Lisp_Object));
extern int invisible_p P_ ((Lisp_Object, Lisp_Object));
-extern int invisible_noellipsis_p P_ ((Lisp_Object, Lisp_Object));
/* Declared in textprop.c */
extern Lisp_Object Vinhibit_point_motion_hooks;
extern Lisp_Object Vdefault_text_properties;
+extern Lisp_Object Vchar_property_alias_alist;
extern Lisp_Object Vtext_property_default_nonsticky;
/* Sticky properties */
extern Lisp_Object copy_text_properties P_ ((Lisp_Object, Lisp_Object,
Lisp_Object, Lisp_Object,
Lisp_Object, Lisp_Object));
+extern Lisp_Object set_text_properties P_ ((Lisp_Object, Lisp_Object,
+ Lisp_Object, Lisp_Object,
+ Lisp_Object));
+extern void set_text_properties_1 P_ ((Lisp_Object, Lisp_Object,
+ Lisp_Object, Lisp_Object, INTERVAL));
+
Lisp_Object text_property_list P_ ((Lisp_Object, Lisp_Object, Lisp_Object,
Lisp_Object));
int add_text_properties_from_list P_ ((Lisp_Object, Lisp_Object, Lisp_Object));
void extend_property_ranges P_ ((Lisp_Object, Lisp_Object, Lisp_Object));
Lisp_Object get_char_property_and_overlay P_ ((Lisp_Object, Lisp_Object,
Lisp_Object, Lisp_Object*));
+extern int text_property_stickiness P_ ((Lisp_Object prop, Lisp_Object pos));
extern void syms_of_textprop ();