#include <stdio.h>
#include <ctype.h>
-/* The code at the top of get_date which figures out the offset of the
- current time zone checks various CPP symbols to see if special
- tricks are need, but defaults to using the gettimeofday system call.
- Include <sys/time.h> if that will be used. */
-
#if defined (vms)
-
#include <types.h>
#include <time.h>
-
#else
-
#include <sys/types.h>
-
#ifdef TIME_WITH_SYS_TIME
#include <sys/time.h>
#include <time.h>
#if defined (HAVE_SYS_TIMEB_H)
#include <sys/timeb.h>
#else
-/*
-** We use the obsolete `struct timeb' as part of our interface!
-** Since the system doesn't have it, we define it here;
-** our callers must do likewise.
-*/
-struct timeb {
+
+/* get_date uses the obsolete `struct timeb' in its interface! FIXME.
+ Since some systems don't have it, we define it here;
+ callers must do likewise. */
+struct timeb
+ {
time_t time; /* Seconds since the epoch */
unsigned short millitm; /* Field not used */
short timezone; /* Minutes west of GMT */
yyDayOrdinal = 1;
yyDayNumber = $1;
}
- | tUNUMBER tDAY {
+ | tUNUMBER tDAY { /* FIXME */
yyDayOrdinal = $1;
yyDayNumber = $2;
}
yyYear = $4;
}
| tUNUMBER tMONTH {
+ /* FIXME: `date -d 'next october'' is interpreted as 2 october. */
yyMonth = $2;
yyDay = $1;
}
| tSEC_UNIT {
yyRelSeconds++;
}
- | tSNUMBER tMONTH_UNIT {
+ | tSNUMBER tMONTH_UNIT { /* FIXME */
yyRelMonth += $1 * $2;
}
- | tUNUMBER tMONTH_UNIT {
+ | tUNUMBER tMONTH_UNIT { /* FIXME */
yyRelMonth += $1 * $2;
}
| tMONTH_UNIT {
Year += 1900;
DaysInMonth[1] = Year % 4 == 0 && (Year % 100 != 0 || Year % 400 == 0)
? 29 : 28;
- if (Year < EPOCH || Year > 1999
+ if (Year < EPOCH || Year > 2037
|| Month < 1 || Month > 12
/* Lint fluff: "conversion from long may lose accuracy" */
|| Day < 1 || Day > DaysInMonth[(int)--Month])