From b00cdd96e9b3fa641553c01ecbe03b6c3617b7df Mon Sep 17 00:00:00 2001 From: Paul Eggert Date: Wed, 1 Jan 2014 11:27:41 -0800 Subject: [PATCH] * lisp.h (EMACS_INT): Configure based on INTPTR_MAX, not LONG_MAX. This is a cleaner way to fix the MinGW-w64 porting problem. Check for INTPTR_MAX misconfiguration. --- src/ChangeLog | 6 ++++++ src/lisp.h | 24 ++++++++++++++---------- 2 files changed, 20 insertions(+), 10 deletions(-) diff --git a/src/ChangeLog b/src/ChangeLog index e41ccd168c6..1291815a4bc 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,9 @@ +2014-01-01 Paul Eggert + + * lisp.h (EMACS_INT): Configure based on INTPTR_MAX, not LONG_MAX. + This is a cleaner way to fix the MinGW-w64 porting problem. + Check for INTPTR_MAX misconfiguration. + 2014-01-01 Eli Zaretskii * search.c (newline_cache_on_off, find_newline): In indirect diff --git a/src/lisp.h b/src/lisp.h index 2a6d996a1ab..043e5b13f6b 100644 --- a/src/lisp.h +++ b/src/lisp.h @@ -63,21 +63,25 @@ INLINE_HEADER_BEGIN pI - printf length modifier for EMACS_INT EMACS_UINT - unsigned variant of EMACS_INT */ #ifndef EMACS_INT_MAX -# if LONG_MAX < LLONG_MAX && (defined(WIDE_EMACS_INT) || defined(_WIN64)) -typedef long long int EMACS_INT; -typedef unsigned long long int EMACS_UINT; -# define EMACS_INT_MAX LLONG_MAX -# define pI "ll" -# elif INT_MAX < LONG_MAX +# if INTPTR_MAX <= 0 +# error "INTPTR_MAX misconfigured" +# elif INTPTR_MAX <= INT_MAX && !defined WIDE_EMACS_INT +typedef int EMACS_INT; +typedef unsigned int EMACS_UINT; +# define EMACS_INT_MAX INT_MAX +# define pI "" +# elif INTPTR_MAX <= LONG_MAX && !defined WIDE_EMACS_INT typedef long int EMACS_INT; typedef unsigned long EMACS_UINT; # define EMACS_INT_MAX LONG_MAX # define pI "l" +# elif INTPTR_MAX <= LLONG_MAX +typedef long long int EMACS_INT; +typedef unsigned long long int EMACS_UINT; +# define EMACS_INT_MAX LLONG_MAX +# define pI "ll" # else -typedef int EMACS_INT; -typedef unsigned int EMACS_UINT; -# define EMACS_INT_MAX INT_MAX -# define pI "" +# error "INTPTR_MAX too large" # endif #endif -- 2.39.2