cvs: /php4/ext/standard parsedate.y

From: Date: Tue, 07 Dec 1999 02:48:06 +0000
Subject: cvs: /php4/ext/standard parsedate.y
Groups: php.version4 
Request: Send a blank email to php-version4+get-7571@lists.php.net to get a copy of this message
rubys Mon Dec 6 21:48:06 1999 EDT Modified files: /php4/ext/standard parsedate.y Log: -kludges -warning +reentrancy(more) +compiles(Unix) Index: php4/ext/standard/parsedate.y diff -u php4/ext/standard/parsedate.y:1.12 php4/ext/standard/parsedate.y:1.13 --- php4/ext/standard/parsedate.y:1.12 Mon Dec 6 14:04:01 1999 +++ php4/ext/standard/parsedate.y Mon Dec 6 21:47:35 1999 @@ -1,5 +1,5 @@ %{ -/* $Revision: 1.12 $ +/* $Revision: 1.13 $ ** ** Originally written by Steven M. Bellovin <smb@research.att.com> while ** at the University of North Carolina at Chapel Hill. Later tweaked by @@ -52,8 +52,6 @@ #if WIN32||WINNT # include <time.h> -# include "php.h" -# undef YYSTYPE # include "php_reentrancy.h" #else # if !defined(HAVE_TM_ZONE) && !defined(_TIMEZONE) @@ -62,8 +60,6 @@ #endif - - #define yylhs date_yylhs #define yylen date_yylen #define yydefred date_yydefred @@ -157,10 +153,6 @@ static time_t yyRelSeconds; -extern struct tm *localtime(const time_t *timep); - -/* YYSTYPE is not yet defined at this point */ -static int date_lex(void *yylval); static void date_error(char *s); @@ -174,6 +166,10 @@ enum _MERIDIAN Meridian; } +%{ +static int date_lex(YYSTYPE *yylval); +%} + %token tDAY tDAYZONE tMERIDIAN tMONTH tMONTH_UNIT tSEC_UNIT tSNUMBER %token tUNUMBER tZONE @@ -642,6 +638,7 @@ time_t Julian; int i; time_t tod; + struct tm tmbuf; /* Year should not be passed as a relative value, but absolute one. so this should not happen, but just ensure it */ @@ -674,7 +671,7 @@ return -1; Julian += tod; tod = Julian; - if (dst == DSTon || (dst == DSTmaybe && localtime(&tod)->tm_isdst)) + if (dst == DSTon || (dst == DSTmaybe && localtime_r(&tod,&tmbuf)->tm_isdst)) Julian -= DST_OFFSET * 60 * 60; return Julian; } @@ -685,9 +682,10 @@ { time_t StartDay; time_t FutureDay; + struct tm tmbuf; - StartDay = (localtime(&Start)->tm_hour + 1) % 24; - FutureDay = (localtime(&Future)->tm_hour + 1) % 24; + StartDay = (localtime_r(&Start,&tmbuf)->tm_hour + 1) % 24; + FutureDay = (localtime_r(&Future,&tmbuf)->tm_hour + 1) % 24; return (Future - Start) + (StartDay - FutureDay) * DST_OFFSET * 60 * 60; } @@ -864,7 +862,6 @@ time_t parsedate(char *p, TIMEINFO *now) { - extern int date_parse(void); struct tm *tm, tmbuf; TIMEINFO ti; time_t Start; @@ -895,7 +892,7 @@ yyHaveRel = 0; yyHaveTime = 0; - if (date_parse() || yyHaveTime > 1 || yyHaveDate > 1) + if (date_parse(YYPARSE_PARAM_ARG) || yyHaveTime > 1 || yyHaveDate > 1) return -1; if (yyHaveDate || yyHaveTime) {

« previous php.version4 (#7571) next »