[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Bug-gnulib] mktime.c patch to assume C89
From: |
Paul Eggert |
Subject: |
[Bug-gnulib] mktime.c patch to assume C89 |
Date: |
Thu, 05 Jun 2003 13:56:04 -0700 |
While we're on the subject of mktime.c, we might as well convert it to
asume freestanding C89 or better. I did so, and this uncovered a
portability bug in the testing code so the exercise wasn't entirely
pointless. I installed this patch.
2003-06-05 Paul Eggert <address@hidden>
* mktime.c: Assume freestanding C89 or better.
(HAVE_LIMITS_H): Remove. Assume it's 1.
(__P): Remove; not used.
(CHAR_BIT, INT_MIN, INT_MAX): Remove; <limits.h> defines them.
(mktime, not_equal_tm, print_tm, check_result,
main): Use prototypes. Use const * where appropriate.
(main): Fix typo in testing code that uncovered by above changes.
(Local Variables): Remove -DHAVE_LIMITS_H from compile-command.
Index: mktime.c
===================================================================
RCS file: /cvsroot/gnulib/gnulib/lib/mktime.c,v
retrieving revision 1.37
retrieving revision 1.38
diff -p -u -r1.37 -r1.38
--- mktime.c 5 Jun 2003 06:43:15 -0000 1.37
+++ mktime.c 5 Jun 2003 20:07:59 -0000 1.38
@@ -26,7 +26,6 @@
#endif
#ifdef _LIBC
-# define HAVE_LIMITS_H 1
# define STDC_HEADERS 1
#endif
@@ -40,9 +39,7 @@
#include <sys/types.h> /* Some systems define `time_t' here. */
#include <time.h>
-#if HAVE_LIMITS_H
-# include <limits.h>
-#endif
+#include <limits.h>
#if DEBUG
# include <stdio.h>
@@ -54,18 +51,6 @@
# define mktime my_mktime
#endif /* DEBUG */
-#ifndef __P
-# if defined __GNUC__ || (defined __STDC__ && __STDC__)
-# define __P(args) args
-# else
-# define __P(args) ()
-# endif /* GCC. */
-#endif /* Not __P. */
-
-#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.
@@ -74,13 +59,6 @@
? ~ (t) 0 << (sizeof (t) * CHAR_BIT - 1) : (t) 0))
#define TYPE_MAXIMUM(t) ((t) (~ (t) 0 - TYPE_MINIMUM (t)))
-#ifndef INT_MIN
-# define INT_MIN TYPE_MINIMUM (int)
-#endif
-#ifndef INT_MAX
-# define INT_MAX TYPE_MAXIMUM (int)
-#endif
-
#ifndef TIME_T_MIN
# define TIME_T_MIN TYPE_MINIMUM (time_t)
#endif
@@ -383,8 +361,7 @@ static long int localtime_offset;
/* Convert *TP to a time_t value. */
time_t
-mktime (tp)
- struct tm *tp;
+mktime (struct tm *tp)
{
#ifdef _LIBC
/* POSIX.1 8.1.1 requires that whenever mktime() is called, the
@@ -408,9 +385,7 @@ libc_hidden_weak (timelocal)
#if DEBUG
static int
-not_equal_tm (a, b)
- struct tm *a;
- struct tm *b;
+not_equal_tm (struct tm const *a, struct tm const *b)
{
return ((a->tm_sec ^ b->tm_sec)
| (a->tm_min ^ b->tm_min)
@@ -424,8 +399,7 @@ not_equal_tm (a, b)
}
static void
-print_tm (tp)
- struct tm *tp;
+print_tm (struct tm const *tp)
{
if (tp)
printf ("%04d-%02d-%02d %02d:%02d:%02d yday %03d wday %d isdst %d",
@@ -437,11 +411,7 @@ print_tm (tp)
}
static int
-check_result (tk, tmk, tl, lt)
- time_t tk;
- struct tm tmk;
- time_t tl;
- struct tm *lt;
+check_result (time_t tk, struct tm tmk, time_t tl, struct tm const *lt)
{
if (tk != tl || !lt || not_equal_tm (&tmk, lt))
{
@@ -457,9 +427,7 @@ check_result (tk, tmk, tl, lt)
}
int
-main (argc, argv)
- int argc;
- char **argv;
+main (int argc, char **argv)
{
int status = 0;
struct tm tm, tmk, tml;
@@ -505,7 +473,7 @@ main (argc, argv)
{
tmk = tml = *lt;
tk = mktime (&tmk);
- status |= check_result (tk, tmk, tl, tml);
+ status |= check_result (tk, tmk, tl, &tml);
}
else
{
@@ -522,7 +490,7 @@ main (argc, argv)
{
tmk = tml = *lt;
tk = tl;
- status |= check_result (tk, tmk, tl, tml);
+ status |= check_result (tk, tmk, tl, &tml);
}
else
{
@@ -545,6 +513,6 @@ main (argc, argv)
/*
Local Variables:
-compile-command: "gcc -DDEBUG -DHAVE_LIMITS_H -DSTDC_HEADERS -Wall -W -O -g
mktime.c -o mktime"
+compile-command: "gcc -DDEBUG -DSTDC_HEADERS -Wall -W -O -g mktime.c -o mktime"
End:
*/
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Bug-gnulib] mktime.c patch to assume C89,
Paul Eggert <=