2005-08-25 Stepan Kasal * modules/mktime, modules/strtol: Add lib/intprops.h. * modules/xstrtol: Fix a typo in a comment. 2005-08-25 Stepan Kasal * mktime.c, strtol.c: Include intprops.h instead of defining the same macros. Index: lib/mktime.c =================================================================== RCS file: /cvsroot/gnulib/gnulib/lib/mktime.c,v retrieving revision 1.52 diff -u -r1.52 mktime.c --- lib/mktime.c 23 Jun 2005 07:14:09 -0000 1.52 +++ lib/mktime.c 25 Aug 2005 14:28:49 -0000 @@ -62,38 +62,7 @@ ? (a) >> (b) \ : (a) / (1 << (b)) - ((a) % (1 << (b)) < 0)) -/* The extra casts in the following macros work around compiler bugs, - e.g., in Cray C 5.0.3.0. */ - -/* True if the arithmetic type T is an integer type. bool counts as - an integer. */ -#define TYPE_IS_INTEGER(t) ((t) 1.5 == 1) - -/* True if negative values of the signed integer type T use two's - complement, ones' complement, or signed magnitude representation, - respectively. Much GNU code assumes two's complement, but some - people like to be portable to all possible C hosts. */ -#define TYPE_TWOS_COMPLEMENT(t) ((t) ~ (t) 0 == (t) -1) -#define TYPE_ONES_COMPLEMENT(t) ((t) ~ (t) 0 == 0) -#define TYPE_SIGNED_MAGNITUDE(t) ((t) ~ (t) 0 < (t) -1) - -/* True if the arithmetic type T is signed. */ -#define TYPE_SIGNED(t) (! ((t) 0 < (t) -1)) - -/* The maximum and minimum values for the integer type T. These - macros have undefined behavior if T is signed and has padding bits. - If this is a problem for you, please let us know how to fix it for - your host. */ -#define TYPE_MINIMUM(t) \ - ((t) (! TYPE_SIGNED (t) \ - ? (t) 0 \ - : TYPE_SIGNED_MAGNITUDE (t) \ - ? ~ (t) 0 \ - : ~ (t) 0 << (sizeof (t) * CHAR_BIT - 1))) -#define TYPE_MAXIMUM(t) \ - ((t) (! TYPE_SIGNED (t) \ - ? (t) -1 \ - : ~ (~ (t) 0 << (sizeof (t) * CHAR_BIT - 1)))) +#include "intprops.h" #ifndef TIME_T_MIN # define TIME_T_MIN TYPE_MINIMUM (time_t) Index: lib/strtol.c =================================================================== RCS file: /cvsroot/gnulib/gnulib/lib/strtol.c,v retrieving revision 1.23 diff -u -r1.23 strtol.c --- lib/strtol.c 14 May 2005 06:03:58 -0000 1.23 +++ lib/strtol.c 25 Aug 2005 14:28:49 -0000 @@ -124,34 +124,7 @@ # define STRTOL_LONG_MAX LONG_LONG_MAX # define STRTOL_ULONG_MAX ULONG_LONG_MAX -/* The extra casts in the following macros work around compiler bugs, - e.g., in Cray C 5.0.3.0. */ - -/* True if negative values of the signed integer type T use two's - complement, ones' complement, or signed magnitude representation, - respectively. Much GNU code assumes two's complement, but some - people like to be portable to all possible C hosts. */ -# define TYPE_TWOS_COMPLEMENT(t) ((t) ~ (t) 0 == (t) -1) -# define TYPE_ONES_COMPLEMENT(t) ((t) ~ (t) 0 == 0) -# define TYPE_SIGNED_MAGNITUDE(t) ((t) ~ (t) 0 < (t) -1) - -/* True if the arithmetic type T is signed. */ -# define TYPE_SIGNED(t) (! ((t) 0 < (t) -1)) - -/* The maximum and minimum values for the integer type T. These - macros have undefined behavior if T is signed and has padding bits. - If this is a problem for you, please let us know how to fix it for - your host. */ -# define TYPE_MINIMUM(t) \ - ((t) (! TYPE_SIGNED (t) \ - ? (t) 0 \ - : TYPE_SIGNED_MAGNITUDE (t) \ - ? ~ (t) 0 \ - : ~ (t) 0 << (sizeof (t) * CHAR_BIT - 1))) -# define TYPE_MAXIMUM(t) \ - ((t) (! TYPE_SIGNED (t) \ - ? (t) -1 \ - : ~ (~ (t) 0 << (sizeof (t) * CHAR_BIT - 1)))) +# include "intprops.h" # ifndef ULONG_LONG_MAX # define ULONG_LONG_MAX TYPE_MAXIMUM (unsigned long long) Index: modules/mktime =================================================================== RCS file: /cvsroot/gnulib/gnulib/modules/mktime,v retrieving revision 1.5 diff -u -r1.5 mktime --- modules/mktime 22 Sep 2004 15:11:04 -0000 1.5 +++ modules/mktime 25 Aug 2005 14:28:49 -0000 @@ -2,6 +2,7 @@ mktime() function: convert broken-down time to linear time. Files: +lib/intprops.h lib/mktime.c m4/mktime.m4 Index: modules/strtol =================================================================== RCS file: /cvsroot/gnulib/gnulib/modules/strtol,v retrieving revision 1.4 diff -u -r1.4 strtol --- modules/strtol 22 Sep 2004 15:11:04 -0000 1.4 +++ modules/strtol 25 Aug 2005 14:28:49 -0000 @@ -2,6 +2,7 @@ strtol() function: convert string to 'long'. Files: +lib/intprops.h lib/strtol.c m4/strtol.m4 Index: modules/xstrtol =================================================================== RCS file: /cvsroot/gnulib/gnulib/modules/xstrtol,v retrieving revision 1.9 diff -u -r1.9 xstrtol --- modules/xstrtol 21 Mar 2005 22:07:25 -0000 1.9 +++ modules/xstrtol 25 Aug 2005 14:28:49 -0000 @@ -1,5 +1,5 @@ Description: -Convert string to 'long` or 'unsigned long', with error checking. +Convert string to 'long' or 'unsigned long', with error checking. Files: lib/intprops.h