From: Jim Meyering Date: Sat, 8 May 1999 23:28:42 +0000 (+0000) Subject: * src/system.h (CHAR_BIT, TYPE_SIGNED, TYPE_MINIMUM, TYPE_MAXIMUM, X-Git-Tag: TEXTUTILS-1_22k~13 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=4905751e2f5bbc6d412f221151ab58f938697a2c;p=platform%2Fupstream%2Fcoreutils.git * src/system.h (CHAR_BIT, TYPE_SIGNED, TYPE_MINIMUM, TYPE_MAXIMUM, and all the *_MIN and *_MAX symbols): Remove definitions. * src/sys2.h: Put the definitions here instead (this file is shared between all three *utils packages, while system.h is not). --- diff --git a/src/sys2.h b/src/sys2.h index bd36780..9207a08 100644 --- a/src/sys2.h +++ b/src/sys2.h @@ -3,14 +3,6 @@ more time, I'll merge the remaining things in system.h and everything in this file will go back there. */ -#ifndef UID_T_MAX -# define UID_T_MAX TYPE_MAXIMUM (uid_t) -#endif - -#ifndef GID_T_MAX -# define GID_T_MAX TYPE_MAXIMUM (gid_t) -#endif - #ifndef RETSIGTYPE # define RETSIGTYPE void #endif @@ -290,3 +282,67 @@ char *base_name PARAMS ((char const *)); #ifndef MIN # define MIN(a,b) (((a) < (b)) ? (a) : (b)) #endif + +#ifndef CHAR_BIT +# define CHAR_BIT 8 +#endif + +/* The extra casts work around common compiler bugs. */ +#define TYPE_SIGNED(t) (! ((t) 0 < (t) -1)) +/* The outer cast is needed to work around a bug in Cray C 5.0.3.0. + It is necessary at least when t == time_t. */ +#define TYPE_MINIMUM(t) ((t) (TYPE_SIGNED (t) \ + ? ~ (t) 0 << (sizeof (t) * CHAR_BIT - 1) : (t) 0)) +#define TYPE_MAXIMUM(t) ((t) (~ (t) 0 - TYPE_MINIMUM (t))) + +#ifndef CHAR_MIN +# define CHAR_MIN TYPE_MINIMUM (char) +#endif + +#ifndef CHAR_MAX +# define CHAR_MAX TYPE_MAXIMUM (char) +#endif + +#ifndef SCHAR_MIN +# define SCHAR_MIN (-1 - SCHAR_MAX) +#endif + +#ifndef SCHAR_MAX +# define SCHAR_MAX (CHAR_MAX == UCHAR_MAX ? CHAR_MAX / 2 : CHAR_MAX) +#endif + +#ifndef UCHAR_MAX +# define UCHAR_MAX TYPE_MAXIMUM (unsigned char) +#endif + +#ifndef SHRT_MIN +# define SHRT_MIN TYPE_MINIMUM (short int) +#endif + +#ifndef SHRT_MAX +# define SHRT_MAX TYPE_MAXIMUM (short int) +#endif + +#ifndef INT_MAX +# define INT_MAX TYPE_MAXIMUM (int) +#endif + +#ifndef UINT_MAX +# define UINT_MAX TYPE_MAXIMUM (unsigned int) +#endif + +#ifndef LONG_MAX +# define LONG_MAX TYPE_MAXIMUM (long) +#endif + +#ifndef ULONG_MAX +# define ULONG_MAX TYPE_MAXIMUM (unsigned long) +#endif + +#ifndef UID_T_MAX +# define UID_T_MAX TYPE_MAXIMUM (uid_t) +#endif + +#ifndef GID_T_MAX +# define GID_T_MAX TYPE_MAXIMUM (gid_t) +#endif