$NetBSD: patch-bj,v 1.1 2000/09/26 21:42:35 eeh Exp $

--- ./src/lisp.h.orig	Sun Jan  3 08:31:23 1999
+++ ./src/lisp.h	Tue Sep 26 09:48:10 2000
@@ -123,25 +123,25 @@
   {
     /* Used for comparing two Lisp_Objects;
        also, positive integers can be accessed fast this way.  */
-    int i;
+    long int i;
 
     struct
       {
-	int val: VALBITS;
-	int type: GCTYPEBITS+1;
+	long int val: VALBITS;
+	long int type: GCTYPEBITS+1;
       } s;
     struct
       {
-	unsigned int val: VALBITS;
-	int type: GCTYPEBITS+1;
+	long unsigned int val: VALBITS;
+	long int type: GCTYPEBITS+1;
       } u;
     struct
       {
-	unsigned int val: VALBITS;
+	long unsigned int val: VALBITS;
 	enum Lisp_Type type: GCTYPEBITS;
 	/* The markbit is not really part of the value of a Lisp_Object,
 	   and is always zero except during garbage collection.  */
-	unsigned int markbit: 1;
+	long unsigned int markbit: 1;
       } gu;
   }
 Lisp_Object;
@@ -153,17 +153,17 @@
   {
     /* Used for comparing two Lisp_Objects;
        also, positive integers can be accessed fast this way.  */
-    int i;
+    long int i;
 
     struct
       {
-	int type: GCTYPEBITS+1;
-	int val: VALBITS;
+	long int type: GCTYPEBITS+1;
+	long int val: VALBITS;
       } s;
     struct
       {
-	int type: GCTYPEBITS+1;
-	unsigned int val: VALBITS;
+	long int type: GCTYPEBITS+1;
+	long unsigned int val: VALBITS;
       } u;
     struct
       {
@@ -171,7 +171,7 @@
 	   and is always zero except during garbage collection.  */
 	unsigned int markbit: 1;
 	enum Lisp_Type type: GCTYPEBITS;
-	unsigned int val: VALBITS;
+	long unsigned int val: VALBITS;
       } gu;
   }
 Lisp_Object;
@@ -270,14 +270,14 @@
 /* Extract the value of a Lisp_Object as a signed integer.  */
 
 #ifndef XINT   /* Some machines need to do this differently.  */
-#define XINT(a) (((a) << (BITS_PER_INT-VALBITS)) >> (BITS_PER_INT-VALBITS))
+#define XINT(a) (EMACS_INT) (((a) << (BITS_PER_EMACS_INT-VALBITS)) >> (BITS_PER_EMACS_INT-VALBITS))
 #endif
 
 /* Extract the value as an unsigned integer.  This is a basis
    for extracting it as a pointer to a structure in storage.  */
 
 #ifndef XUINT
-#define XUINT(a) ((a) & VALMASK)
+#define XUINT(a) (EMACS_UINT) ((a) & VALMASK)
 #endif
 
 #ifndef XPNTR
@@ -358,7 +358,7 @@
 
 #ifdef EXPLICIT_SIGN_EXTEND
 /* Make sure we sign-extend; compilers have been known to fail to do so.  */
-#define XINT(a) (((a).i << (BITS_PER_INT-VALBITS)) >> (BITS_PER_INT-VALBITS))
+#define XINT(a) (((a).i << (BITS_PER_EMACS_INT-VALBITS)) >> (BITS_PER_EMACS_INT-VALBITS))
 #else
 #define XINT(a) ((a).s.val)
 #endif /* EXPLICIT_SIGN_EXTEND */
@@ -367,7 +367,7 @@
 #define XPNTR(a) ((a).u.val)
 
 #define XSET(var, vartype, ptr) \
-   (((var).s.type = ((char) (vartype))), ((var).s.val = ((int) (ptr))))
+   (((var).s.type = ((char) (vartype))), ((var).s.val = ((EMACS_INT) (ptr))))
 
 extern Lisp_Object make_number ();
 
