Update to 8.5.19
This commit is contained in:
@@ -548,19 +548,23 @@ ClockGetjuliandayfromerayearmonthdayObjCmd (
|
||||
}
|
||||
dict = objv[1];
|
||||
if (Tcl_DictObjGet(interp, dict, literals[LIT_ERA], &fieldPtr) != TCL_OK
|
||||
|| fieldPtr == NULL
|
||||
|| Tcl_GetIndexFromObj(interp, fieldPtr, eras, "era", TCL_EXACT,
|
||||
&era) != TCL_OK
|
||||
|| Tcl_DictObjGet(interp, dict, literals[LIT_YEAR],
|
||||
&fieldPtr) != TCL_OK
|
||||
|| Tcl_DictObjGet(interp, dict, literals[LIT_YEAR], &fieldPtr) != TCL_OK
|
||||
|| fieldPtr == NULL
|
||||
|| TclGetIntFromObj(interp, fieldPtr, &(fields.year)) != TCL_OK
|
||||
|| Tcl_DictObjGet(interp, dict, literals[LIT_MONTH],
|
||||
&fieldPtr) != TCL_OK
|
||||
|| Tcl_DictObjGet(interp, dict, literals[LIT_MONTH], &fieldPtr) != TCL_OK
|
||||
|| fieldPtr == NULL
|
||||
|| TclGetIntFromObj(interp, fieldPtr, &(fields.month)) != TCL_OK
|
||||
|| Tcl_DictObjGet(interp, dict, literals[LIT_DAYOFMONTH],
|
||||
&fieldPtr) != TCL_OK
|
||||
|| Tcl_DictObjGet(interp, dict, literals[LIT_DAYOFMONTH], &fieldPtr) != TCL_OK
|
||||
|| fieldPtr == NULL
|
||||
|| TclGetIntFromObj(interp, fieldPtr,
|
||||
&(fields.dayOfMonth)) != TCL_OK
|
||||
|| TclGetIntFromObj(interp, objv[2], &changeover) != TCL_OK) {
|
||||
if (fieldPtr == NULL) {
|
||||
Tcl_SetObjResult(interp, Tcl_NewStringObj("expected key(s) not found in dictionary", -1));
|
||||
}
|
||||
return TCL_ERROR;
|
||||
}
|
||||
fields.era = era;
|
||||
@@ -639,21 +643,22 @@ ClockGetjuliandayfromerayearweekdayObjCmd (
|
||||
}
|
||||
dict = objv[1];
|
||||
if (Tcl_DictObjGet(interp, dict, literals[LIT_ERA], &fieldPtr) != TCL_OK
|
||||
|| fieldPtr == NULL
|
||||
|| Tcl_GetIndexFromObj(interp, fieldPtr, eras, "era", TCL_EXACT,
|
||||
&era) != TCL_OK
|
||||
|| Tcl_DictObjGet(interp, dict, literals[LIT_ISO8601YEAR],
|
||||
&fieldPtr) != TCL_OK
|
||||
|| TclGetIntFromObj(interp, fieldPtr,
|
||||
&(fields.iso8601Year)) != TCL_OK
|
||||
|| Tcl_DictObjGet(interp, dict, literals[LIT_ISO8601WEEK],
|
||||
&fieldPtr) != TCL_OK
|
||||
|| TclGetIntFromObj(interp, fieldPtr,
|
||||
&(fields.iso8601Week)) != TCL_OK
|
||||
|| Tcl_DictObjGet(interp, dict, literals[LIT_DAYOFWEEK],
|
||||
&fieldPtr) != TCL_OK
|
||||
|| TclGetIntFromObj(interp, fieldPtr,
|
||||
&(fields.dayOfWeek)) != TCL_OK
|
||||
|| Tcl_DictObjGet(interp, dict, literals[LIT_ISO8601YEAR], &fieldPtr) != TCL_OK
|
||||
|| fieldPtr == NULL
|
||||
|| TclGetIntFromObj(interp, fieldPtr, &(fields.iso8601Year)) != TCL_OK
|
||||
|| Tcl_DictObjGet(interp, dict, literals[LIT_ISO8601WEEK], &fieldPtr) != TCL_OK
|
||||
|| fieldPtr == NULL
|
||||
|| TclGetIntFromObj(interp, fieldPtr, &(fields.iso8601Week)) != TCL_OK
|
||||
|| Tcl_DictObjGet(interp, dict, literals[LIT_DAYOFWEEK], &fieldPtr) != TCL_OK
|
||||
|| fieldPtr == NULL
|
||||
|| TclGetIntFromObj(interp, fieldPtr, &(fields.dayOfWeek)) != TCL_OK
|
||||
|| TclGetIntFromObj(interp, objv[2], &changeover) != TCL_OK) {
|
||||
if (fieldPtr == NULL) {
|
||||
Tcl_SetObjResult(interp, Tcl_NewStringObj("expected key(s) not found in dictionary", -1));
|
||||
}
|
||||
return TCL_ERROR;
|
||||
}
|
||||
fields.era = era;
|
||||
@@ -1991,22 +1996,23 @@ ClockSecondsObjCmd(
|
||||
static void
|
||||
TzsetIfNecessary(void)
|
||||
{
|
||||
static char* tzWas = NULL; /* Previous value of TZ, protected by
|
||||
static char* tzWas = INT2PTR(-1); /* Previous value of TZ, protected by
|
||||
* clockMutex. */
|
||||
const char* tzIsNow; /* Current value of TZ */
|
||||
|
||||
Tcl_MutexLock(&clockMutex);
|
||||
tzIsNow = getenv("TZ");
|
||||
if (tzIsNow != NULL && (tzWas == NULL || strcmp(tzIsNow, tzWas) != 0)) {
|
||||
if (tzIsNow != NULL && (tzWas == NULL || tzWas == INT2PTR(-1)
|
||||
|| strcmp(tzIsNow, tzWas) != 0)) {
|
||||
tzset();
|
||||
if (tzWas != NULL) {
|
||||
if (tzWas != NULL && tzWas != INT2PTR(-1)) {
|
||||
ckfree(tzWas);
|
||||
}
|
||||
tzWas = ckalloc(strlen(tzIsNow) + 1);
|
||||
strcpy(tzWas, tzIsNow);
|
||||
} else if (tzIsNow == NULL && tzWas != NULL) {
|
||||
tzset();
|
||||
ckfree(tzWas);
|
||||
if (tzWas != INT2PTR(-1)) ckfree(tzWas);
|
||||
tzWas = NULL;
|
||||
}
|
||||
Tcl_MutexUnlock(&clockMutex);
|
||||
|
||||
Reference in New Issue
Block a user