]> git.eshelyaron.com Git - emacs.git/commitdiff
(enum Lisp_Misc_Type): New enumeration Lisp_Misc_Display_Local.
authorKarl Heuer <kwzh@gnu.org>
Sat, 28 Jan 1995 03:39:17 +0000 (03:39 +0000)
committerKarl Heuer <kwzh@gnu.org>
Sat, 28 Jan 1995 03:39:17 +0000 (03:39 +0000)
(struct Lisp_Display_Objfwd): New structure.
(XDISPLAY_OBJFWD, DISPLAY_OBJFWDP): Access the new structure.
(union Lisp_Misc): Add new member.

src/lisp.h

index d8175f1a58038ac12e39e94fd0bb1e61da2e382a..c8174baad69250119a36eba1bfe18e688668ba65 100644 (file)
@@ -79,6 +79,7 @@ enum Lisp_Misc_Type
     Lisp_Misc_Buffer_Local_Value,
     Lisp_Misc_Some_Buffer_Local_Value,
     Lisp_Misc_Overlay,
+    Lisp_Misc_Display_Objfwd,
     /* Currently floats are not a misc type,
        but let's define this in case we want to change that.  */
     Lisp_Misc_Float,
@@ -383,6 +384,7 @@ extern int pure_size;
 #define XBUFFER_OBJFWD(a) (&(XMISC(a)->u_buffer_objfwd))
 #define XBUFFER_LOCAL_VALUE(a) (&(XMISC(a)->u_buffer_local_value))
 #define XOVERLAY(a) (&(XMISC(a)->u_overlay))
+#define XDISPLAY_OBJFWD(a) (&(XMISC(a)->u_display_objfwd))
 
 /* Pseudovector types.  */
 #define XPROCESS(a) ((struct Lisp_Process *) XPNTR(a))
@@ -753,6 +755,15 @@ struct Lisp_Overlay
     Lisp_Object start, end, plist;
   };
 
+/* Like Lisp_Objfwd except that value lives in a slot in the
+   current perdisplay.  */
+struct Lisp_Display_Objfwd
+  {
+    int type : 16;     /* = Lisp_Misc_Display_Objfwd */
+    int spacer : 16;
+    int offset;
+  };
+
 
 union Lisp_Misc
   {
@@ -765,6 +776,7 @@ union Lisp_Misc
     struct Lisp_Buffer_Objfwd u_buffer_objfwd;
     struct Lisp_Buffer_Local_Value u_buffer_local_value;
     struct Lisp_Overlay u_overlay;
+    struct Lisp_Display_Objfwd u_display_objfwd;
   };
 \f
 #ifdef LISP_FLOAT_TYPE
@@ -923,6 +935,8 @@ typedef unsigned char UCHAR;
 #define GC_BUFFER_LOCAL_VALUEP(x) (GC_MISCP (x) && XMISC (x)->type == Lisp_Misc_Buffer_Local_Value)
 #define SOME_BUFFER_LOCAL_VALUEP(x) (MISCP (x) && XMISC (x)->type == Lisp_Misc_Some_Buffer_Local_Value)
 #define GC_SOME_BUFFER_LOCAL_VALUEP(x) (GC_MISCP (x) && XMISC (x)->type == Lisp_Misc_Some_Buffer_Local_Value)
+#define DISPLAY_OBJFWDP(x) (MISCP (x) && XMISC (x)->type == Lisp_Misc_Display_Objfwd)
+#define GC_DISPLAY_OBJFWDP(x) (GC_MISCP (x) && XMISC (x)->type == Lisp_Misc_Display_Objfwd)
 
 
 /* True if object X is a pseudovector whose code is CODE.  */