X-Git-Url: https://git.brokenzipper.com/gitweb?a=blobdiff_plain;f=lib%2Fgetdate.y;h=eb1fe7bef7ebc854208a95ec0a6598a2e6d14484;hb=abdde50e1b20a7cf1199d14a29d09b1dc5423380;hp=2cb3ddc56f39c76d2beeb259d471daf9f79e5fff;hpb=26fd2b79db1c3ea54fa9ca00991cb91be2189351;p=chaz%2Ftar diff --git a/lib/getdate.y b/lib/getdate.y index 2cb3ddc..eb1fe7b 100644 --- a/lib/getdate.y +++ b/lib/getdate.y @@ -73,7 +73,7 @@ # include #endif -#if __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 7) +#if __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 8) || __STRICT_ANSI__ # define __attribute__(x) #endif @@ -831,7 +831,10 @@ yyerror (char *s ATTRIBUTE_UNUSED) return 0; } -/* ?? */ +/* Parse a date/time string P. Return the corresponding time_t value, + or (time_t) -1 if there is an error. P can be an incomplete or + relative time specification; if so, use *NOW as the basis for the + returned time. */ time_t get_date (const char *p, const time_t *now) { @@ -1011,7 +1014,7 @@ get_date (const char *p, const time_t *now) if (! gmt) return -1; delta = pc.time_zone * 60 + difftm (gmt, &tm); - if ((Start - delta < Start) != (delta < 0)) + if ((Start < Start - delta) != (delta < 0)) return -1; /* time_t overflow */ Start -= delta; }