changeset 4382:c11d710e0403

(MERGE_INSERTIONS): Define as 1. (FRONT_STICKY): Add real definition. (END_NONSTICKY): New macro. (END_STICKY): Deleted. (textget_direct, Qfront_sticky, Qrear_nonsticky): Declared. (Qhidden): Declared.
author Richard M. Stallman <rms@gnu.org>
date Sat, 31 Jul 1993 21:55:38 +0000
parents b0556af4d680
children d4a36c1669e6
files src/intervals.h
diffstat 1 files changed, 13 insertions(+), 4 deletions(-) [+]
line wrap: on
line diff
--- a/src/intervals.h	Sat Jul 31 21:54:10 1993 +0000
+++ b/src/intervals.h	Sat Jul 31 21:55:38 1993 +0000
@@ -129,7 +129,7 @@
 /* Macro determining whether the properties of an interval being
    inserted should be merged with the properties of the text where
    they are being inserted. */
-#define MERGE_INSERTIONS(i) 0
+#define MERGE_INSERTIONS(i) 1
 
 /* Macro determining if an invisible interval should be displayed
    as a special glyph, or not at all. */
@@ -150,8 +150,13 @@
 
 /* Macros to tell whether insertions before or after this interval
    should stick to it. */
-#define FRONT_STICKY_P(i) ((i)->front_sticky != 0)
-#define END_STICKY_P(i) ((i)->rear_sticky != 0)
+/* Replace later with cache access */
+/*#define FRONT_STICKY_P(i) ((i)->front_sticky != 0)
+  #define END_STICKY_P(i) ((i)->rear_sticky != 0)*/
+#define FRONT_STICKY_P(i) \
+  (! NULL_INTERVAL_P (i) && ! NILP (textget ((i)->plist, Qfront_sticky)))
+#define END_NONSTICKY_P(i) \
+  (! NULL_INTERVAL_P (i) && ! NILP (textget ((i)->plist, Qrear_nonsticky)))
 
 
 /* Declared in alloc.c */
@@ -180,6 +185,7 @@
 extern INLINE void copy_intervals_to_string ();
 extern INTERVAL copy_intervals ();
 extern Lisp_Object textget ();
+extern Lisp_Object textget_direct ();
 extern Lisp_Object get_local_map ();
 
 /* Declared in textprop.c */
@@ -195,10 +201,13 @@
 
 /* Visual properties text (including strings) may have. */
 extern Lisp_Object Qforeground, Qbackground, Qfont, Qunderline, Qstipple;
-extern Lisp_Object Qinvisible, Qread_only;
+extern Lisp_Object Qinvisible, Qhidden, Qread_only;
 
 extern Lisp_Object Vinhibit_point_motion_hooks;
 
+/* Sticky properties */
+extern Lisp_Object Qfront_sticky, Qrear_nonsticky;
+
 extern Lisp_Object Ftext_properties_at ();
 extern Lisp_Object Fnext_property_change (), Fprevious_property_change ();
 extern Lisp_Object Fadd_text_properties (), Fset_text_properties ();