Mercurial > hg > octave-lyh > gnulib-hg
changeset 562:71ef25276c57
Merge changes from FSF.
author | Jim Meyering <jim@meyering.net> |
---|---|
date | Sun, 10 Mar 1996 05:00:20 +0000 |
parents | 4b31356e49f4 |
children | f4ed4c5ce59d |
files | lib/getdate.y |
diffstat | 1 files changed, 12 insertions(+), 6 deletions(-) [+] |
line wrap: on
line diff
--- a/lib/getdate.y +++ b/lib/getdate.y @@ -15,6 +15,10 @@ #ifdef HAVE_CONFIG_H #include <config.h> + +#ifdef FORCE_ALLOCA_H +#include <alloca.h> +#endif #endif /* Since the code of getdate.y is not included in the Emacs executable @@ -90,6 +94,7 @@ static int yyerror (); #define EPOCH 1970 +#define DOOMSDAY 2038 #define HOUR(x) ((time_t)(x) * 60) #define SECSPERDAY (24L * 60L * 60L) @@ -242,7 +247,7 @@ yyDayOrdinal = 1; yyDayNumber = $1; } - | tUNUMBER tDAY { /* FIXME */ + | tUNUMBER tDAY { yyDayOrdinal = $1; yyDayNumber = $2; } @@ -279,7 +284,6 @@ yyYear = $4; } | tUNUMBER tMONTH { - /* FIXME: `date -d 'next october'' is interpreted as 2 october. */ yyMonth = $2; yyDay = $1; } @@ -315,10 +319,10 @@ | tSEC_UNIT { yyRelSeconds++; } - | tSNUMBER tMONTH_UNIT { /* FIXME */ + | tSNUMBER tMONTH_UNIT { yyRelMonth += $1 * $2; } - | tUNUMBER tMONTH_UNIT { /* FIXME */ + | tUNUMBER tMONTH_UNIT { yyRelMonth += $1 * $2; } | tMONTH_UNIT { @@ -613,11 +617,13 @@ if (Year < 0) Year = -Year; - if (Year < 100) + if (Year < DOOMSDAY-2000) + Year += 2000; + else if (Year < 100) Year += 1900; DaysInMonth[1] = Year % 4 == 0 && (Year % 100 != 0 || Year % 400 == 0) ? 29 : 28; - if (Year < EPOCH || Year > 2037 + if (Year < EPOCH || Year >= DOOMSDAY || Month < 1 || Month > 12 /* Lint fluff: "conversion from long may lose accuracy" */ || Day < 1 || Day > DaysInMonth[(int)--Month])