mirror of
https://github.com/php/php-src.git
synced 2024-09-22 10:27:25 +00:00
-kludges -warning +reentrancy(more) +compiles(Unix)
This commit is contained in:
parent
091c58f734
commit
e3cbafdda6
@ -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 @@ extern time_t timezone;
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
|
||||
#define yylhs date_yylhs
|
||||
#define yylen date_yylen
|
||||
#define yydefred date_yydefred
|
||||
@ -157,10 +153,6 @@ static time_t yyRelMonth;
|
||||
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 @@ static void date_error(char *s);
|
||||
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 @@ Convert(time_t Month, time_t Day, time_t Year, time_t Hours, time_t Minutes, tim
|
||||
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 @@ Convert(time_t Month, time_t Day, time_t Year, time_t Hours, time_t Minutes, tim
|
||||
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 @@ DSTcorrect(time_t Start, time_t Future)
|
||||
{
|
||||
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 @@ static int date_lex(YYSTYPE *yylval)
|
||||
|
||||
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 @@ time_t parsedate(char *p, TIMEINFO *now)
|
||||
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) {
|
||||
|
Loading…
Reference in New Issue
Block a user