mirror of
https://github.com/gbdev/rgbds.git
synced 2026-08-20 05:44:32 +00:00
Safeguard against localtime or gmtime failure
This commit is contained in:
+24
-23
@@ -748,25 +748,26 @@ void sym_Init(time_t now) {
|
||||
}
|
||||
// LCOV_EXCL_STOP
|
||||
|
||||
tm const *time_local = localtime(&now);
|
||||
|
||||
strftime(savedTIME, sizeof(savedTIME), "\"%H:%M:%S\"", time_local);
|
||||
strftime(savedDATE, sizeof(savedDATE), "\"%d %B %Y\"", time_local);
|
||||
strftime(
|
||||
savedTIMESTAMP_ISO8601_LOCAL,
|
||||
sizeof(savedTIMESTAMP_ISO8601_LOCAL),
|
||||
"\"%Y-%m-%dT%H:%M:%S%z\"",
|
||||
time_local
|
||||
);
|
||||
if (tm const *time_local = localtime(&now); time_local != nullptr) {
|
||||
strftime(savedTIME, sizeof(savedTIME), "\"%H:%M:%S\"", time_local);
|
||||
strftime(savedDATE, sizeof(savedDATE), "\"%d %B %Y\"", time_local);
|
||||
strftime(
|
||||
savedTIMESTAMP_ISO8601_LOCAL,
|
||||
sizeof(savedTIMESTAMP_ISO8601_LOCAL),
|
||||
"\"%Y-%m-%dT%H:%M:%S%z\"",
|
||||
time_local
|
||||
);
|
||||
}
|
||||
|
||||
tm const *time_utc = gmtime(&now);
|
||||
|
||||
strftime(
|
||||
savedTIMESTAMP_ISO8601_UTC,
|
||||
sizeof(savedTIMESTAMP_ISO8601_UTC),
|
||||
"\"%Y-%m-%dT%H:%M:%SZ\"",
|
||||
time_utc
|
||||
);
|
||||
if (time_utc != nullptr) {
|
||||
strftime(
|
||||
savedTIMESTAMP_ISO8601_UTC,
|
||||
sizeof(savedTIMESTAMP_ISO8601_UTC),
|
||||
"\"%Y-%m-%dT%H:%M:%SZ\"",
|
||||
time_utc
|
||||
);
|
||||
}
|
||||
|
||||
Symbol *timeSymbol = &createSymbol(intern("__TIME__"));
|
||||
timeSymbol->type = SYM_EQUS;
|
||||
@@ -793,10 +794,10 @@ void sym_Init(time_t now) {
|
||||
)
|
||||
->isBuiltin = true;
|
||||
|
||||
sym_AddEqu(intern("__UTC_YEAR__"), time_utc->tm_year + 1900)->isBuiltin = true;
|
||||
sym_AddEqu(intern("__UTC_MONTH__"), time_utc->tm_mon + 1)->isBuiltin = true;
|
||||
sym_AddEqu(intern("__UTC_DAY__"), time_utc->tm_mday)->isBuiltin = true;
|
||||
sym_AddEqu(intern("__UTC_HOUR__"), time_utc->tm_hour)->isBuiltin = true;
|
||||
sym_AddEqu(intern("__UTC_MINUTE__"), time_utc->tm_min)->isBuiltin = true;
|
||||
sym_AddEqu(intern("__UTC_SECOND__"), time_utc->tm_sec)->isBuiltin = true;
|
||||
sym_AddEqu(intern("__UTC_YEAR__"), time_utc ? time_utc->tm_year + 1900 : 0)->isBuiltin = true;
|
||||
sym_AddEqu(intern("__UTC_MONTH__"), time_utc ? time_utc->tm_mon + 1 : 0)->isBuiltin = true;
|
||||
sym_AddEqu(intern("__UTC_DAY__"), time_utc ? time_utc->tm_mday : 0)->isBuiltin = true;
|
||||
sym_AddEqu(intern("__UTC_HOUR__"), time_utc ? time_utc->tm_hour : 0)->isBuiltin = true;
|
||||
sym_AddEqu(intern("__UTC_MINUTE__"), time_utc ? time_utc->tm_min : 0)->isBuiltin = true;
|
||||
sym_AddEqu(intern("__UTC_SECOND__"), time_utc ? time_utc->tm_sec : 0)->isBuiltin = true;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user