about summary refs log tree commit diff
path: root/timezone/zdump.c
diff options
context:
space:
mode:
authorJakub Jelinek <jakub@redhat.com>2007-07-31 13:33:18 +0000
committerJakub Jelinek <jakub@redhat.com>2007-07-31 13:33:18 +0000
commit32c075e1f01849e161724bbd400ba77244e482cc (patch)
tree5f083a3f352104f32bb6c902d57fa3f294bd8d4d /timezone/zdump.c
parentd6220e9ee38c1c9285221b023346201ec5f511b3 (diff)
downloadglibc-32c075e1f01849e161724bbd400ba77244e482cc.tar.gz
glibc-32c075e1f01849e161724bbd400ba77244e482cc.tar.xz
glibc-32c075e1f01849e161724bbd400ba77244e482cc.zip
.
Diffstat (limited to 'timezone/zdump.c')
-rw-r--r--timezone/zdump.c37
1 files changed, 20 insertions, 17 deletions
diff --git a/timezone/zdump.c b/timezone/zdump.c
index ae4d286b12..d525da1bae 100644
--- a/timezone/zdump.c
+++ b/timezone/zdump.c
@@ -1,4 +1,4 @@
-static char	elsieid[] = "@(#)zdump.c	8.2";
+static char	elsieid[] = "@(#)zdump.c	7.74";
 
 /*
 ** This code has been made independent of the rest of the time
@@ -15,7 +15,7 @@ static char	elsieid[] = "@(#)zdump.c	8.2";
 #include "ctype.h"	/* for isalpha et al. */
 #ifndef isascii
 #define isascii(x) 1
-#endif /* !defined isascii */
+#endif
 
 #ifndef ZDUMP_LO_YEAR
 #define ZDUMP_LO_YEAR	(-500)
@@ -130,7 +130,11 @@ static char	elsieid[] = "@(#)zdump.c	8.2";
 #endif /* !defined TZ_DOMAIN */
 
 #ifndef P
+#ifdef __STDC__
 #define P(x)	x
+#else /* !defined __STDC__ */
+#define P(x)	()
+#endif /* !defined __STDC__ */
 #endif /* !defined P */
 
 extern char **	environ;
@@ -414,21 +418,14 @@ _("%s: use of -v on system with floating time_t other than float or double\n"),
 		}
 	} else if (0 > (time_t) -1) {
 		/*
-		** time_t is signed.  Assume overflow wraps around.
+		** time_t is signed.
 		*/
-		time_t t = 0;
-		time_t t1 = 1;
+		register time_t	hibit;
 
-		while (t < t1) {
-			t = t1;
-			t1 = 2 * t1 + 1;
-		}
-
-		absolute_max_time = t;
-		t = -t;
-		absolute_min_time = t - 1;
-		if (t < absolute_min_time)
-			absolute_min_time = t;
+		for (hibit = 1; (hibit * 2) != 0; hibit *= 2)
+			continue;
+		absolute_min_time = hibit;
+		absolute_max_time = -(hibit + 1);
 	} else {
 		/*
 		** time_t is unsigned.
@@ -471,7 +468,10 @@ const long	y;
 }
 
 static time_t
-hunt(char *name, time_t lot, time_t hit)
+hunt(name, lot, hit)
+char *	name;
+time_t	lot;
+time_t	hit;
 {
 	time_t			t;
 	long			diff;
@@ -541,7 +541,10 @@ struct tm *	oldp;
 }
 
 static void
-show(char *zone, time_t t, int v)
+show(zone, t, v)
+char *	zone;
+time_t	t;
+int	v;
 {
 	register struct tm *	tmp;