Rationalize use of limits.h, moving the inclusion to Python.h.

Add definitions of INT_MAX and LONG_MAX to pyport.h.
Remove includes of limits.h and conditional definitions of INT_MAX
and LONG_MAX elsewhere.

This closes SourceForge patch #101659 and bug #115323.
This commit is contained in:
Fred Drake 2000-09-26 05:46:01 +00:00
parent 1b6185941e
commit d5fadf75e4
25 changed files with 42 additions and 133 deletions

View File

@ -23,6 +23,10 @@
#include "patchlevel.h"
#include "config.h"
#ifdef HAVE_LIMITS_H
#include <limits.h>
#endif
/* config.h may or may not define DL_IMPORT */
#ifndef DL_IMPORT /* declarations for DLL import/export */
#define DL_IMPORT(RTYPE) RTYPE

View File

@ -24,14 +24,7 @@ extern DL_IMPORT(void *) PyLong_AsVoidPtr(PyObject *);
#ifdef HAVE_LONG_LONG
#ifdef HAVE_LIMITS_H
#include <limits.h>
#endif
/* Hopefully this is portable... */
#ifndef LONG_MAX
#define LONG_MAX 2147483647L
#endif
#ifndef ULONG_MAX
#define ULONG_MAX 4294967295U
#endif

View File

@ -354,6 +354,38 @@ typedef struct fd_set {
#endif /* fd manipulation macros */
/* limits.h constants that may be missing */
#ifndef INT_MAX
#define INT_MAX 2147483647
#endif
#ifndef LONG_MAX
#if SIZEOF_LONG == 4
#define LONG_MAX 0X7FFFFFFFL
#elif SIZEOF_LONG == 8
#define LONG_MAX 0X7FFFFFFFFFFFFFFFL
#else
#error "could not set LONG_MAX in pyport.h"
#endif
#endif
#ifndef LONG_MIN
#define LONG_MIN (-LONG_MAX-1)
#endif
#ifdef __NeXT__
#ifdef __sparc__
/*
* This works around a bug in the NS/Sparc 3.3 pre-release
* limits.h header file.
* 10-Feb-1995 bwarsaw@cnri.reston.va.us
*/
#undef LONG_MIN
#define LONG_MIN (-LONG_MAX-1)
#endif
#endif
#ifdef __cplusplus
}
#endif

View File

@ -15,7 +15,6 @@ This software comes with no warranty. Use at your own risk.
#include <errno.h>
#include <locale.h>
#include <string.h>
#include <limits.h>
#include <ctype.h>
#if defined(MS_WIN32)

View File

@ -40,12 +40,6 @@ char copyright[] = " SRE 0.9.8 Copyright (c) 1997-2000 by Secret Labs AB ";
#include "sre.h"
#if defined(HAVE_LIMITS_H)
#include <limits.h>
#else
#define INT_MAX 2147483647
#endif
#include <ctype.h>
/* name of this module, minus the leading underscore */

View File

@ -12,9 +12,6 @@
#include <sys/types.h> /* For size_t */
#endif /* DONT_HAVE_SYS_TYPES_H */
#endif /* !STDC_HEADERS */
#ifdef HAVE_LIMITS_H
#include <limits.h>
#endif /* HAVE_LIMITS_H */
struct arrayobject; /* Forward */

View File

@ -33,21 +33,14 @@ typedef unsigned char *POINTER;
/* UINT2 defines a two byte word */
typedef unsigned short int UINT2;
#ifdef HAVE_LIMITS_H
#include <limits.h>
#else
/* Wild guess */
#define LONG_MAX 2147483647L
#endif
/* UINT4 defines a four byte word */
#if defined(INT_MAX) && INT_MAX == 2147483647
typedef unsigned int UINT4;
#else
#if defined(LONG_MAX) && LONG_MAX == 2147483647L
#if SIZEOF_LONG == 4
typedef unsigned long int UINT4;
#else
#if INT_MAX == 2147483647
typedef unsigned int UINT4;
#endif
/* Too bad if neither is */
/* Too bad if neither is; pyport.h would need to be fixed. */
#endif
/* ========== End global.h; continue md5.h ========== */

View File

@ -12,9 +12,6 @@
#ifdef HAVE_UNISTD_H
#include <unistd.h>
#endif
#ifdef HAVE_LIMITS_H
#include <limits.h>
#endif
#ifdef HAVE_POLL_H
#include <poll.h>
#endif

View File

@ -9,12 +9,6 @@ this module directly.";
#include "Python.h"
#ifdef HAVE_LIMITS_H
#include <limits.h>
#else
#define INT_MAX 2147483647
#endif
#include <ctype.h>
/* XXX This file assumes that the <ctype.h> is*() functions
XXX are defined for all 8-bit characters! */

View File

@ -31,7 +31,6 @@ The variable struct.error is an exception raised on errors.";
#include "Python.h"
#include <limits.h>
#include <ctype.h>

View File

@ -9,10 +9,6 @@
#include "Python.h"
#ifdef HAVE_LIMITS_H
#include <limits.h>
#endif
/* elementary operations on complex numbers */

View File

