X-Git-Url: http://erislabs.net/gitweb/?a=blobdiff_plain;f=lib%2Fgetdate.y;h=ce119056a1116e8de0837ab9bbe1d57d8cfb1c9f;hb=6aae241f16ed2dbe57475cb4c8b3a5b1ca1e9699;hp=8f0872d7215d4b8050617d27836177c869961438;hpb=fd6a92931bd9aa252d353d585b10357fd73214ca;p=gnulib.git diff --git a/lib/getdate.y b/lib/getdate.y index 8f0872d72..ce119056a 100644 --- a/lib/getdate.y +++ b/lib/getdate.y @@ -30,20 +30,11 @@ #include #include -/* 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 if that will be used. */ - #if defined (vms) - #include #include - #else - #include - #ifdef TIME_WITH_SYS_TIME #include #include @@ -62,12 +53,12 @@ #if defined (HAVE_SYS_TIMEB_H) #include #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])