(distclean): Remove .deps.
[gnulib.git] / lib / getdate.y
index 8f0872d..ce11905 100644 (file)
 #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          */
@@ -251,7 +242,7 @@ day : tDAY {
            yyDayOrdinal = 1;
            yyDayNumber = $1;
        }
-       | tUNUMBER tDAY {
+       | tUNUMBER tDAY { /* FIXME */
            yyDayOrdinal = $1;
            yyDayNumber = $2;
        }
@@ -288,6 +279,7 @@ date        : tUNUMBER '/' tUNUMBER {
            yyYear = $4;
        }
        | tUNUMBER tMONTH {
+           /* FIXME: `date -d 'next october'' is interpreted as 2 october.  */
            yyMonth = $2;
            yyDay = $1;
        }
@@ -323,10 +315,10 @@ relunit   : tUNUMBER tMINUTE_UNIT {
        | 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 {
@@ -625,7 +617,7 @@ Convert (Month, Day, Year, Hours, Minutes, Seconds, Meridian, DSTmode)
     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])