@ -4,10 +4,6 @@
#include "Python.h"
#include "structmember.h"
#ifdef HAVE_LIMITS_H
#include <limits.h>
#endif
#ifndef DONT_HAVE_SYS_TYPES_H
#include <sys/types.h>
#endif /* DONT_HAVE_SYS_TYPES_H */

View File

@ -23,36 +23,6 @@
#define CHECK(x) /* Don't know how to check */
#endif
#ifdef HAVE_LIMITS_H
#include <limits.h>
#endif
#ifndef LONG_MAX
#if SIZEOF_LONG == 4
#define LONG_MAX 0X7FFFFFFFL
#elif SIZEOF_LONG == 8
#define LONG_MAX 0X7FFFFFFFFFFFFFFFL
#else
#error "could not set LONG_MAX"
#endif
#endif
#ifndef LONG_MIN
#define LONG_MIN (-LONG_MAX-1)
#endif
#ifdef __NeXT__
#ifdef __sparc__
/*
* This works around a bug in the NS/Sparc 3.3 pre-release
* limits.h header file.
* 10-Feb-1995 bwarsaw@cnri.reston.va.us
*/
#undef LONG_MIN
#define LONG_MIN (-LONG_MAX-1)
#endif
#endif
#if !defined(__STDC__) && !defined(macintosh)
extern double fmod(double, double);
extern double pow(double, double);

View File

@ -4,18 +4,6 @@
#include "Python.h"
#include <ctype.h>
#ifdef HAVE_LIMITS_H
#include <limits.h>
#endif
#ifndef LONG_MAX
#define LONG_MAX 0X7FFFFFFFL
#endif
#ifndef LONG_MIN
#define LONG_MIN (-LONG_MAX-1)
#endif
#ifndef CHAR_BIT
#define CHAR_BIT 8
#endif

View File

@ -8,9 +8,6 @@
#else
#include <sys/types.h> /* For size_t */
#endif
#ifdef HAVE_LIMITS_H
#include <limits.h>
#endif
#define ROUNDUP(n, PyTryBlock) \
((((n)+(PyTryBlock)-1)/(PyTryBlock))*(PyTryBlock))

View File

@ -2,9 +2,6 @@
/* Generic object operations; and implementation of None (NoObject) */
#include "Python.h"
#ifdef HAVE_LIMITS_H
#include <limits.h>
#endif
#ifdef macintosh
#include "macglue.h"

View File

@ -9,13 +9,9 @@
int null_strings, one_strings;
#endif
#ifdef HAVE_LIMITS_H
#include <limits.h>
#else
#ifndef UCHAR_MAX
#if !defined(HAVE_LIMITS_H) && !defined(UCHAR_MAX)
#define UCHAR_MAX 255
#endif
#endif
static PyStringObject *characters[UCHAR_MAX + 1];
#ifndef DONT_SHARE_SHORT_STRINGS

View File

@ -67,12 +67,6 @@ Copyright (c) Corporation for National Research Initiatives.
#include "unicodeobject.h"
#include "ucnhash.h"
#if defined(HAVE_LIMITS_H)
#include <limits.h>
#else
#define INT_MAX 2147483647
#endif
#ifdef MS_WIN32
#include <windows.h>
#endif

View File

@ -10,9 +10,6 @@
*/
#include "Python.h"
#ifdef HAVE_LIMITS_H
#include <limits.h>
#endif
int (*PyOS_InputHook)(void) = NULL;

View File

@ -12,9 +12,6 @@
#ifdef HAVE_UNISTD_H
#include <unistd.h>
#endif
#ifdef HAVE_LIMITS_H
#include <limits.h>
#endif
/* Forward */
static PyObject *filterstring(PyObject *, PyObject *);

View File

@ -20,12 +20,6 @@
#include <ctype.h>
#ifdef HAVE_LIMITS_H
#include <limits.h>
#else
#define INT_MAX 2147483647
#endif
/* Turn this on if your compiler chokes on the big switch: */
/* #define CASE_TOO_BIG 1 */

View File

@ -10,9 +10,6 @@ Copyright (c) Corporation for National Research Initiatives.
#include "Python.h"
#include <ctype.h>
#ifdef HAVE_LIMITS_H
#include <limits.h>
#endif
/* --- Globals ------------------------------------------------------------ */

View File

@ -24,12 +24,6 @@
#include "structmember.h"
#include <ctype.h>
#ifdef HAVE_LIMITS_H
#include <limits.h>
#endif
#ifndef INT_MAX
#define INT_MAX 2147483647
#endif
/* Three symbols from graminit.h are also defined in Python.h, with
Py_ prefixes to their names. Python.h can't include graminit.h

View File

@ -9,9 +9,6 @@
#include "Python.h"
#include <ctype.h>
#ifdef HAVE_LIMITS_H
#include <limits.h>
#endif
int PyArg_Parse(PyObject *, char *, ...);

View File

@ -2,9 +2,6 @@
/* Module support implementation */
#include "Python.h"
#ifdef HAVE_LIMITS_H
#include <limits.h>
#endif
#ifdef MPW /* MPW pushes 'extended' for float and double types with varargs */
typedef extended va_double;