aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/lisp.h26
1 files changed, 16 insertions, 10 deletions
diff --git a/src/lisp.h b/src/lisp.h
index dd155c140b7..d0e7d82a5e1 100644
--- a/src/lisp.h
+++ b/src/lisp.h
@@ -88,14 +88,6 @@ enum Lisp_Type
88#ifdef LISP_FLOAT_TYPE 88#ifdef LISP_FLOAT_TYPE
89 Lisp_Float, 89 Lisp_Float,
90#endif /* LISP_FLOAT_TYPE */ 90#endif /* LISP_FLOAT_TYPE */
91
92 /* The overlay type.
93 An overlay values is actually a retagged cons, the first in a
94 list of the form
95 ((START . END) nil . PLIST)
96 where START and END are markers in the overlay's buffer, and
97 PLIST is the overlay's property list. */
98 Lisp_Overlay
99 }; 91 };
100 92
101/* This is the set of datatypes that share a common structure. 93/* This is the set of datatypes that share a common structure.
@@ -109,7 +101,8 @@ enum Lisp_Misc_Type
109 Lisp_Misc_Objfwd, 101 Lisp_Misc_Objfwd,
110 Lisp_Misc_Buffer_Objfwd, 102 Lisp_Misc_Buffer_Objfwd,
111 Lisp_Misc_Buffer_Local_Value, 103 Lisp_Misc_Buffer_Local_Value,
112 Lisp_Misc_Some_Buffer_Local_Value 104 Lisp_Misc_Some_Buffer_Local_Value,
105 Lisp_Misc_Overlay
113 }; 106 };
114 107
115#ifndef NO_UNION_TYPE 108#ifndef NO_UNION_TYPE
@@ -383,6 +376,7 @@ extern int pure_size;
383#define XOBJFWD(a) (&(XMISC(a)->u_objfwd)) 376#define XOBJFWD(a) (&(XMISC(a)->u_objfwd))
384#define XBUFFER_OBJFWD(a) (&(XMISC(a)->u_buffer_objfwd)) 377#define XBUFFER_OBJFWD(a) (&(XMISC(a)->u_buffer_objfwd))
385#define XBUFFER_LOCAL_VALUE(a) (&(XMISC(a)->u_buffer_local_value)) 378#define XBUFFER_LOCAL_VALUE(a) (&(XMISC(a)->u_buffer_local_value))
379#define XOVERLAY(a) (&(XMISC(a)->u_overlay))
386 380
387#define XSETINT(a, b) XSET (a, Lisp_Int, b) 381#define XSETINT(a, b) XSET (a, Lisp_Int, b)
388#define XSETCONS(a, b) XSET (a, Lisp_Cons, b) 382#define XSETCONS(a, b) XSET (a, Lisp_Cons, b)
@@ -577,6 +571,9 @@ struct Lisp_Buffer_Objfwd
577 The actual contents resemble a cons cell which starts a list like this: 571 The actual contents resemble a cons cell which starts a list like this:
578 (REALVALUE BUFFER CURRENT-ALIST-ELEMENT . DEFAULT-VALUE). 572 (REALVALUE BUFFER CURRENT-ALIST-ELEMENT . DEFAULT-VALUE).
579 573
574 The cons-like structure is for historical reasons; it might be better
575 to just put these elements into the struct, now.
576
580 BUFFER is the last buffer for which this symbol's value was 577 BUFFER is the last buffer for which this symbol's value was
581 made up to date. 578 made up to date.
582 579
@@ -617,6 +614,14 @@ struct Lisp_Buffer_Local_Value
617 Lisp_Object car, cdr; 614 Lisp_Object car, cdr;
618 }; 615 };
619 616
617/* In an overlay object, the mark bit of the plist is used as the GC mark.
618 START and END are markers in the overlay's buffer, and
619 PLIST is the overlay's property list. */
620struct Lisp_Overlay
621 {
622 enum Lisp_Misc_Type type; /* = Lisp_Misc_Overlay */
623 Lisp_Object start, end, plist;
624 };
620union Lisp_Misc 625union Lisp_Misc
621 { 626 {
622 enum Lisp_Misc_Type type; 627 enum Lisp_Misc_Type type;
@@ -627,6 +632,7 @@ union Lisp_Misc
627 struct Lisp_Objfwd u_objfwd; 632 struct Lisp_Objfwd u_objfwd;
628 struct Lisp_Buffer_Objfwd u_buffer_objfwd; 633 struct Lisp_Buffer_Objfwd u_buffer_objfwd;
629 struct Lisp_Buffer_Local_Value u_buffer_local_value; 634 struct Lisp_Buffer_Local_Value u_buffer_local_value;
635 struct Lisp_Overlay u_overlay;
630 }; 636 };
631 637
632#ifdef LISP_FLOAT_TYPE 638#ifdef LISP_FLOAT_TYPE
@@ -769,7 +775,7 @@ typedef unsigned char UCHAR;
769#else 775#else
770#define FLOATP(x) (0) 776#define FLOATP(x) (0)
771#endif 777#endif
772#define OVERLAYP(x) (XTYPE ((x)) == Lisp_Overlay) 778#define OVERLAYP(x) (MISCP (x) && XMISC (x)->type == Lisp_Misc_Overlay)
773#define MARKERP(x) (MISCP (x) && XMISC (x)->type == Lisp_Misc_Marker) 779#define MARKERP(x) (MISCP (x) && XMISC (x)->type == Lisp_Misc_Marker)
774#define INTFWDP(x) (MISCP (x) && XMISC (x)->type == Lisp_Misc_Intfwd) 780#define INTFWDP(x) (MISCP (x) && XMISC (x)->type == Lisp_Misc_Intfwd)
775#define BOOLFWDP(x) (MISCP (x) && XMISC (x)->type == Lisp_Misc_Boolfwd) 781#define BOOLFWDP(x) (MISCP (x) && XMISC (x)->type == Lisp_Misc_Boolfwd)