* lisp.h: Prefer 64-bit EMACS_INT if available.
authorPaul Eggert <eggert@cs.ucla.edu>
Fri, 29 Apr 2011 08:51:24 +0000 (01:51 -0700)
committerPaul Eggert <eggert@cs.ucla.edu>
Fri, 29 Apr 2011 08:51:24 +0000 (01:51 -0700)
(EMACS_INT, EMACS_UINT, BITS_PER_EMACS_INT, pI): Define to 64-bit
on 32-bit hosts that have 64-bit int, so that they can access
large files.

src/ChangeLog
src/lisp.h

index a1e048b..a9fc541 100644 (file)
@@ -1,5 +1,10 @@
 2011-04-29  Paul Eggert  <eggert@cs.ucla.edu>
 
+       * lisp.h: Prefer 64-bit EMACS_INT if available.
+       (EMACS_INT, EMACS_UINT, BITS_PER_EMACS_INT, pI): Define to 64-bit
+       on 32-bit hosts that have 64-bit int, so that they can access
+       large files.
+
        * lread.c, process.c: Do not include <inttypes.h>; lisp.h does it now.
 
        Prefer intptr_t/uintptr_t for integers the same widths as pointers.
index a8cf38f..3b9778d 100644 (file)
@@ -44,7 +44,16 @@ extern void check_cons_list (void);
 #ifndef EMACS_UINT
 #define EMACS_UINT unsigned long
 #endif
-#else /* not _LP64 */
+#elif /* !_LP64 && */ BITS_PER_LONG < BITS_PER_LONG_LONG
+#ifndef EMACS_INT
+#define EMACS_INT long long
+#define BITS_PER_EMACS_INT BITS_PER_LONG_LONG
+#define pI "ll"
+#endif
+#ifndef EMACS_UINT
+#define EMACS_UINT unsigned long long
+#endif
+#else /* ! (_LP64 || BITS_PER_LONG < BITS_PER_LONG_LONG) */
 #ifndef EMACS_INT
 #define EMACS_INT int
 #define BITS_PER_EMACS_INT BITS_PER_INT