summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authordgp <dgp@users.sourceforge.net>2018-10-22 13:30:51 (GMT)
committerdgp <dgp@users.sourceforge.net>2018-10-22 13:30:51 (GMT)
commit68cad4302a8200b94331470c56e86abaad5f87db (patch)
tree386ade0afd93b9f9efde07cf8946ca306d977828
parent4dbcfc37b33a496443fc53bd18c1e6a5c9ada589 (diff)
parent49aba3d99eb7035ee260003ddc27728b26962d43 (diff)
downloadtcl-68cad4302a8200b94331470c56e86abaad5f87db.zip
tcl-68cad4302a8200b94331470c56e86abaad5f87db.tar.gz
tcl-68cad4302a8200b94331470c56e86abaad5f87db.tar.bz2
merge 8.6
-rw-r--r--generic/tclOO.c109
-rw-r--r--generic/tclOOCall.c1
-rw-r--r--generic/tclOODefineCmds.c32
-rw-r--r--generic/tclOOInt.h8
-rw-r--r--library/tzdata/Africa/Ceuta1
-rw-r--r--library/tzdata/America/Santiago324
-rw-r--r--library/tzdata/Asia/Macau68
-rw-r--r--library/tzdata/Asia/Manila18
-rw-r--r--library/tzdata/Asia/Pyongyang2
-rw-r--r--library/tzdata/Asia/Shanghai43
-rw-r--r--library/tzdata/Asia/Tokyo8
-rw-r--r--library/tzdata/Europe/Volgograd1
-rw-r--r--library/tzdata/Pacific/Easter324
-rw-r--r--library/tzdata/Pacific/Fiji24
-rw-r--r--tests/cmdAH.test2
-rw-r--r--tests/fCmd.test11
-rw-r--r--tests/fileName.test2
-rw-r--r--tests/oo.test100
-rw-r--r--tests/winFCmd.test7
-rw-r--r--tools/genStubs.tcl51
20 files changed, 688 insertions, 448 deletions
diff --git a/generic/tclOO.c b/generic/tclOO.c
index 83646a8..573df3e 100644
--- a/generic/tclOO.c
+++ b/generic/tclOO.c
@@ -56,7 +56,6 @@ static const struct {
* Function declarations for things defined in this file.
*/
-static Class * AllocClass(Tcl_Interp *interp, Object *useThisObj);
static Object * AllocObject(Tcl_Interp *interp, const char *nameStr,
Namespace *nsPtr, const char *nsNameStr);
static int CloneClassMethod(Tcl_Interp *interp, Class *clsPtr,
@@ -79,8 +78,6 @@ static void ObjectNamespaceDeleted(ClientData clientData);
static void ObjectRenamedTrace(ClientData clientData,
Tcl_Interp *interp, const char *oldName,
const char *newName, int flags);
-static void ReleaseClassContents(Tcl_Interp *interp,Object *oPtr);
-static void DeleteDescendants(Tcl_Interp *interp,Object *oPtr);
static inline void SquelchCachedName(Object *oPtr);
static int PublicObjectCmd(ClientData clientData,
@@ -392,10 +389,10 @@ InitFoundation(
/* Stand up a phony class for bootstrapping. */
fPtr->objectCls = &fakeCls;
- /* referenced in AllocClass to increment the refCount. */
+ /* referenced in TclOOAllocClass to increment the refCount. */
fakeCls.thisPtr = &fakeObject;
- fPtr->objectCls = AllocClass(interp,
+ fPtr->objectCls = TclOOAllocClass(interp,
AllocObject(interp, "object", (Namespace *)fPtr->ooNs, NULL));
/* Corresponding TclOODecrRefCount in KillFoudation */
AddRef(fPtr->objectCls->thisPtr);
@@ -411,7 +408,7 @@ InitFoundation(
fPtr->objectCls->thisPtr->flags |= ROOT_OBJECT;
fPtr->objectCls->flags |= ROOT_OBJECT;
- fPtr->classCls = AllocClass(interp,
+ fPtr->classCls = TclOOAllocClass(interp,
AllocObject(interp, "class", (Namespace *)fPtr->ooNs, NULL));
/* Corresponding TclOODecrRefCount in KillFoudation */
AddRef(fPtr->classCls->thisPtr);
@@ -829,15 +826,15 @@ ObjectRenamedTrace(
/*
* ----------------------------------------------------------------------
*
- * DeleteDescendants --
+ * TclOODeleteDescendants --
*
* Delete all descendants of a particular class.
*
* ----------------------------------------------------------------------
*/
-static void
-DeleteDescendants(
+void
+TclOODeleteDescendants(
Tcl_Interp *interp, /* The interpreter containing the class. */
Object *oPtr) /* The object representing the class. */
{
@@ -854,7 +851,8 @@ DeleteDescendants(
/* This condition also covers the case where mixinSubclassPtr ==
* clsPtr
*/
- if (!Deleted(mixinSubclassPtr->thisPtr)) {
+ if (!Deleted(mixinSubclassPtr->thisPtr)
+ && !(mixinSubclassPtr->thisPtr->flags & DONT_DELETE)) {
Tcl_DeleteCommandFromToken(interp,
mixinSubclassPtr->thisPtr->command);
}
@@ -872,8 +870,10 @@ DeleteDescendants(
if (clsPtr->subclasses.num > 0) {
while (clsPtr->subclasses.num > 0) {
subclassPtr = clsPtr->subclasses.list[clsPtr->subclasses.num-1];
- if (!Deleted(subclassPtr->thisPtr) && !IsRoot(subclassPtr)) {
- Tcl_DeleteCommandFromToken(interp, subclassPtr->thisPtr->command);
+ if (!Deleted(subclassPtr->thisPtr) && !IsRoot(subclassPtr)
+ && !(subclassPtr->thisPtr->flags & DONT_DELETE)) {
+ Tcl_DeleteCommandFromToken(interp,
+ subclassPtr->thisPtr->command);
}
TclOORemoveFromSubclasses(subclassPtr, clsPtr);
}
@@ -892,7 +892,8 @@ DeleteDescendants(
while (clsPtr->instances.num > 0) {
instancePtr = clsPtr->instances.list[clsPtr->instances.num-1];
/* This condition also covers the case where instancePtr == oPtr */
- if (!Deleted(instancePtr) && !IsRoot(instancePtr)) {
+ if (!Deleted(instancePtr) && !IsRoot(instancePtr) &&
+ !(instancePtr->flags & DONT_DELETE)) {
Tcl_DeleteCommandFromToken(interp, instancePtr->command);
}
TclOORemoveFromInstances(instancePtr, clsPtr);
@@ -909,7 +910,7 @@ DeleteDescendants(
/*
* ----------------------------------------------------------------------
*
- * ReleaseClassContents --
+ * TclOOReleaseClassContents --
*
* Tear down the special class data structure, including deleting all
* dependent classes and objects.
@@ -917,8 +918,8 @@ DeleteDescendants(
* ----------------------------------------------------------------------
*/
-static void
-ReleaseClassContents(
+void
+TclOOReleaseClassContents(
Tcl_Interp *interp, /* The interpreter containing the class. */
Object *oPtr) /* The object representing the class. */
{
@@ -940,9 +941,6 @@ ReleaseClassContents(
} else if (IsRootObject(oPtr)) {
Tcl_Panic("deleting class structure for non-deleted %s",
"::oo::object");
- } else {
- Tcl_Panic("deleting class structure for non-deleted %s",
- "general object");
}
}
@@ -1037,6 +1035,7 @@ ReleaseClassContents(
if (IsRootClass(oPtr) && !Deleted(fPtr->objectCls->thisPtr)) {
Tcl_DeleteCommandFromToken(interp, fPtr->objectCls->thisPtr->command);
}
+ oPtr->classPtr = NULL;
}
/*
@@ -1082,7 +1081,7 @@ ObjectNamespaceDeleted(
/* Let the dominoes fall */
if (oPtr->classPtr) {
- DeleteDescendants(interp, oPtr);
+ TclOODeleteDescendants(interp, oPtr);
}
/*
@@ -1194,27 +1193,25 @@ ObjectNamespaceDeleted(
}
/*
- * Because an object can be a class that is an instance of itself, the
- * A class object's class structure should only be cleaned after most of
- * the cleanup on the object is done.
- */
-
-
- /*
+ * Because an object can be a class that is an instance of itself, the
+ * class object's class structure should only be cleaned after most of
+ * the cleanup on the object is done.
+ *
* The class of objects needs some special care; if it is deleted (and
* we're not killing the whole interpreter) we force the delete of the
* class of classes now as well. Due to the incestuous nature of those two
* classes, if one goes the other must too and yet the tangle can
* sometimes not go away automatically; we force it here. [Bug 2962664]
*/
+
if (IsRootObject(oPtr) && !Deleted(fPtr->classCls->thisPtr)
- && !Tcl_InterpDeleted(interp)) {
+ && !Tcl_InterpDeleted(interp)) {
Tcl_DeleteCommandFromToken(interp, fPtr->classCls->thisPtr->command);
}
if (oPtr->classPtr != NULL) {
- ReleaseClassContents(interp, oPtr);
+ TclOOReleaseClassContents(interp, oPtr);
}
/*
@@ -1328,6 +1325,37 @@ TclOOAddToInstances(
/*
* ----------------------------------------------------------------------
*
+ * TclOORemoveFromMixins --
+ *
+ * Utility function to remove a class from the list of mixins within an
+ * object.
+ *
+ * ----------------------------------------------------------------------
+ */
+
+int
+TclOORemoveFromMixins(
+ Class *mixinPtr, /* The mixin to remove. */
+ Object *oPtr) /* The object (possibly) containing the
+ * reference to the mixin. */
+{
+ int i, res = 0;
+ Class *mixPtr;
+
+ FOREACH(mixPtr, oPtr->mixins) {
+ if (mixinPtr == mixPtr) {
+ RemoveItem(Class, oPtr->mixins, i);
+ TclOODecrRefCount(mixPtr->thisPtr);
+ res++;
+ break;
+ }
+ }
+ return res;
+}
+
+/*
+ * ----------------------------------------------------------------------
+ *
* TclOORemoveFromSubclasses --
*
* Utility function to remove a class from the list of subclasses within
@@ -1381,7 +1409,8 @@ TclOOAddToSubclasses(
if (superPtr->subclasses.size == ALLOC_CHUNK) {
superPtr->subclasses.list = ckalloc(sizeof(Class *) * ALLOC_CHUNK);
} else {
- superPtr->subclasses.list = ckrealloc(superPtr->subclasses.list, sizeof(Class *) * superPtr->subclasses.size);
+ superPtr->subclasses.list = ckrealloc(superPtr->subclasses.list,
+ sizeof(Class *) * superPtr->subclasses.size);
}
}
superPtr->subclasses.list[superPtr->subclasses.num++] = subPtr;
@@ -1456,16 +1485,16 @@ TclOOAddToMixinSubs(
/*
* ----------------------------------------------------------------------
*
- * AllocClass --
+ * TclOOAllocClass --
*
- * Allocate a basic class. Does not add class to its
- * class's instance list.
+ * Allocate a basic class. Does not add class to its class's instance
+ * list.
*
* ----------------------------------------------------------------------
*/
-static Class *
-AllocClass(
+Class *
+TclOOAllocClass(
Tcl_Interp *interp, /* Interpreter within which to allocate the
* class. */
Object *useThisObj) /* Object that is to act as the class
@@ -1709,13 +1738,13 @@ TclNewObjectInstanceCommon(
if (TclOOIsReachable(fPtr->classCls, classPtr)) {
/*
- * Is a class, so attach a class structure. Note that the AllocClass
- * function splices the structure into the object, so we don't have
- * to. Once that's done, we need to repatch the object to have the
- * right class since AllocClass interferes with that.
+ * Is a class, so attach a class structure. Note that the
+ * TclOOAllocClass function splices the structure into the object, so
+ * we don't have to. Once that's done, we need to repatch the object
+ * to have the right class since TclOOAllocClass interferes with that.
*/
- AllocClass(interp, oPtr);
+ TclOOAllocClass(interp, oPtr);
TclOOAddToSubclasses(oPtr->classPtr, fPtr->objectCls);
} else {
oPtr->classPtr = NULL;
diff --git a/generic/tclOOCall.c b/generic/tclOOCall.c
index c71425b..a46b8bc 100644
--- a/generic/tclOOCall.c
+++ b/generic/tclOOCall.c
@@ -1444,7 +1444,6 @@ AddSimpleClassChainToCallContext(
if (flags & CONSTRUCTOR) {
AddMethodToCallChain(classPtr->constructorPtr, cbPtr, doneFilters,
filterDecl, flags);
-
} else if (flags & DESTRUCTOR) {
AddMethodToCallChain(classPtr->destructorPtr, cbPtr, doneFilters,
filterDecl, flags);
diff --git a/generic/tclOODefineCmds.c b/generic/tclOODefineCmds.c
index c924d2b..d5f4878 100644
--- a/generic/tclOODefineCmds.c
+++ b/generic/tclOODefineCmds.c
@@ -1083,6 +1083,8 @@ TclOODefineClassObjCmd(
{
Object *oPtr;
Class *clsPtr;
+ Foundation *fPtr = TclOOGetFoundation(interp);
+ int wasClass, willBeClass;
/*
* Parse the context to get the object to operate on.
@@ -1118,12 +1120,20 @@ TclOODefineClassObjCmd(
if (clsPtr == NULL) {
return TCL_ERROR;
}
-
+ if (oPtr == clsPtr->thisPtr) {
+ Tcl_SetObjResult(interp, Tcl_NewStringObj(
+ "may not change classes into an instance of themselves", -1));
+ Tcl_SetErrorCode(interp, "TCL", "OO", "MONKEY_BUSINESS", NULL);
+ return TCL_ERROR;
+ }
/*
* Set the object's class.
*/
+ wasClass = (oPtr->classPtr != NULL);
+ willBeClass = (TclOOIsReachable(fPtr->classCls, clsPtr));
+
if (oPtr->selfCls != clsPtr) {
TclOORemoveFromInstances(oPtr, oPtr->selfCls);
TclOODecrRefCount(oPtr->selfCls->thisPtr);
@@ -1131,6 +1141,26 @@ TclOODefineClassObjCmd(
AddRef(oPtr->selfCls->thisPtr);
TclOOAddToInstances(oPtr, oPtr->selfCls);
+ /*
+ * Create or delete the class guts if necessary.
+ */
+
+ if (wasClass && !willBeClass) {
+ /*
+ * This is the most global of all epochs. Bump it! No cache can be
+ * trusted!
+ */
+
+ TclOORemoveFromMixins(oPtr->classPtr, oPtr);
+ oPtr->fPtr->epoch++;
+ oPtr->flags |= DONT_DELETE;
+ TclOODeleteDescendants(interp, oPtr);
+ oPtr->flags &= ~DONT_DELETE;
+ TclOOReleaseClassContents(interp, oPtr);
+ } else if (!wasClass && willBeClass) {
+ TclOOAllocClass(interp, oPtr);
+ }
+
if (oPtr->classPtr != NULL) {
BumpGlobalEpoch(interp, oPtr->classPtr);
} else {
diff --git a/generic/tclOOInt.h b/generic/tclOOInt.h
index 61ead01..e59fe8a 100644
--- a/generic/tclOOInt.h
+++ b/generic/tclOOInt.h
@@ -214,6 +214,7 @@ typedef struct Object {
* other spots). */
#define FORCE_UNKNOWN 0x10000 /* States that we are *really* looking up the
* unknown method handler at that point. */
+#define DONT_DELETE 0x20000 /* Inhibit deletion of this object. */
/*
* And the definition of a class. Note that every class also has an associated
@@ -484,6 +485,8 @@ MODULE_SCOPE int TclOO_Object_VarName(ClientData clientData,
MODULE_SCOPE void TclOOAddToInstances(Object *oPtr, Class *clsPtr);
MODULE_SCOPE void TclOOAddToMixinSubs(Class *subPtr, Class *mixinPtr);
MODULE_SCOPE void TclOOAddToSubclasses(Class *subPtr, Class *superPtr);
+MODULE_SCOPE Class * TclOOAllocClass(Tcl_Interp *interp,
+ Object *useThisObj);
MODULE_SCOPE int TclNRNewObjectInstance(Tcl_Interp *interp,
Tcl_Class cls, const char *nameStr,
const char *nsNameStr, int objc,
@@ -498,6 +501,8 @@ MODULE_SCOPE int TclOODefineSlots(Foundation *fPtr);
MODULE_SCOPE void TclOODeleteChain(CallChain *callPtr);
MODULE_SCOPE void TclOODeleteChainCache(Tcl_HashTable *tablePtr);
MODULE_SCOPE void TclOODeleteContext(CallContext *contextPtr);
+MODULE_SCOPE void TclOODeleteDescendants(Tcl_Interp *interp,
+ Object *oPtr);
MODULE_SCOPE void TclOODelMethodRef(Method *method);
MODULE_SCOPE CallContext *TclOOGetCallContext(Object *oPtr,
Tcl_Obj *methodNameObj, int flags,
@@ -523,7 +528,10 @@ MODULE_SCOPE int TclNRObjectContextInvokeNext(Tcl_Interp *interp,
MODULE_SCOPE void TclOONewBasicMethod(Tcl_Interp *interp, Class *clsPtr,
const DeclaredClassMethod *dcm);
MODULE_SCOPE Tcl_Obj * TclOOObjectName(Tcl_Interp *interp, Object *oPtr);
+MODULE_SCOPE void TclOOReleaseClassContents(Tcl_Interp *interp,
+ Object *oPtr);
MODULE_SCOPE int TclOORemoveFromInstances(Object *oPtr, Class *clsPtr);
+MODULE_SCOPE int TclOORemoveFromMixins(Class *mixinPtr, Object *oPtr);
MODULE_SCOPE int TclOORemoveFromMixinSubs(Class *subPtr,
Class *mixinPtr);
MODULE_SCOPE int TclOORemoveFromSubclasses(Class *subPtr,
diff --git a/library/tzdata/Africa/Ceuta b/library/tzdata/Africa/Ceuta
index 057ca22..18af8c1 100644
--- a/library/tzdata/Africa/Ceuta
+++ b/library/tzdata/Africa/Ceuta
@@ -15,6 +15,7 @@ set TZData(:Africa/Ceuta) {
{-1316390400 3600 1 WEST}
{-1301270400 0 0 WET}
{-1293840000 0 0 WET}
+ {-94694400 0 0 WET}
{-81432000 3600 1 WEST}
{-71110800 0 0 WET}
{141264000 3600 1 WEST}
diff --git a/library/tzdata/America/Santiago b/library/tzdata/America/Santiago
index 67d5b5c..55212b9 100644
--- a/library/tzdata/America/Santiago
+++ b/library/tzdata/America/Santiago
@@ -124,166 +124,166 @@ set TZData(:America/Santiago) {
{1502596800 -10800 1 -04}
{1526180400 -14400 0 -04}
{1534046400 -10800 1 -04}
- {1557630000 -14400 0 -04}
- {1565496000 -10800 1 -04}
- {1589079600 -14400 0 -04}
- {1596945600 -10800 1 -04}
- {1620529200 -14400 0 -04}
- {1629000000 -10800 1 -04}
- {1652583600 -14400 0 -04}
- {1660449600 -10800 1 -04}
- {1684033200 -14400 0 -04}
- {1691899200 -10800 1 -04}
- {1715482800 -14400 0 -04}
- {1723348800 -10800 1 -04}
- {1746932400 -14400 0 -04}
- {1754798400 -10800 1 -04}
- {1778382000 -14400 0 -04}
- {1786248000 -10800 1 -04}
- {1809831600 -14400 0 -04}
- {1818302400 -10800 1 -04}
- {1841886000 -14400 0 -04}
- {1849752000 -10800 1 -04}
- {1873335600 -14400 0 -04}
- {1881201600 -10800 1 -04}
- {1904785200 -14400 0 -04}
- {1912651200 -10800 1 -04}
- {1936234800 -14400 0 -04}
- {1944100800 -10800 1 -04}
- {1967684400 -14400 0 -04}
- {1976155200 -10800 1 -04}
- {1999738800 -14400 0 -04}
- {2007604800 -10800 1 -04}
- {2031188400 -14400 0 -04}
- {2039054400 -10800 1 -04}
- {2062638000 -14400 0 -04}
- {2070504000 -10800 1 -04}
- {2094087600 -14400 0 -04}
- {2101953600 -10800 1 -04}
- {2125537200 -14400 0 -04}
- {2133403200 -10800 1 -04}
- {2156986800 -14400 0 -04}
- {2165457600 -10800 1 -04}
- {2189041200 -14400 0 -04}
- {2196907200 -10800 1 -04}
- {2220490800 -14400 0 -04}
- {2228356800 -10800 1 -04}
- {2251940400 -14400 0 -04}
- {2259806400 -10800 1 -04}
- {2283390000 -14400 0 -04}
- {2291256000 -10800 1 -04}
- {2314839600 -14400 0 -04}
- {2322705600 -10800 1 -04}
- {2346894000 -14400 0 -04}
- {2354760000 -10800 1 -04}
- {2378343600 -14400 0 -04}
- {2386209600 -10800 1 -04}
- {2409793200 -14400 0 -04}
- {2417659200 -10800 1 -04}
- {2441242800 -14400 0 -04}
- {2449108800 -10800 1 -04}
- {2472692400 -14400 0 -04}
- {2480558400 -10800 1 -04}
- {2504142000 -14400 0 -04}
- {2512612800 -10800 1 -04}
- {2536196400 -14400 0 -04}
- {2544062400 -10800 1 -04}
- {2567646000 -14400 0 -04}
- {2575512000 -10800 1 -04}
- {2599095600 -14400 0 -04}
- {2606961600 -10800 1 -04}
- {2630545200 -14400 0 -04}
- {2638411200 -10800 1 -04}
- {2661994800 -14400 0 -04}
- {2669860800 -10800 1 -04}
- {2693444400 -14400 0 -04}
- {2701915200 -10800 1 -04}
- {2725498800 -14400 0 -04}
- {2733364800 -10800 1 -04}
- {2756948400 -14400 0 -04}
- {2764814400 -10800 1 -04}
- {2788398000 -14400 0 -04}
- {2796264000 -10800 1 -04}
- {2819847600 -14400 0 -04}
- {2827713600 -10800 1 -04}
- {2851297200 -14400 0 -04}
- {2859768000 -10800 1 -04}
- {2883351600 -14400 0 -04}
- {2891217600 -10800 1 -04}
- {2914801200 -14400 0 -04}
- {2922667200 -10800 1 -04}
- {2946250800 -14400 0 -04}
- {2954116800 -10800 1 -04}
- {2977700400 -14400 0 -04}
- {2985566400 -10800 1 -04}
- {3009150000 -14400 0 -04}
- {3017016000 -10800 1 -04}
- {3040599600 -14400 0 -04}
- {3049070400 -10800 1 -04}
- {3072654000 -14400 0 -04}
- {3080520000 -10800 1 -04}
- {3104103600 -14400 0 -04}
- {3111969600 -10800 1 -04}
- {3135553200 -14400 0 -04}
- {3143419200 -10800 1 -04}
- {3167002800 -14400 0 -04}
- {3174868800 -10800 1 -04}
- {3198452400 -14400 0 -04}
- {3206318400 -10800 1 -04}
- {3230506800 -14400 0 -04}
- {3238372800 -10800 1 -04}
- {3261956400 -14400 0 -04}
- {3269822400 -10800 1 -04}
- {3293406000 -14400 0 -04}
- {3301272000 -10800 1 -04}
- {3324855600 -14400 0 -04}
- {3332721600 -10800 1 -04}
- {3356305200 -14400 0 -04}
- {3364171200 -10800 1 -04}
- {3387754800 -14400 0 -04}
- {3396225600 -10800 1 -04}
- {3419809200 -14400 0 -04}
- {3427675200 -10800 1 -04}
- {3451258800 -14400 0 -04}
- {3459124800 -10800 1 -04}
- {3482708400 -14400 0 -04}
- {3490574400 -10800 1 -04}
- {3514158000 -14400 0 -04}
- {3522024000 -10800 1 -04}
- {3545607600 -14400 0 -04}
- {3553473600 -10800 1 -04}
- {3577057200 -14400 0 -04}
- {3585528000 -10800 1 -04}
- {3609111600 -14400 0 -04}
- {3616977600 -10800 1 -04}
- {3640561200 -14400 0 -04}
- {3648427200 -10800 1 -04}
- {3672010800 -14400 0 -04}
- {3679876800 -10800 1 -04}
- {3703460400 -14400 0 -04}
- {3711326400 -10800 1 -04}
- {3734910000 -14400 0 -04}
- {3743380800 -10800 1 -04}
- {3766964400 -14400 0 -04}
- {3774830400 -10800 1 -04}
- {3798414000 -14400 0 -04}
- {3806280000 -10800 1 -04}
- {3829863600 -14400 0 -04}
- {3837729600 -10800 1 -04}
- {3861313200 -14400 0 -04}
- {3869179200 -10800 1 -04}
- {3892762800 -14400 0 -04}
- {3900628800 -10800 1 -04}
- {3924212400 -14400 0 -04}
- {3932683200 -10800 1 -04}
- {3956266800 -14400 0 -04}
- {3964132800 -10800 1 -04}
- {3987716400 -14400 0 -04}
- {3995582400 -10800 1 -04}
- {4019166000 -14400 0 -04}
- {4027032000 -10800 1 -04}
- {4050615600 -14400 0 -04}
- {4058481600 -10800 1 -04}
- {4082065200 -14400 0 -04}
- {4089931200 -10800 1 -04}
+ {1554606000 -14400 0 -04}
+ {1567915200 -10800 1 -04}
+ {1586055600 -14400 0 -04}
+ {1599364800 -10800 1 -04}
+ {1617505200 -14400 0 -04}
+ {1630814400 -10800 1 -04}
+ {1648954800 -14400 0 -04}
+ {1662264000 -10800 1 -04}
+ {1680404400 -14400 0 -04}
+ {1693713600 -10800 1 -04}
+ {1712458800 -14400 0 -04}
+ {1725768000 -10800 1 -04}
+ {1743908400 -14400 0 -04}
+ {1757217600 -10800 1 -04}
+ {1775358000 -14400 0 -04}
+ {1788667200 -10800 1 -04}
+ {1806807600 -14400 0 -04}
+ {1820116800 -10800 1 -04}
+ {1838257200 -14400 0 -04}
+ {1851566400 -10800 1 -04}
+ {1870311600 -14400 0 -04}
+ {1883016000 -10800 1 -04}
+ {1901761200 -14400 0 -04}
+ {1915070400 -10800 1 -04}
+ {1933210800 -14400 0 -04}
+ {1946520000 -10800 1 -04}
+ {1964660400 -14400 0 -04}
+ {1977969600 -10800 1 -04}
+ {1996110000 -14400 0 -04}
+ {2009419200 -10800 1 -04}
+ {2027559600 -14400 0 -04}
+ {2040868800 -10800 1 -04}
+ {2059614000 -14400 0 -04}
+ {2072318400 -10800 1 -04}
+ {2091063600 -14400 0 -04}
+ {2104372800 -10800 1 -04}
+ {2122513200 -14400 0 -04}
+ {2135822400 -10800 1 -04}
+ {2153962800 -14400 0 -04}
+ {2167272000 -10800 1 -04}
+ {2185412400 -14400 0 -04}
+ {2198721600 -10800 1 -04}
+ {2217466800 -14400 0 -04}
+ {2230171200 -10800 1 -04}
+ {2248916400 -14400 0 -04}
+ {2262225600 -10800 1 -04}
+ {2280366000 -14400 0 -04}
+ {2293675200 -10800 1 -04}
+ {2311815600 -14400 0 -04}
+ {2325124800 -10800 1 -04}
+ {2343265200 -14400 0 -04}
+ {2356574400 -10800 1 -04}
+ {2374714800 -14400 0 -04}
+ {2388024000 -10800 1 -04}
+ {2406769200 -14400 0 -04}
+ {2419473600 -10800 1 -04}
+ {2438218800 -14400 0 -04}
+ {2451528000 -10800 1 -04}
+ {2469668400 -14400 0 -04}
+ {2482977600 -10800 1 -04}
+ {2501118000 -14400 0 -04}
+ {2514427200 -10800 1 -04}
+ {2532567600 -14400 0 -04}
+ {2545876800 -10800 1 -04}
+ {2564017200 -14400 0 -04}
+ {2577326400 -10800 1 -04}
+ {2596071600 -14400 0 -04}
+ {2609380800 -10800 1 -04}
+ {2627521200 -14400 0 -04}
+ {2640830400 -10800 1 -04}
+ {2658970800 -14400 0 -04}
+ {2672280000 -10800 1 -04}
+ {2690420400 -14400 0 -04}
+ {2703729600 -10800 1 -04}
+ {2721870000 -14400 0 -04}
+ {2735179200 -10800 1 -04}
+ {2753924400 -14400 0 -04}
+ {2766628800 -10800 1 -04}
+ {2785374000 -14400 0 -04}
+ {2798683200 -10800 1 -04}
+ {2816823600 -14400 0 -04}
+ {2830132800 -10800 1 -04}
+ {2848273200 -14400 0 -04}
+ {2861582400 -10800 1 -04}
+ {2879722800 -14400 0 -04}
+ {2893032000 -10800 1 -04}
+ {2911172400 -14400 0 -04}
+ {2924481600 -10800 1 -04}
+ {2943226800 -14400 0 -04}
+ {2955931200 -10800 1 -04}
+ {2974676400 -14400 0 -04}
+ {2987985600 -10800 1 -04}
+ {3006126000 -14400 0 -04}
+ {3019435200 -10800 1 -04}
+ {3037575600 -14400 0 -04}
+ {3050884800 -10800 1 -04}
+ {3069025200 -14400 0 -04}
+ {3082334400 -10800 1 -04}
+ {3101079600 -14400 0 -04}
+ {3113784000 -10800 1 -04}
+ {3132529200 -14400 0 -04}
+ {3145838400 -10800 1 -04}
+ {3163978800 -14400 0 -04}
+ {3177288000 -10800 1 -04}
+ {3195428400 -14400 0 -04}
+ {3208737600 -10800 1 -04}
+ {3226878000 -14400 0 -04}
+ {3240187200 -10800 1 -04}
+ {3258327600 -14400 0 -04}
+ {3271636800 -10800 1 -04}
+ {3290382000 -14400 0 -04}
+ {3303086400 -10800 1 -04}
+ {3321831600 -14400 0 -04}
+ {3335140800 -10800 1 -04}
+ {3353281200 -14400 0 -04}
+ {3366590400 -10800 1 -04}
+ {3384730800 -14400 0 -04}
+ {3398040000 -10800 1 -04}
+ {3416180400 -14400 0 -04}
+ {3429489600 -10800 1 -04}
+ {3447630000 -14400 0 -04}
+ {3460939200 -10800 1 -04}
+ {3479684400 -14400 0 -04}
+ {3492993600 -10800 1 -04}
+ {3511134000 -14400 0 -04}
+ {3524443200 -10800 1 -04}
+ {3542583600 -14400 0 -04}
+ {3555892800 -10800 1 -04}
+ {3574033200 -14400 0 -04}
+ {3587342400 -10800 1 -04}
+ {3605482800 -14400 0 -04}
+ {3618792000 -10800 1 -04}
+ {3637537200 -14400 0 -04}
+ {3650241600 -10800 1 -04}
+ {3668986800 -14400 0 -04}
+ {3682296000 -10800 1 -04}
+ {3700436400 -14400 0 -04}
+ {3713745600 -10800 1 -04}
+ {3731886000 -14400 0 -04}
+ {3745195200 -10800 1 -04}
+ {3763335600 -14400 0 -04}
+ {3776644800 -10800 1 -04}
+ {3794785200 -14400 0 -04}
+ {3808094400 -10800 1 -04}
+ {3826839600 -14400 0 -04}
+ {3839544000 -10800 1 -04}
+ {3858289200 -14400 0 -04}
+ {3871598400 -10800 1 -04}
+ {3889738800 -14400 0 -04}
+ {3903048000 -10800 1 -04}
+ {3921188400 -14400 0 -04}
+ {3934497600 -10800 1 -04}
+ {3952638000 -14400 0 -04}
+ {3965947200 -10800 1 -04}
+ {3984692400 -14400 0 -04}
+ {3997396800 -10800 1 -04}
+ {4016142000 -14400 0 -04}
+ {4029451200 -10800 1 -04}
+ {4047591600 -14400 0 -04}
+ {4060900800 -10800 1 -04}
+ {4079041200 -14400 0 -04}
+ {4092350400 -10800 1 -04}
}
diff --git a/library/tzdata/Asia/Macau b/library/tzdata/Asia/Macau
index 76a00aa..cbafd0e 100644
--- a/library/tzdata/Asia/Macau
+++ b/library/tzdata/Asia/Macau
@@ -1,20 +1,56 @@
# created by tools/tclZIC.tcl - do not edit
set TZData(:Asia/Macau) {
- {-9223372036854775808 27260 0 LMT}
- {-1830412800 28800 0 CST}
+ {-9223372036854775808 27250 0 LMT}
+ {-2056692850 28800 0 CST}
+ {-884509200 32400 0 +09}
+ {-873280800 36000 1 +09}
+ {-855918000 32400 0 +09}
+ {-841744800 36000 1 +09}
+ {-828529200 32400 0 +10}
+ {-765363600 28800 0 CT}
+ {-747046800 32400 1 CDT}
+ {-733827600 28800 0 CST}
+ {-716461200 32400 1 CDT}
+ {-697021200 28800 0 CST}
+ {-683715600 32400 1 CDT}
+ {-667990800 28800 0 CST}
+ {-654771600 32400 1 CDT}
+ {-636627600 28800 0 CST}
+ {-623322000 32400 1 CDT}
+ {-605178000 28800 0 CST}
+ {-591872400 32400 1 CDT}
+ {-573642000 28800 0 CST}
+ {-559818000 32400 1 CDT}
+ {-541674000 28800 0 CST}
+ {-528368400 32400 1 CDT}
+ {-510224400 28800 0 CST}
+ {-498128400 32400 1 CDT}
+ {-478774800 28800 0 CST}
+ {-466678800 32400 1 CDT}
+ {-446720400 28800 0 CST}
+ {-435229200 32400 1 CDT}
+ {-415258200 28800 0 CST}
+ {-403158600 32400 1 CDT}
+ {-383808600 28800 0 CST}
+ {-371709000 32400 1 CDT}
+ {-352359000 28800 0 CST}
+ {-340259400 32400 1 CDT}
+ {-320909400 28800 0 CST}
+ {-308809800 32400 1 CDT}
+ {-288855000 28800 0 CST}
{-277360200 32400 1 CDT}
{-257405400 28800 0 CST}
{-245910600 32400 1 CDT}
{-225955800 28800 0 CST}
- {-214473600 32400 1 CDT}
+ {-213856200 32400 1 CDT}
{-194506200 28800 0 CST}
{-182406600 32400 1 CDT}
{-163056600 28800 0 CST}
- {-150969600 32400 1 CDT}
- {-131619600 28800 0 CST}
+ {-148537800 32400 1 CDT}
+ {-132820200 28800 0 CST}
{-117088200 32400 1 CDT}
- {-101367000 28800 0 CST}
+ {-101370600 28800 0 CST}
{-85638600 32400 1 CDT}
{-69312600 28800 0 CST}
{-53584200 32400 1 CDT}
@@ -25,22 +61,16 @@ set TZData(:Asia/Macau) {
{25036200 28800 0 CST}
{40764600 32400 1 CDT}
{56485800 28800 0 CST}
- {72201600 32400 1 CDT}
- {87922800 28800 0 CST}
- {103651200 32400 1 CDT}
- {119977200 28800 0 CST}
- {135705600 32400 1 CDT}
+ {72214200 32400 1 CDT}
+ {88540200 28800 0 CST}
+ {104268600 32400 1 CDT}
+ {119989800 28800 0 CST}
+ {126041400 32400 1 CDT}
{151439400 28800 0 CST}
{167167800 32400 1 CDT}
{182889000 28800 0 CST}
{198617400 32400 1 CDT}
{214338600 28800 0 CST}
- {230067000 32400 1 CDT}
- {245788200 28800 0 CST}
- {261504000 32400 1 CDT}
- {277225200 28800 0 CST}
- {292953600 32400 1 CDT}
- {309279600 28800 0 CST}
- {325008000 32400 1 CDT}
- {340729200 28800 0 CST}
+ {295385400 32400 1 CDT}
+ {309292200 28800 0 CST}
}
diff --git a/library/tzdata/Asia/Manila b/library/tzdata/Asia/Manila
index b7ffa7a..6eb1db3 100644
--- a/library/tzdata/Asia/Manila
+++ b/library/tzdata/Asia/Manila
@@ -3,13 +3,13 @@
set TZData(:Asia/Manila) {
{-9223372036854775808 -57360 0 LMT}
{-3944621040 29040 0 LMT}
- {-2229321840 28800 0 +08}
- {-1046678400 32400 1 +08}
- {-1038733200 28800 0 +08}
- {-873273600 32400 0 +09}
- {-794221200 28800 0 +08}
- {-496224000 32400 1 +08}
- {-489315600 28800 0 +08}
- {259344000 32400 1 +08}
- {275151600 28800 0 +08}
+ {-2229321840 28800 0 PST}
+ {-1046678400 32400 1 PDT}
+ {-1038733200 28800 0 PST}
+ {-873273600 32400 0 JST}
+ {-794221200 28800 0 PST}
+ {-496224000 32400 1 PDT}
+ {-489315600 28800 0 PST}
+ {259344000 32400 1 PDT}
+ {275151600 28800 0 PST}
}
diff --git a/library/tzdata/Asia/Pyongyang b/library/tzdata/Asia/Pyongyang
index 5746472..5351736 100644
--- a/library/tzdata/Asia/Pyongyang
+++ b/library/tzdata/Asia/Pyongyang
@@ -6,5 +6,5 @@ set TZData(:Asia/Pyongyang) {
{-1830414600 32400 0 JST}
{-768646800 32400 0 KST}
{1439564400 30600 0 KST}
- {1525447800 32400 0 KST}
+ {1525446000 32400 0 KST}
}
diff --git a/library/tzdata/Asia/Shanghai b/library/tzdata/Asia/Shanghai
index ff2d2b5..66bc4339 100644
--- a/library/tzdata/Asia/Shanghai
+++ b/library/tzdata/Asia/Shanghai
@@ -3,21 +3,30 @@
set TZData(:Asia/Shanghai) {
{-9223372036854775808 29143 0 LMT}
{-2177481943 28800 0 CST}
- {-933494400 32400 1 CDT}
- {-923130000 28800 0 CST}
- {-908784000 32400 1 CDT}
- {-891594000 28800 0 CST}
- {-662716800 28800 0 CST}
- {515520000 32400 1 CDT}
- {527007600 28800 0 CST}
- {545155200 32400 1 CDT}
- {558457200 28800 0 CST}
- {576604800 32400 1 CDT}
- {589906800 28800 0 CST}
- {608659200 32400 1 CDT}
- {621961200 28800 0 CST}
- {640108800 32400 1 CDT}
- {653410800 28800 0 CST}
- {671558400 32400 1 CDT}
- {684860400 28800 0 CST}
+ {-933667200 32400 1 CDT}
+ {-922093200 28800 0 CST}
+ {-908870400 32400 1 CDT}
+ {-888829200 28800 0 CST}
+ {-881049600 32400 1 CDT}
+ {-767869200 28800 0 CST}
+ {-745833600 32400 1 CDT}
+ {-733827600 28800 0 CST}
+ {-716889600 32400 1 CDT}
+ {-699613200 28800 0 CST}
+ {-683884800 32400 1 CDT}
+ {-670669200 28800 0 CST}
+ {-652348800 32400 1 CDT}
+ {-650016000 28800 0 CST}
+ {515527200 32400 1 CDT}
+ {527014800 28800 0 CST}
+ {545162400 32400 1 CDT}
+ {558464400 28800 0 CST}
+ {577216800 32400 1 CDT}
+ {589914000 28800 0 CST}
+ {608666400 32400 1 CDT}
+ {621968400 28800 0 CST}
+ {640116000 32400 1 CDT}
+ {653418000 28800 0 CST}
+ {671565600 32400 1 CDT}
+ {684867600 28800 0 CST}
}
diff --git a/library/tzdata/Asia/Tokyo b/library/tzdata/Asia/Tokyo
index 790df0a..cc7a857 100644
--- a/library/tzdata/Asia/Tokyo
+++ b/library/tzdata/Asia/Tokyo
@@ -4,11 +4,11 @@ set TZData(:Asia/Tokyo) {
{-9223372036854775808 33539 0 LMT}
{-2587712400 32400 0 JST}
{-683802000 36000 1 JDT}
- {-672314400 32400 0 JST}
+ {-672310800 32400 0 JST}
{-654771600 36000 1 JDT}
- {-640864800 32400 0 JST}
+ {-640861200 32400 0 JST}
{-620298000 36000 1 JDT}
- {-609415200 32400 0 JST}
+ {-609411600 32400 0 JST}
{-588848400 36000 1 JDT}
- {-577965600 32400 0 JST}
+ {-577962000 32400 0 JST}
}
diff --git a/library/tzdata/Europe/Volgograd b/library/tzdata/Europe/Volgograd
index 05e1044..3938683 100644
--- a/library/tzdata/Europe/Volgograd
+++ b/library/tzdata/Europe/Volgograd
@@ -68,4 +68,5 @@ set TZData(:Europe/Volgograd) {
{1288479600 10800 0 +03}
{1301180400 14400 0 +04}
{1414274400 10800 0 +03}
+ {1540681200 14400 0 +04}
}
diff --git a/library/tzdata/Pacific/Easter b/library/tzdata/Pacific/Easter
index a087cd0..7a8d525 100644
--- a/library/tzdata/Pacific/Easter
+++ b/library/tzdata/Pacific/Easter
@@ -103,166 +103,166 @@ set TZData(:Pacific/Easter) {
{1502596800 -18000 1 -06}
{1526180400 -21600 0 -06}
{1534046400 -18000 1 -06}
- {1557630000 -21600 0 -06}
- {1565496000 -18000 1 -06}
- {1589079600 -21600 0 -06}
- {1596945600 -18000 1 -06}
- {1620529200 -21600 0 -06}
- {1629000000 -18000 1 -06}
- {1652583600 -21600 0 -06}
- {1660449600 -18000 1 -06}
- {1684033200 -21600 0 -06}
- {1691899200 -18000 1 -06}
- {1715482800 -21600 0 -06}
- {1723348800 -18000 1 -06}
- {1746932400 -21600 0 -06}
- {1754798400 -18000 1 -06}
- {1778382000 -21600 0 -06}
- {1786248000 -18000 1 -06}
- {1809831600 -21600 0 -06}
- {1818302400 -18000 1 -06}
- {1841886000 -21600 0 -06}
- {1849752000 -18000 1 -06}
- {1873335600 -21600 0 -06}
- {1881201600 -18000 1 -06}
- {1904785200 -21600 0 -06}
- {1912651200 -18000 1 -06}
- {1936234800 -21600 0 -06}
- {1944100800 -18000 1 -06}
- {1967684400 -21600 0 -06}
- {1976155200 -18000 1 -06}
- {1999738800 -21600 0 -06}
- {2007604800 -18000 1 -06}
- {2031188400 -21600 0 -06}
- {2039054400 -18000 1 -06}
- {2062638000 -21600 0 -06}
- {2070504000 -18000 1 -06}
- {2094087600 -21600 0 -06}
- {2101953600 -18000 1 -06}
- {2125537200 -21600 0 -06}
- {2133403200 -18000 1 -06}
- {2156986800 -21600 0 -06}
- {2165457600 -18000 1 -06}
- {2189041200 -21600 0 -06}
- {2196907200 -18000 1 -06}
- {2220490800 -21600 0 -06}
- {2228356800 -18000 1 -06}
- {2251940400 -21600 0 -06}
- {2259806400 -18000 1 -06}
- {2283390000 -21600 0 -06}
- {2291256000 -18000 1 -06}
- {2314839600 -21600 0 -06}
- {2322705600 -18000 1 -06}
- {2346894000 -21600 0 -06}
- {2354760000 -18000 1 -06}
- {2378343600 -21600 0 -06}
- {2386209600 -18000 1 -06}
- {2409793200 -21600 0 -06}
- {2417659200 -18000 1 -06}
- {2441242800 -21600 0 -06}
- {2449108800 -18000 1 -06}
- {2472692400 -21600 0 -06}
- {2480558400 -18000 1 -06}
- {2504142000 -21600 0 -06}
- {2512612800 -18000 1 -06}
- {2536196400 -21600 0 -06}
- {2544062400 -18000 1 -06}
- {2567646000 -21600 0 -06}
- {2575512000 -18000 1 -06}
- {2599095600 -21600 0 -06}
- {2606961600 -18000 1 -06}
- {2630545200 -21600 0 -06}
- {2638411200 -18000 1 -06}
- {2661994800 -21600 0 -06}
- {2669860800 -18000 1 -06}
- {2693444400 -21600 0 -06}
- {2701915200 -18000 1 -06}
- {2725498800 -21600 0 -06}
- {2733364800 -18000 1 -06}
- {2756948400 -21600 0 -06}
- {2764814400 -18000 1 -06}
- {2788398000 -21600 0 -06}
- {2796264000 -18000 1 -06}
- {2819847600 -21600 0 -06}
- {2827713600 -18000 1 -06}
- {2851297200 -21600 0 -06}
- {2859768000 -18000 1 -06}
- {2883351600 -21600 0 -06}
- {2891217600 -18000 1 -06}
- {2914801200 -21600 0 -06}
- {2922667200 -18000 1 -06}
- {2946250800 -21600 0 -06}
- {2954116800 -18000 1 -06}
- {2977700400 -21600 0 -06}
- {2985566400 -18000 1 -06}
- {3009150000 -21600 0 -06}
- {3017016000 -18000 1 -06}
- {3040599600 -21600 0 -06}
- {3049070400 -18000 1 -06}
- {3072654000 -21600 0 -06}
- {3080520000 -18000 1 -06}
- {3104103600 -21600 0 -06}
- {3111969600 -18000 1 -06}
- {3135553200 -21600 0 -06}
- {3143419200 -18000 1 -06}
- {3167002800 -21600 0 -06}
- {3174868800 -18000 1 -06}
- {3198452400 -21600 0 -06}
- {3206318400 -18000 1 -06}
- {3230506800 -21600 0 -06}
- {3238372800 -18000 1 -06}
- {3261956400 -21600 0 -06}
- {3269822400 -18000 1 -06}
- {3293406000 -21600 0 -06}
- {3301272000 -18000 1 -06}
- {3324855600 -21600 0 -06}
- {3332721600 -18000 1 -06}
- {3356305200 -21600 0 -06}
- {3364171200 -18000 1 -06}
- {3387754800 -21600 0 -06}
- {3396225600 -18000 1 -06}
- {3419809200 -21600 0 -06}
- {3427675200 -18000 1 -06}
- {3451258800 -21600 0 -06}
- {3459124800 -18000 1 -06}
- {3482708400 -21600 0 -06}
- {3490574400 -18000 1 -06}
- {3514158000 -21600 0 -06}
- {3522024000 -18000 1 -06}
- {3545607600 -21600 0 -06}
- {3553473600 -18000 1 -06}
- {3577057200 -21600 0 -06}
- {3585528000 -18000 1 -06}
- {3609111600 -21600 0 -06}
- {3616977600 -18000 1 -06}
- {3640561200 -21600 0 -06}
- {3648427200 -18000 1 -06}
- {3672010800 -21600 0 -06}
- {3679876800 -18000 1 -06}
- {3703460400 -21600 0 -06}
- {3711326400 -18000 1 -06}
- {3734910000 -21600 0 -06}
- {3743380800 -18000 1 -06}
- {3766964400 -21600 0 -06}
- {3774830400 -18000 1 -06}
- {3798414000 -21600 0 -06}
- {3806280000 -18000 1 -06}
- {3829863600 -21600 0 -06}
- {3837729600 -18000 1 -06}
- {3861313200 -21600 0 -06}
- {3869179200 -18000 1 -06}
- {3892762800 -21600 0 -06}
- {3900628800 -18000 1 -06}
- {3924212400 -21600 0 -06}
- {3932683200 -18000 1 -06}
- {3956266800 -21600 0 -06}
- {3964132800 -18000 1 -06}
- {3987716400 -21600 0 -06}
- {3995582400 -18000 1 -06}
- {4019166000 -21600 0 -06}
- {4027032000 -18000 1 -06}
- {4050615600 -21600 0 -06}
- {4058481600 -18000 1 -06}
- {4082065200 -21600 0 -06}
- {4089931200 -18000 1 -06}
+ {1554606000 -21600 0 -06}
+ {1567915200 -18000 1 -06}
+ {1586055600 -21600 0 -06}
+ {1599364800 -18000 1 -06}
+ {1617505200 -21600 0 -06}
+ {1630814400 -18000 1 -06}
+ {1648954800 -21600 0 -06}
+ {1662264000 -18000 1 -06}
+ {1680404400 -21600 0 -06}
+ {1693713600 -18000 1 -06}
+ {1712458800 -21600 0 -06}
+ {1725768000 -18000 1 -06}
+ {1743908400 -21600 0 -06}
+ {1757217600 -18000 1 -06}
+ {1775358000 -21600 0 -06}
+ {1788667200 -18000 1 -06}
+ {1806807600 -21600 0 -06}
+ {1820116800 -18000 1 -06}
+ {1838257200 -21600 0 -06}
+ {1851566400 -18000 1 -06}
+ {1870311600 -21600 0 -06}
+ {1883016000 -18000 1 -06}
+ {1901761200 -21600 0 -06}
+ {1915070400 -18000 1 -06}
+ {1933210800 -21600 0 -06}
+ {1946520000 -18000 1 -06}
+ {1964660400 -21600 0 -06}
+ {1977969600 -18000 1 -06}
+ {1996110000 -21600 0 -06}
+ {2009419200 -18000 1 -06}
+ {2027559600 -21600 0 -06}
+ {2040868800 -18000 1 -06}
+ {2059614000 -21600 0 -06}
+ {2072318400 -18000 1 -06}
+ {2091063600 -21600 0 -06}
+ {2104372800 -18000 1 -06}
+ {2122513200 -21600 0 -06}
+ {2135822400 -18000 1 -06}
+ {2153962800 -21600 0 -06}
+ {2167272000 -18000 1 -06}
+ {2185412400 -21600 0 -06}
+ {2198721600 -18000 1 -06}
+ {2217466800 -21600 0 -06}
+ {2230171200 -18000 1 -06}
+ {2248916400 -21600 0 -06}
+ {2262225600 -18000 1 -06}
+ {2280366000 -21600 0 -06}
+ {2293675200 -18000 1 -06}
+ {2311815600 -21600 0 -06}
+ {2325124800 -18000 1 -06}
+ {2343265200 -21600 0 -06}
+ {2356574400 -18000 1 -06}
+ {2374714800 -21600 0 -06}
+ {2388024000 -18000 1 -06}
+ {2406769200 -21600 0 -06}
+ {2419473600 -18000 1 -06}
+ {2438218800 -21600 0 -06}
+ {2451528000 -18000 1 -06}
+ {2469668400 -21600 0 -06}
+ {2482977600 -18000 1 -06}
+ {2501118000 -21600 0 -06}
+ {2514427200 -18000 1 -06}
+ {2532567600 -21600 0 -06}
+ {2545876800 -18000 1 -06}
+ {2564017200 -21600 0 -06}
+ {2577326400 -18000 1 -06}
+ {2596071600 -21600 0 -06}
+ {2609380800 -18000 1 -06}
+ {2627521200 -21600 0 -06}
+ {2640830400 -18000 1 -06}
+ {2658970800 -21600 0 -06}
+ {2672280000 -18000 1 -06}
+ {2690420400 -21600 0 -06}
+ {2703729600 -18000 1 -06}
+ {2721870000 -21600 0 -06}
+ {2735179200 -18000 1 -06}
+ {2753924400 -21600 0 -06}
+ {2766628800 -18000 1 -06}
+ {2785374000 -21600 0 -06}
+ {2798683200 -18000 1 -06}
+ {2816823600 -21600 0 -06}
+ {2830132800 -18000 1 -06}
+ {2848273200 -21600 0 -06}
+ {2861582400 -18000 1 -06}
+ {2879722800 -21600 0 -06}
+ {2893032000 -18000 1 -06}
+ {2911172400 -21600 0 -06}
+ {2924481600 -18000 1 -06}
+ {2943226800 -21600 0 -06}
+ {2955931200 -18000 1 -06}
+ {2974676400 -21600 0 -06}
+ {2987985600 -18000 1 -06}
+ {3006126000 -21600 0 -06}
+ {3019435200 -18000 1 -06}
+ {3037575600 -21600 0 -06}
+ {3050884800 -18000 1 -06}
+ {3069025200 -21600 0 -06}
+ {3082334400 -18000 1 -06}
+ {3101079600 -21600 0 -06}
+ {3113784000 -18000 1 -06}
+ {3132529200 -21600 0 -06}
+ {3145838400 -18000 1 -06}
+ {3163978800 -21600 0 -06}
+ {3177288000 -18000 1 -06}
+ {3195428400 -21600 0 -06}
+ {3208737600 -18000 1 -06}
+ {3226878000 -21600 0 -06}
+ {3240187200 -18000 1 -06}
+ {3258327600 -21600 0 -06}
+ {3271636800 -18000 1 -06}
+ {3290382000 -21600 0 -06}
+ {3303086400 -18000 1 -06}
+ {3321831600 -21600 0 -06}
+ {3335140800 -18000 1 -06}
+ {3353281200 -21600 0 -06}
+ {3366590400 -18000 1 -06}
+ {3384730800 -21600 0 -06}
+ {3398040000 -18000 1 -06}
+ {3416180400 -21600 0 -06}
+ {3429489600 -18000 1 -06}
+ {3447630000 -21600 0 -06}
+ {3460939200 -18000 1 -06}
+ {3479684400 -21600 0 -06}
+ {3492993600 -18000 1 -06}
+ {3511134000 -21600 0 -06}
+ {3524443200 -18000 1 -06}
+ {3542583600 -21600 0 -06}
+ {3555892800 -18000 1 -06}
+ {3574033200 -21600 0 -06}
+ {3587342400 -18000 1 -06}
+ {3605482800 -21600 0 -06}
+ {3618792000 -18000 1 -06}
+ {3637537200 -21600 0 -06}
+ {3650241600 -18000 1 -06}
+ {3668986800 -21600 0 -06}
+ {3682296000 -18000 1 -06}
+ {3700436400 -21600 0 -06}
+ {3713745600 -18000 1 -06}
+ {3731886000 -21600 0 -06}
+ {3745195200 -18000 1 -06}
+ {3763335600 -21600 0 -06}
+ {3776644800 -18000 1 -06}
+ {3794785200 -21600 0 -06}
+ {3808094400 -18000 1 -06}
+ {3826839600 -21600 0 -06}
+ {3839544000 -18000 1 -06}
+ {3858289200 -21600 0 -06}
+ {3871598400 -18000 1 -06}
+ {3889738800 -21600 0 -06}
+ {3903048000 -18000 1 -06}
+ {3921188400 -21600 0 -06}
+ {3934497600 -18000 1 -06}
+ {3952638000 -21600 0 -06}
+ {3965947200 -18000 1 -06}
+ {3984692400 -21600 0 -06}
+ {3997396800 -18000 1 -06}
+ {4016142000 -21600 0 -06}
+ {4029451200 -18000 1 -06}
+ {4047591600 -21600 0 -06}
+ {4060900800 -18000 1 -06}
+ {4079041200 -21600 0 -06}
+ {4092350400 -18000 1 -06}
}
diff --git a/library/tzdata/Pacific/Fiji b/library/tzdata/Pacific/Fiji
index 610c191..b05985c 100644
--- a/library/tzdata/Pacific/Fiji
+++ b/library/tzdata/Pacific/Fiji
@@ -26,7 +26,7 @@ set TZData(:Pacific/Fiji) {
{1509804000 46800 1 +12}
{1515852000 43200 0 +12}
{1541253600 46800 1 +12}
- {1547906400 43200 0 +12}
+ {1547301600 43200 0 +12}
{1572703200 46800 1 +12}
{1579356000 43200 0 +12}
{1604152800 46800 1 +12}
@@ -48,7 +48,7 @@ set TZData(:Pacific/Fiji) {
{1856959200 46800 1 +12}
{1863007200 43200 0 +12}
{1888408800 46800 1 +12}
- {1895061600 43200 0 +12}
+ {1894456800 43200 0 +12}
{1919858400 46800 1 +12}
{1926511200 43200 0 +12}
{1951308000 46800 1 +12}
@@ -60,7 +60,7 @@ set TZData(:Pacific/Fiji) {
{2046261600 46800 1 +12}
{2052309600 43200 0 +12}
{2077711200 46800 1 +12}
- {2084364000 43200 0 +12}
+ {2083759200 43200 0 +12}
{2109160800 46800 1 +12}
{2115813600 43200 0 +12}
{2140610400 46800 1 +12}
@@ -70,7 +70,7 @@ set TZData(:Pacific/Fiji) {
{2204114400 46800 1 +12}
{2210162400 43200 0 +12}
{2235564000 46800 1 +12}
- {2242216800 43200 0 +12}
+ {2241612000 43200 0 +12}
{2267013600 46800 1 +12}
{2273666400 43200 0 +12}
{2298463200 46800 1 +12}
@@ -82,7 +82,7 @@ set TZData(:Pacific/Fiji) {
{2393416800 46800 1 +12}
{2399464800 43200 0 +12}
{2424866400 46800 1 +12}
- {2431519200 43200 0 +12}
+ {2430914400 43200 0 +12}
{2456316000 46800 1 +12}
{2462968800 43200 0 +12}
{2487765600 46800 1 +12}
@@ -104,7 +104,7 @@ set TZData(:Pacific/Fiji) {
{2740572000 46800 1 +12}
{2746620000 43200 0 +12}
{2772021600 46800 1 +12}
- {2778674400 43200 0 +12}
+ {2778069600 43200 0 +12}
{2803471200 46800 1 +12}
{2810124000 43200 0 +12}
{2834920800 46800 1 +12}
@@ -116,7 +116,7 @@ set TZData(:Pacific/Fiji) {
{2929874400 46800 1 +12}
{2935922400 43200 0 +12}
{2961324000 46800 1 +12}
- {2967976800 43200 0 +12}
+ {2967372000 43200 0 +12}
{2992773600 46800 1 +12}
{2999426400 43200 0 +12}
{3024223200 46800 1 +12}
@@ -126,7 +126,7 @@ set TZData(:Pacific/Fiji) {
{3087727200 46800 1 +12}
{3093775200 43200 0 +12}
{3119176800 46800 1 +12}
- {3125829600 43200 0 +12}
+ {3125224800 43200 0 +12}
{3150626400 46800 1 +12}
{3157279200 43200 0 +12}
{3182076000 46800 1 +12}
@@ -138,7 +138,7 @@ set TZData(:Pacific/Fiji) {
{3277029600 46800 1 +12}
{3283077600 43200 0 +12}
{3308479200 46800 1 +12}
- {3315132000 43200 0 +12}
+ {3314527200 43200 0 +12}
{3339928800 46800 1 +12}
{3346581600 43200 0 +12}
{3371378400 46800 1 +12}
@@ -160,7 +160,7 @@ set TZData(:Pacific/Fiji) {
{3624184800 46800 1 +12}
{3630232800 43200 0 +12}
{3655634400 46800 1 +12}
- {3662287200 43200 0 +12}
+ {3661682400 43200 0 +12}
{3687084000 46800 1 +12}
{3693736800 43200 0 +12}
{3718533600 46800 1 +12}
@@ -172,7 +172,7 @@ set TZData(:Pacific/Fiji) {
{3813487200 46800 1 +12}
{3819535200 43200 0 +12}
{3844936800 46800 1 +12}
- {3851589600 43200 0 +12}
+ {3850984800 43200 0 +12}
{3876386400 46800 1 +12}
{3883039200 43200 0 +12}
{3907836000 46800 1 +12}
@@ -182,7 +182,7 @@ set TZData(:Pacific/Fiji) {
{3971340000 46800 1 +12}
{3977388000 43200 0 +12}
{4002789600 46800 1 +12}
- {4009442400 43200 0 +12}
+ {4008837600 43200 0 +12}
{4034239200 46800 1 +12}
{4040892000 43200 0 +12}
{4065688800 46800 1 +12}
diff --git a/tests/cmdAH.test b/tests/cmdAH.test
index 0377064..e8933d6 100644
--- a/tests/cmdAH.test
+++ b/tests/cmdAH.test
@@ -23,7 +23,7 @@ testConstraint testsetplatform [llength [info commands testsetplatform]]
testConstraint testvolumetype [llength [info commands testvolumetype]]
testConstraint linkDirectory [expr {
![testConstraint win] ||
- ([string index $tcl_platform(osVersion) 0] >= 5
+ ($::tcl_platform(osVersion) >= 5.0
&& [lindex [file system [temporaryDirectory]] 1] eq "NTFS")
}]
diff --git a/tests/fCmd.test b/tests/fCmd.test
index c8264b2..11ab79e 100644
--- a/tests/fCmd.test
+++ b/tests/fCmd.test
@@ -65,11 +65,10 @@ if {[testConstraint unix]} {
# Also used in winFCmd...
if {[testConstraint win]} {
- set major [string index $tcl_platform(osVersion) 0]
- if {[testConstraint nt] && $major > 4} {
- if {$major > 5} {
+ if {[testConstraint nt] && $::tcl_platform(osVersion) >= 5.0} {
+ if {$::tcl_platform(osVersion) >= 6.0} {
testConstraint winVista 1
- } elseif {$major == 5} {
+ } else {
testConstraint win2000orXP 1
}
}
@@ -78,7 +77,7 @@ if {[testConstraint win]} {
testConstraint darwin9 [expr {
[testConstraint unix]
&& $tcl_platform(os) eq "Darwin"
- && [package vsatisfies 1.$tcl_platform(osVersion) 1.9]
+ && [package vsatisfies 1.$::tcl_platform(osVersion) 1.9]
}]
testConstraint notDarwin9 [expr {![testConstraint darwin9]}]
@@ -2309,7 +2308,7 @@ test fCmd-27.6 {TclFileAttrsCmd - setting more than one option} -setup {
if {
[testConstraint win] &&
- ([string index $tcl_platform(osVersion) 0] < 5
+ ($::tcl_platform(osVersion) < 5.0
|| [lindex [file system [temporaryDirectory]] 1] ne "NTFS")
} then {
testConstraint linkDirectory 0
diff --git a/tests/fileName.test b/tests/fileName.test
index 7f983a7..7b51da1 100644
--- a/tests/fileName.test
+++ b/tests/fileName.test
@@ -23,7 +23,7 @@ testConstraint testtranslatefilename [llength [info commands testtranslatefilena
testConstraint linkDirectory 1
testConstraint symbolicLinkFile 1
if {[testConstraint win]} {
- if {[string index $tcl_platform(osVersion) 0] < 5 \
+ if {$::tcl_platform(osVersion) < 5.0 \
|| [lindex [file system [temporaryDirectory]] 1] ne "NTFS"} {
testConstraint linkDirectory 0
}
diff --git a/tests/oo.test b/tests/oo.test
index 024f890..db5c14f 100644
--- a/tests/oo.test
+++ b/tests/oo.test
@@ -1804,6 +1804,106 @@ test oo-13.4 {OO: changing an object's class} -body {
foo destroy
bar destroy
} -result {::foo ::foo ::foo ::bar}
+test oo-13.5 {OO: changing an object's class: non-class to class} -setup {
+ oo::object create fooObj
+} -body {
+ oo::objdefine fooObj {
+ class oo::class
+ }
+ oo::define fooObj {
+ method x {} {expr 1+2+3}
+ }
+ [fooObj new] x
+} -cleanup {
+ fooObj destroy
+} -result 6
+test oo-13.6 {OO: changing an object's class: class to non-class} -setup {
+ oo::class create foo
+ unset -nocomplain ::result
+} -body {
+ set result dangling
+ oo::define foo {
+ method x {} {expr 1+2+3}
+ }
+ oo::class create boo {
+ superclass foo
+ destructor {set ::result "ok"}
+ }
+ boo new
+ foo create bar
+ oo::objdefine foo {
+ class oo::object
+ }
+ list $result [catch {bar x} msg] $msg
+} -cleanup {
+ catch {bar destroy}
+ foo destroy
+} -result {ok 1 {invalid command name "bar"}}
+test oo-13.7 {OO: changing an object's class} -setup {
+ oo::class create foo
+ oo::class create bar
+ unset -nocomplain result
+} -body {
+ oo::define bar method x {} {return ok}
+ oo::define foo {
+ method x {} {expr 1+2+3}
+ self mixin foo
+ }
+ lappend result [foo x]
+ oo::objdefine foo class bar
+ lappend result [foo x]
+} -cleanup {
+ foo destroy
+ bar destroy
+} -result {6 ok}
+test oo-13.8 {OO: changing an object's class to itself} -setup {
+ oo::class create foo
+} -body {
+ oo::define foo {
+ method x {} {expr 1+2+3}
+ }
+ oo::objdefine foo class foo
+} -cleanup {
+ foo destroy
+} -returnCodes error -result {may not change classes into an instance of themselves}
+test oo-13.9 {OO: changing an object's class: roots are special} -setup {
+ set i [interp create]
+} -body {
+ $i eval {
+ oo::objdefine oo::object {
+ class oo::class
+ }
+ }
+} -cleanup {
+ interp delete $i
+} -returnCodes error -result {may not modify the class of the root object class}
+test oo-13.10 {OO: changing an object's class: roots are special} -setup {
+ set i [interp create]
+} -body {
+ $i eval {
+ oo::objdefine oo::class {
+ class oo::object
+ }
+ }
+} -cleanup {
+ interp delete $i
+} -returnCodes error -result {may not modify the class of the class of classes}
+test oo-13.11 {OO: changing an object's class in a tricky place} -setup {
+ oo::class create cls
+ unset -nocomplain result
+} -body {
+ set result gorp
+ list [catch {
+ oo::define cls {
+ method x {} {return}
+ self class oo::object
+ ::set ::result ok
+ method y {} {return}; # I'm sorry, Dave. I'm afraid I can't do that.
+ }
+ } msg] $msg $result
+} -cleanup {
+ cls destroy
+} -result {1 {attempt to misuse API} ok}
# todo: changing a class subtype (metaclass) to another class subtype
test oo-14.1 {OO: mixins} {
diff --git a/tests/winFCmd.test b/tests/winFCmd.test
index 28a08fb..5243eca 100644
--- a/tests/winFCmd.test
+++ b/tests/winFCmd.test
@@ -57,11 +57,10 @@ proc cleanup {args} {
}
if {[testConstraint winOnly]} {
- set major [string index $tcl_platform(osVersion) 0]
- if {[testConstraint nt] && $major > 4} {
- if {$major > 5} {
+ if {[testConstraint nt] && $::tcl_platform(osVersion) >= 5.0} {
+ if {$::tcl_platform(osVersion) >= 6.0} {
testConstraint winVista 1
- } elseif {$major == 5} {
+ } else {
testConstraint win2000orXP 1
}
} else {
diff --git a/tools/genStubs.tcl b/tools/genStubs.tcl
index 9f2c6ca..f2f410f 100644
--- a/tools/genStubs.tcl
+++ b/tools/genStubs.tcl
@@ -191,12 +191,28 @@ proc genStubs::declare {args} {
regsub -all "\[ \t\n\]+" [string trim $decl] " " decl
set decl [parseDecl $decl]
- foreach platform $platformList {
- if {$decl ne ""} {
- set stubs($curName,$platform,$index) $decl
- if {![info exists stubs($curName,$platform,lastNum)] \
- || ($index > $stubs($curName,$platform,lastNum))} {
- set stubs($curName,$platform,lastNum) $index
+ if {([lindex $platformList 0] eq "deprecated")} {
+ set stubs($curName,deprecated,$index) [lindex $platformList 1]
+ set stubs($curName,generic,$index) $decl
+ if {![info exists stubs($curName,generic,lastNum)] \
+ || ($index > $stubs($curName,generic,lastNum))} {
+ set stubs($curName,generic,lastNum) $index
+ }
+ } elseif {([lindex $platformList 0] eq "nostub")} {
+ set stubs($curName,nostub,$index) [lindex $platformList 1]
+ set stubs($curName,generic,$index) $decl
+ if {![info exists stubs($curName,generic,lastNum)] \
+ || ($index > $stubs($curName,generic,lastNum))} {
+ set stubs($curName,generic,lastNum) $index
+ }
+ } else {
+ foreach platform $platformList {
+ if {$decl ne ""} {
+ set stubs($curName,$platform,$index) $decl
+ if {![info exists stubs($curName,$platform,lastNum)] \
+ || ($index > $stubs($curName,$platform,lastNum))} {
+ set stubs($curName,$platform,lastNum) $index
+ }
}
}
}
@@ -455,10 +471,17 @@ proc genStubs::parseArg {arg} {
proc genStubs::makeDecl {name decl index} {
variable scspec
+ variable stubs
+ variable libraryName
lassign $decl rtype fname args
append text "/* $index */\n"
- set line "$scspec $rtype"
+ if {[info exists stubs($name,deprecated,$index)]} {
+ append text "[string toupper $libraryName]_DEPRECATED(\"$stubs($name,deprecated,$index)\")\n"
+ set line "$rtype"
+ } else {
+ set line "$scspec $rtype"
+ }
set count [expr {2 - ([string length $line] / 8)}]
append line [string range "\t\t\t" 0 $count]
set pad [expr {24 - [string length $line]}]
@@ -569,11 +592,17 @@ proc genStubs::makeMacro {name decl index} {
proc genStubs::makeSlot {name decl index} {
lassign $decl rtype fname args
+ variable stubs
set lfname [string tolower [string index $fname 0]]
append lfname [string range $fname 1 end]
set text " "
+ if {[info exists stubs($name,deprecated,$index)]} {
+ append text "TCL_DEPRECATED_API(\"$stubs($name,deprecated,$index)\") "
+ } elseif {[info exists stubs($name,nostub,$index)]} {
+ append text "TCL_DEPRECATED_API(\"$stubs($name,nostub,$index)\") "
+ }
if {$args eq ""} {
append text $rtype " *" $lfname "; /* $index */\n"
return $text
@@ -682,7 +711,13 @@ proc genStubs::forAllStubs {name slotProc onAll textVar
for {set i 0} {$i <= $lastNum} {incr i} {
set slots [array names stubs $name,*,$i]
set emit 0
- if {[info exists stubs($name,generic,$i)]} {
+ if {[info exists stubs($name,deprecated,$i)]} {
+ append text [$slotProc $name $stubs($name,generic,$i) $i]
+ set emit 1
+ } elseif {[info exists stubs($name,nostub,$i)]} {
+ append text [$slotProc $name $stubs($name,generic,$i) $i]
+ set emit 1
+ } elseif {[info exists stubs($name,generic,$i)]} {
if {[llength $slots] > 1} {
puts stderr "conflicting generic and platform entries:\
$name $i"