diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/lisp.h | 26 |
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. */ | ||
| 620 | struct Lisp_Overlay | ||
| 621 | { | ||
| 622 | enum Lisp_Misc_Type type; /* = Lisp_Misc_Overlay */ | ||
| 623 | Lisp_Object start, end, plist; | ||
| 624 | }; | ||
| 620 | union Lisp_Misc | 625 | union 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) |