summaryrefslogtreecommitdiff
path: root/src/intervals.h
diff options
context:
space:
mode:
authorRichard M. Stallman <rms@gnu.org>1993-07-31 21:55:38 +0000
committerRichard M. Stallman <rms@gnu.org>1993-07-31 21:55:38 +0000
commite9ae76969b3a1eae9d8ce77c21e9f34e084f1ee8 (patch)
tree317a8a7aa9bc67b6cbde771c265dfd30ff44d2c4 /src/intervals.h
parent1d6eb01d04fa19958b8ba95c6ef401aa88d387a3 (diff)
downloademacs-e9ae76969b3a1eae9d8ce77c21e9f34e084f1ee8.tar.gz
(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.
Diffstat (limited to 'src/intervals.h')
-rw-r--r--src/intervals.h17
1 files changed, 13 insertions, 4 deletions
diff --git a/src/intervals.h b/src/intervals.h
index 86c0d137bdf..444c2cdaad8 100644
--- a/src/intervals.h
+++ b/src/intervals.h
@@ -129,7 +129,7 @@ the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
/* 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 @@ the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
/* 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 INTERVAL balance_intervals ();
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 @@ extern Lisp_Object Qlocal_map;
/* 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 ();