aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorKarl Heuer1995-01-28 03:39:17 +0000
committerKarl Heuer1995-01-28 03:39:17 +0000
commitf334de0e0afd5a508bfaf5c90ca2a1f3410af486 (patch)
tree0c29c80be75ab37130d38ce943ecf52b1558003a /src
parentba72822c1d15f496b5cf3e250398fb9fc1ebdec6 (diff)
downloademacs-f334de0e0afd5a508bfaf5c90ca2a1f3410af486.tar.gz
emacs-f334de0e0afd5a508bfaf5c90ca2a1f3410af486.zip
(enum Lisp_Misc_Type): New enumeration Lisp_Misc_Display_Local.
(struct Lisp_Display_Objfwd): New structure. (XDISPLAY_OBJFWD, DISPLAY_OBJFWDP): Access the new structure. (union Lisp_Misc): Add new member.
Diffstat (limited to 'src')
-rw-r--r--src/lisp.h14
1 files changed, 14 insertions, 0 deletions
diff --git a/src/lisp.h b/src/lisp.h
index d8175f1a580..c8174baad69 100644
--- a/src/lisp.h
+++ b/src/lisp.h
@@ -79,6 +79,7 @@ enum Lisp_Misc_Type
79 Lisp_Misc_Buffer_Local_Value, 79 Lisp_Misc_Buffer_Local_Value,
80 Lisp_Misc_Some_Buffer_Local_Value, 80 Lisp_Misc_Some_Buffer_Local_Value,
81 Lisp_Misc_Overlay, 81 Lisp_Misc_Overlay,
82 Lisp_Misc_Display_Objfwd,
82 /* Currently floats are not a misc type, 83 /* Currently floats are not a misc type,
83 but let's define this in case we want to change that. */ 84 but let's define this in case we want to change that. */
84 Lisp_Misc_Float, 85 Lisp_Misc_Float,
@@ -383,6 +384,7 @@ extern int pure_size;
383#define XBUFFER_OBJFWD(a) (&(XMISC(a)->u_buffer_objfwd)) 384#define XBUFFER_OBJFWD(a) (&(XMISC(a)->u_buffer_objfwd))
384#define XBUFFER_LOCAL_VALUE(a) (&(XMISC(a)->u_buffer_local_value)) 385#define XBUFFER_LOCAL_VALUE(a) (&(XMISC(a)->u_buffer_local_value))
385#define XOVERLAY(a) (&(XMISC(a)->u_overlay)) 386#define XOVERLAY(a) (&(XMISC(a)->u_overlay))
387#define XDISPLAY_OBJFWD(a) (&(XMISC(a)->u_display_objfwd))
386 388
387/* Pseudovector types. */ 389/* Pseudovector types. */
388#define XPROCESS(a) ((struct Lisp_Process *) XPNTR(a)) 390#define XPROCESS(a) ((struct Lisp_Process *) XPNTR(a))
@@ -753,6 +755,15 @@ struct Lisp_Overlay
753 Lisp_Object start, end, plist; 755 Lisp_Object start, end, plist;
754 }; 756 };
755 757
758/* Like Lisp_Objfwd except that value lives in a slot in the
759 current perdisplay. */
760struct Lisp_Display_Objfwd
761 {
762 int type : 16; /* = Lisp_Misc_Display_Objfwd */
763 int spacer : 16;
764 int offset;
765 };
766
756 767
757union Lisp_Misc 768union Lisp_Misc
758 { 769 {
@@ -765,6 +776,7 @@ union Lisp_Misc
765 struct Lisp_Buffer_Objfwd u_buffer_objfwd; 776 struct Lisp_Buffer_Objfwd u_buffer_objfwd;
766 struct Lisp_Buffer_Local_Value u_buffer_local_value; 777 struct Lisp_Buffer_Local_Value u_buffer_local_value;
767 struct Lisp_Overlay u_overlay; 778 struct Lisp_Overlay u_overlay;
779 struct Lisp_Display_Objfwd u_display_objfwd;
768 }; 780 };
769 781
770#ifdef LISP_FLOAT_TYPE 782#ifdef LISP_FLOAT_TYPE
@@ -923,6 +935,8 @@ typedef unsigned char UCHAR;
923#define GC_BUFFER_LOCAL_VALUEP(x) (GC_MISCP (x) && XMISC (x)->type == Lisp_Misc_Buffer_Local_Value) 935#define GC_BUFFER_LOCAL_VALUEP(x) (GC_MISCP (x) && XMISC (x)->type == Lisp_Misc_Buffer_Local_Value)
924#define SOME_BUFFER_LOCAL_VALUEP(x) (MISCP (x) && XMISC (x)->type == Lisp_Misc_Some_Buffer_Local_Value) 936#define SOME_BUFFER_LOCAL_VALUEP(x) (MISCP (x) && XMISC (x)->type == Lisp_Misc_Some_Buffer_Local_Value)
925#define GC_SOME_BUFFER_LOCAL_VALUEP(x) (GC_MISCP (x) && XMISC (x)->type == Lisp_Misc_Some_Buffer_Local_Value) 937#define GC_SOME_BUFFER_LOCAL_VALUEP(x) (GC_MISCP (x) && XMISC (x)->type == Lisp_Misc_Some_Buffer_Local_Value)
938#define DISPLAY_OBJFWDP(x) (MISCP (x) && XMISC (x)->type == Lisp_Misc_Display_Objfwd)
939#define GC_DISPLAY_OBJFWDP(x) (GC_MISCP (x) && XMISC (x)->type == Lisp_Misc_Display_Objfwd)
926 940
927 941
928/* True if object X is a pseudovector whose code is CODE. */ 942/* True if object X is a pseudovector whose code is CODE. */