From 2fa330284c229d85ca45efeefd6a059ab69c5bc5 Mon Sep 17 00:00:00 2001 From: "Thomas G. Lockhart" Date: Mon, 17 Nov 1997 16:26:27 +0000 Subject: [PATCH] Use limits.h for INT, SHRT, and SCHAR min and max values rather than hardcoded values. --- src/backend/utils/adt/numutils.c | 36 +++++++++++++++++++++++++------- 1 file changed, 29 insertions(+), 7 deletions(-) diff --git a/src/backend/utils/adt/numutils.c b/src/backend/utils/adt/numutils.c index dd33d41081..07bb1b6fda 100644 --- a/src/backend/utils/adt/numutils.c +++ b/src/backend/utils/adt/numutils.c @@ -10,13 +10,16 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/utils/adt/numutils.c,v 1.16 1997/09/18 20:22:15 momjian Exp $ + * $Header: /cvsroot/pgsql/src/backend/utils/adt/numutils.c,v 1.17 1997/11/17 16:26:27 thomas Exp $ * *------------------------------------------------------------------------- */ #include /* for sprintf() */ #include #include +#ifdef HAVE_LIMITS +#include +#endif #include "postgres.h" #include "utils/builtins.h" /* where the declarations go */ #ifndef HAVE_MEMMOVE @@ -26,6 +29,25 @@ #endif #include /* ecvt(), fcvt() */ +#ifndef INT_MAX +#define INT_MAX (0x7FFFFFFFL) +#endif +#ifndef INT_MIN +#define INT_MIN (-0x80000000L) +#endif +#ifndef SHRT_MAX +#define SHRT_MAX (0x7FFF) +#endif +#ifndef SHRT_MIN +#define SHRT_MIN (-0x8000) +#endif +#ifndef SCHAR_MAX +#define SCHAR_MAX (0x7F) +#endif +#ifndef SCHAR_MIN +#define SCHAR_MIN (-0x80) +#endif + int32 pg_atoi(char *s, int size, int c) { @@ -46,12 +68,12 @@ pg_atoi(char *s, int size, int c) case sizeof(int32): #ifdef HAS_LONG_LONG /* won't get ERANGE on these with 64-bit longs... */ - if (l < -0x80000000L) + if (l < INT_MIN) { errno = ERANGE; elog(WARN, "pg_atoi: error reading \"%s\": %m", s); } - if (l > 0x7fffffffL) + if (l > INT_MAX) { errno = ERANGE; elog(WARN, "pg_atoi: error reading \"%s\": %m", s); @@ -59,24 +81,24 @@ pg_atoi(char *s, int size, int c) #endif /* HAS_LONG_LONG */ break; case sizeof(int16): - if (l < -0x8000) + if (l < SHRT_MIN) { errno = ERANGE; elog(WARN, "pg_atoi: error reading \"%s\": %m", s); } - if (l > 0x7fff) + if (l > SHRT_MAX) { errno = ERANGE; elog(WARN, "pg_atoi: error reading \"%s\": %m", s); } break; case sizeof(int8): - if (l < -0x80) + if (l < SCHAR_MIN) { errno = ERANGE; elog(WARN, "pg_atoi: error reading \"%s\": %m", s); } - if (l > 0x7f) + if (l > SCHAR_MAX) { errno = ERANGE; elog(WARN, "pg_atoi: error reading \"%s\": %m", s);