Skip to content

Commit

Permalink
Rationalize use of limits.h, moving the inclusion to Python.h.
Browse files Browse the repository at this point in the history
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 python#101659 and bug python#115323.
  • Loading branch information
freddrake committed Sep 26, 2000
1 parent 1b61859 commit d5fadf7
Show file tree
Hide file tree
Showing 25 changed files with 42 additions and 133 deletions.
4 changes: 4 additions & 0 deletions Include/Python.h
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
7 changes: 0 additions & 7 deletions Include/longobject.h
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
32 changes: 32 additions & 0 deletions Include/pyport.h
Original file line number Diff line number Diff line change
Expand Up @@ -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 [email protected]
*/
#undef LONG_MIN
#define LONG_MIN (-LONG_MAX-1)
#endif
#endif

#ifdef __cplusplus
}
#endif
Expand Down
1 change: 0 additions & 1 deletion Modules/_localemodule.c
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand Down
6 changes: 0 additions & 6 deletions Modules/_sre.c
Original file line number Diff line number Diff line change
Expand Up @@ -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 */
Expand Down
3 changes: 0 additions & 3 deletions Modules/arraymodule.c
Original file line number Diff line number Diff line change
Expand Up @@ -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 */

Expand Down
17 changes: 5 additions & 12 deletions Modules/md5.h
Original file line number Diff line number Diff line change
Expand Up @@ -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 ========== */
Expand Down
3 changes: 0 additions & 3 deletions Modules/selectmodule.c
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
6 changes: 0 additions & 6 deletions Modules/stropmodule.c
Original file line number Diff line number Diff line change
Expand Up @@ -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! */
Expand Down
1 change: 0 additions & 1 deletion Modules/structmodule.c
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,6 @@ The variable struct.error is an exception raised on errors.";

#include "Python.h"

#include <limits.h>
#include <ctype.h>


Expand Down
4 changes: 0 additions & 4 deletions Objects/complexobject.c
Original file line number Diff line number Diff line change
Expand Up @@ -9,10 +9,6 @@

#include "Python.h"

#ifdef HAVE_LIMITS_H
#include <limits.h>
#endif


/* elementary operations on complex numbers */

Expand Down
4 changes: 0 additions & 4 deletions Objects/fileobject.c
Original file line number Diff line number Diff line change
Expand Up @@ -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 */
Expand Down
30 changes: 0 additions & 30 deletions Objects/floatobject.c
Original file line number Diff line number Diff line change
Expand Up @@ -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 [email protected]
*/
#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);
Expand Down
12 changes: 0 additions & 12 deletions Objects/intobject.c
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
3 changes: 0 additions & 3 deletions Objects/listobject.c
Original file line number Diff line number Diff line change
Expand Up @@ -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))
Expand Down
3 changes: 0 additions & 3 deletions Objects/object.c
Original file line number Diff line number Diff line change
Expand Up @@ -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"
Expand Down
6 changes: 1 addition & 5 deletions Objects/stringobject.c
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
6 changes: 0 additions & 6 deletions Objects/unicodeobject.c
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
3 changes: 0 additions & 3 deletions Parser/myreadline.c
Original file line number Diff line number Diff line change
Expand Up @@ -10,9 +10,6 @@
*/

#include "Python.h"
#ifdef HAVE_LIMITS_H
#include <limits.h>
#endif

int (*PyOS_InputHook)(void) = NULL;

Expand Down
3 changes: 0 additions & 3 deletions Python/bltinmodule.c
Original file line number Diff line number Diff line change
Expand Up @@ -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 *);
Expand Down
6 changes: 0 additions & 6 deletions Python/ceval.c
Original file line number Diff line number Diff line change
Expand Up @@ -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 */

Expand Down
3 changes: 0 additions & 3 deletions Python/codecs.c
Original file line number Diff line number Diff line change
Expand Up @@ -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 ------------------------------------------------------------ */

Expand Down
6 changes: 0 additions & 6 deletions Python/compile.c
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
3 changes: 0 additions & 3 deletions Python/getargs.c
Original file line number Diff line number Diff line change
Expand Up @@ -9,9 +9,6 @@
#include "Python.h"

#include <ctype.h>
#ifdef HAVE_LIMITS_H
#include <limits.h>
#endif


int PyArg_Parse(PyObject *, char *, ...);
Expand Down
3 changes: 0 additions & 3 deletions Python/modsupport.c
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down

0 comments on commit d5fadf7

Please sign in to comment.