summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ChangeLog32
-rw-r--r--generic/tclDate.c1252
-rw-r--r--generic/tclListObj.c219
-rw-r--r--library/tzdata/America/Cambridge_Bay8
-rw-r--r--library/tzdata/America/Havana372
-rw-r--r--library/tzdata/America/Inuvik11
-rw-r--r--library/tzdata/America/Iqaluit9
-rw-r--r--library/tzdata/America/Pangnirtung8
-rw-r--r--library/tzdata/America/Rankin_Inlet11
-rwxr-xr-xlibrary/tzdata/America/Resolute62
-rw-r--r--library/tzdata/America/Yellowknife8
-rw-r--r--library/tzdata/Asia/Choibalsan186
-rw-r--r--library/tzdata/Asia/Dili2
-rw-r--r--library/tzdata/Asia/Hovd186
-rw-r--r--library/tzdata/Asia/Jakarta2
-rw-r--r--library/tzdata/Asia/Jayapura2
-rw-r--r--library/tzdata/Asia/Makassar2
-rw-r--r--library/tzdata/Asia/Pontianak2
-rw-r--r--library/tzdata/Asia/Ulaanbaatar186
-rw-r--r--library/tzdata/Europe/Istanbul373
-rw-r--r--tests/lset.test17
21 files changed, 1237 insertions, 1713 deletions
diff --git a/ChangeLog b/ChangeLog
index 513a2e5..90b52d9 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,33 @@
+2007-03-20 Kevin B. Kenny <kennykb@acm.org>
+
+ * generic/tclDate.c: Rebuilt, despite Donal Fellows's comment when
+ committing it that no rebuild was required.
+ * generic/tclGetDate.y: According to Donal Fellows, "Introduce
+ modern formatting standards; no need for rebuild of tclDate.c."
+
+ * library/tzdata/America/Cambridge_Bay:
+ * library/tzdata/America/Havana:
+ * library/tzdata/America/Inuvik:
+ * library/tzdata/America/Iqaluit:
+ * library/tzdata/America/Pangnirtung:
+ * library/tzdata/America/Rankin_Inlet:
+ * library/tzdata/America/Resolute:
+ * library/tzdata/America/Yellowknife:
+ * library/tzdata/Asia/Choibalsan:
+ * library/tzdata/Asia/Dili:
+ * library/tzdata/Asia/Hovd:
+ * library/tzdata/Asia/Jakarta:
+ * library/tzdata/Asia/Jayapura:
+ * library/tzdata/Asia/Makassar:
+ * library/tzdata/Asia/Pontianak:
+ * library/tzdata/Asia/Ulaanbaatar:
+ * library/tzdata/Europe/Istanbul: Upgraded to Olson's tzdata2007d.
+
+ * generic/tclListObj.c (TclLsetList, TclLsetFlat):
+ * tests/lset.test: Changes to deal with shared internal
+ representation for lists passed to the [lset] command. Thanks to
+ Don Porter for fixing this issue. [Bug 1677512]
+
2007-03-19 Don Porter <dgp@users.sourceforge.net>
* generic/tclCompile.c: Revise the various expansion routines for
@@ -18,7 +48,7 @@
potentially unsafe practice. Many thanks to Konstantin Kushnir
<chpock@gmail.com> for reporting this.
-2007-03-17 Kevin Kenny <kennykb@acm.org>
+2007-03-17 Kevin B. Kenny <kennykb@acm.org>
* win/tclWinReg.c (GetKeyNames): Size the buffer for enumerating key
names correctly, so that Unicode names exceeding 127 chars can be
diff --git a/generic/tclDate.c b/generic/tclDate.c
index b38026f..cc1a30b 100644
--- a/generic/tclDate.c
+++ b/generic/tclDate.c
@@ -1,7 +1,7 @@
-/* A Bison parser, made by GNU Bison 1.875. */
+/* A Bison parser, made by GNU Bison 1.875b. */
/* Skeleton parser for Yacc-like parsing with Bison,
- Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002 Free Software Foundation, Inc.
+ Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -107,25 +107,25 @@
/* Copy the first part of user declarations. */
-/*
+/*
* tclDate.c --
*
- * This file is generated from a yacc grammar defined in
- * the file tclGetDate.y. It should not be edited directly.
+ * This file is generated from a yacc grammar defined in the file
+ * tclGetDate.y. It should not be edited directly.
*
* Copyright (c) 1992-1995 Karl Lehenbauer and Mark Diekhans.
* Copyright (c) 1995-1997 Sun Microsystems, Inc.
*
- * See the file "license.terms" for information on usage and redistribution
- * of this file, and for a DISCLAIMER OF ALL WARRANTIES.
+ * See the file "license.terms" for information on usage and redistribution of
+ * this file, and for a DISCLAIMER OF ALL WARRANTIES.
*
*/
#include "tclInt.h"
/*
- * Bison generates several labels that happen to be unused. MS Visual
- * C++ doesn't like that, and complains. Tell it to shut up.
+ * Bison generates several labels that happen to be unused. MS Visual C++
+ * doesn't like that, and complains. Tell it to shut up.
*/
#ifdef _MSC_VER
@@ -133,124 +133,123 @@
#endif /* _MSC_VER */
/*
- * yyparse will accept a 'struct DateInfo' as its parameter;
- * that's where the parsed fields will be returned.
+ * yyparse will accept a 'struct DateInfo' as its parameter; that's where the
+ * parsed fields will be returned.
*/
typedef struct DateInfo {
+ time_t dateYear;
+ time_t dateMonth;
+ time_t dateDay;
+ int dateHaveDate;
- time_t dateYear;
- time_t dateMonth;
- time_t dateDay;
- int dateHaveDate;
-
- time_t dateHour;
- time_t dateMinutes;
- time_t dateSeconds;
- int dateMeridian;
- int dateHaveTime;
-
- time_t dateTimezone;
- int dateDSTmode;
- int dateHaveZone;
+ time_t dateHour;
+ time_t dateMinutes;
+ time_t dateSeconds;
+ int dateMeridian;
+ int dateHaveTime;
- time_t dateRelMonth;
- time_t dateRelDay;
- time_t dateRelSeconds;
- int dateHaveRel;
+ time_t dateTimezone;
+ int dateDSTmode;
+ int dateHaveZone;
- time_t dateMonthOrdinal;
- int dateHaveOrdinalMonth;
+ time_t dateRelMonth;
+ time_t dateRelDay;
+ time_t dateRelSeconds;
+ int dateHaveRel;
- time_t dateDayOrdinal;
- time_t dateDayNumber;
- int dateHaveDay;
+ time_t dateMonthOrdinal;
+ int dateHaveOrdinalMonth;
- char *dateInput;
- time_t *dateRelPointer;
+ time_t dateDayOrdinal;
+ time_t dateDayNumber;
+ int dateHaveDay;
- int dateDigitCount;
+ char *dateInput;
+ time_t *dateRelPointer;
+ int dateDigitCount;
} DateInfo;
-#define YYPARSE_PARAM info
-#define YYLEX_PARAM info
-
-#define yyDSTmode (((DateInfo*)info)->dateDSTmode)
-#define yyDayOrdinal (((DateInfo*)info)->dateDayOrdinal)
-#define yyDayNumber (((DateInfo*)info)->dateDayNumber)
-#define yyMonthOrdinal (((DateInfo*)info)->dateMonthOrdinal)
-#define yyHaveDate (((DateInfo*)info)->dateHaveDate)
-#define yyHaveDay (((DateInfo*)info)->dateHaveDay)
-#define yyHaveOrdinalMonth (((DateInfo*)info)->dateHaveOrdinalMonth)
-#define yyHaveRel (((DateInfo*)info)->dateHaveRel)
-#define yyHaveTime (((DateInfo*)info)->dateHaveTime)
-#define yyHaveZone (((DateInfo*)info)->dateHaveZone)
-#define yyTimezone (((DateInfo*)info)->dateTimezone)
-#define yyDay (((DateInfo*)info)->dateDay)
-#define yyMonth (((DateInfo*)info)->dateMonth)
-#define yyYear (((DateInfo*)info)->dateYear)
-#define yyHour (((DateInfo*)info)->dateHour)
-#define yyMinutes (((DateInfo*)info)->dateMinutes)
-#define yySeconds (((DateInfo*)info)->dateSeconds)
-#define yyMeridian (((DateInfo*)info)->dateMeridian)
-#define yyRelMonth (((DateInfo*)info)->dateRelMonth)
-#define yyRelDay (((DateInfo*)info)->dateRelDay)
-#define yyRelSeconds (((DateInfo*)info)->dateRelSeconds)
-#define yyRelPointer (((DateInfo*)info)->dateRelPointer)
-#define yyInput (((DateInfo*)info)->dateInput)
-#define yyDigitCount (((DateInfo*)info)->dateDigitCount)
-
-#define EPOCH 1970
-#define START_OF_TIME 1902
-#define END_OF_TIME 2037
+#define YYPARSE_PARAM info
+#define YYLEX_PARAM info
+
+#define yyDSTmode (((DateInfo *) info)->dateDSTmode)
+#define yyDayOrdinal (((DateInfo *) info)->dateDayOrdinal)
+#define yyDayNumber (((DateInfo *) info)->dateDayNumber)
+#define yyMonthOrdinal (((DateInfo *) info)->dateMonthOrdinal)
+#define yyHaveDate (((DateInfo *) info)->dateHaveDate)
+#define yyHaveDay (((DateInfo *) info)->dateHaveDay)
+#define yyHaveOrdinalMonth (((DateInfo *) info)->dateHaveOrdinalMonth)
+#define yyHaveRel (((DateInfo *) info)->dateHaveRel)
+#define yyHaveTime (((DateInfo *) info)->dateHaveTime)
+#define yyHaveZone (((DateInfo *) info)->dateHaveZone)
+#define yyTimezone (((DateInfo *) info)->dateTimezone)
+#define yyDay (((DateInfo *) info)->dateDay)
+#define yyMonth (((DateInfo *) info)->dateMonth)
+#define yyYear (((DateInfo *) info)->dateYear)
+#define yyHour (((DateInfo *) info)->dateHour)
+#define yyMinutes (((DateInfo *) info)->dateMinutes)
+#define yySeconds (((DateInfo *) info)->dateSeconds)
+#define yyMeridian (((DateInfo *) info)->dateMeridian)
+#define yyRelMonth (((DateInfo *) info)->dateRelMonth)
+#define yyRelDay (((DateInfo *) info)->dateRelDay)
+#define yyRelSeconds (((DateInfo *) info)->dateRelSeconds)
+#define yyRelPointer (((DateInfo *) info)->dateRelPointer)
+#define yyInput (((DateInfo *) info)->dateInput)
+#define yyDigitCount (((DateInfo *) info)->dateDigitCount)
+
+#define EPOCH 1970
+#define START_OF_TIME 1902
+#define END_OF_TIME 2037
/*
* The offset of tm_year of struct tm returned by localtime, gmtime, etc.
* Posix requires 1900.
*/
-#define TM_YEAR_BASE 1900
-#define HOUR(x) ((int) (60 * x))
-#define SECSPERDAY (24L * 60L * 60L)
-#define IsLeapYear(x) ((x % 4 == 0) && (x % 100 != 0 || x % 400 == 0))
+#define TM_YEAR_BASE 1900
+
+#define HOUR(x) ((int) (60 * x))
+#define SECSPERDAY (24L * 60L * 60L)
+#define IsLeapYear(x) ((x % 4 == 0) && (x % 100 != 0 || x % 400 == 0))
/*
- * An entry in the lexical lookup table.
+ * An entry in the lexical lookup table.
*/
+
typedef struct _TABLE {
- const char *name;
- int type;
- time_t value;
+ char *name;
+ int type;
+ time_t value;
} TABLE;
-
/*
- * Daylight-savings mode: on, off, or not yet known.
+ * Daylight-savings mode: on, off, or not yet known.
*/
+
typedef enum _DSTMODE {
DSTon, DSToff, DSTmaybe
} DSTMODE;
/*
- * Meridian: am, pm, or 24-hour style.
+ * Meridian: am, pm, or 24-hour style.
*/
+
typedef enum _MERIDIAN {
MERam, MERpm, MER24
} MERIDIAN;
-
/*
* Prototypes of internal functions.
*/
-static void TclDateerror(const char *s);
-static time_t ToSeconds(time_t Hours, time_t Minutes,
- time_t Seconds, MERIDIAN Meridian);
-static int LookupWord(char *buff);
-static int TclDatelex(void* info);
-
-MODULE_SCOPE int yyparse (void *);
+static int LookupWord(char *buff);
+static void TclDateerror(char *s);
+static int TclDatelex(void *info);
+static time_t ToSeconds(time_t Hours, time_t Minutes,
+ time_t Seconds, MERIDIAN Meridian);
+MODULE_SCOPE int yyparse(void *);
@@ -270,8 +269,8 @@ MODULE_SCOPE int yyparse (void *);
#if ! defined (YYSTYPE) && ! defined (YYSTYPE_IS_DECLARED)
typedef union YYSTYPE {
- time_t Number;
- enum _MERIDIAN Meridian;
+ time_t Number;
+ enum _MERIDIAN Meridian;
} YYSTYPE;
/* Line 191 of yacc.c. */
@@ -475,12 +474,12 @@ static const yysigned_char yyrhs[] =
/* YYRLINE[YYN] -- source line where rule number YYN was defined. */
static const unsigned short yyrline[] =
{
- 0, 181, 181, 182, 185, 188, 191, 194, 197, 200,
- 203, 207, 212, 215, 221, 227, 235, 241, 252, 256,
- 260, 266, 270, 274, 278, 282, 288, 292, 297, 302,
- 307, 312, 316, 321, 325, 330, 337, 341, 347, 356,
- 365, 375, 388, 393, 395, 396, 397, 398, 399, 401,
- 402, 404, 405, 406, 409, 428, 431
+ 0, 182, 182, 183, 186, 189, 192, 195, 198, 201,
+ 204, 208, 213, 216, 222, 228, 236, 242, 253, 257,
+ 261, 267, 271, 275, 279, 283, 289, 293, 298, 303,
+ 308, 313, 317, 322, 326, 331, 338, 342, 348, 357,
+ 366, 376, 390, 395, 398, 401, 404, 407, 410, 415,
+ 418, 423, 427, 431, 437, 455, 458
};
#endif
@@ -647,6 +646,7 @@ static const unsigned char yystos[] =
#define YYABORT goto yyabortlab
#define YYERROR goto yyerrlab1
+
/* Like YYERROR except do call yyerror. This remains here temporarily
to ease the transition to the new meaning of YYERROR, for GCC.
Once GCC version 2 has supplanted version 1, this can go. */
@@ -767,9 +767,9 @@ yy_reduce_print (yyrule)
#endif
{
int yyi;
- unsigned int yylineno = yyrline[yyrule];
+ unsigned int yylno = yyrline[yyrule];
YYFPRINTF (stderr, "Reducing stack by rule %d (line %u), ",
- yyrule - 1, yylineno);
+ yyrule - 1, yylno);
/* Print the symbols being reduced, and their result. */
for (yyi = yyprhs[yyrule]; 0 <= yyrhs[yyi]; yyi++)
YYFPRINTF (stderr, "%s ", yytname [yyrhs[yyi]]);
@@ -1231,43 +1231,43 @@ yyreduce:
case 4:
{
- yyHaveTime++;
- ;}
+ yyHaveTime++;
+ ;}
break;
case 5:
{
- yyHaveZone++;
- ;}
+ yyHaveZone++;
+ ;}
break;
case 6:
{
- yyHaveDate++;
- ;}
+ yyHaveDate++;
+ ;}
break;
case 7:
{
- yyHaveOrdinalMonth++;
- ;}
+ yyHaveOrdinalMonth++;
+ ;}
break;
case 8:
{
- yyHaveDay++;
- ;}
+ yyHaveDay++;
+ ;}
break;
case 9:
{
- yyHaveRel++;
- ;}
+ yyHaveRel++;
+ ;}
break;
case 10:
@@ -1284,143 +1284,143 @@ yyreduce:
yyHaveTime++;
yyHaveDate++;
yyHaveRel++;
- ;}
+ ;}
break;
case 13:
{
- yyHour = yyvsp[-1].Number;
- yyMinutes = 0;
- yySeconds = 0;
- yyMeridian = yyvsp[0].Meridian;
- ;}
+ yyHour = yyvsp[-1].Number;
+ yyMinutes = 0;
+ yySeconds = 0;
+ yyMeridian = yyvsp[0].Meridian;
+ ;}
break;
case 14:
{
- yyHour = yyvsp[-3].Number;
- yyMinutes = yyvsp[-1].Number;
- yySeconds = 0;
- yyMeridian = yyvsp[0].Meridian;
- ;}
+ yyHour = yyvsp[-3].Number;
+ yyMinutes = yyvsp[-1].Number;
+ yySeconds = 0;
+ yyMeridian = yyvsp[0].Meridian;
+ ;}
break;
case 15:
{
- yyHour = yyvsp[-4].Number;
- yyMinutes = yyvsp[-2].Number;
- yyMeridian = MER24;
- yyDSTmode = DSToff;
- yyTimezone = (yyvsp[0].Number % 100 + (yyvsp[0].Number / 100) * 60);
+ yyHour = yyvsp[-4].Number;
+ yyMinutes = yyvsp[-2].Number;
+ yyMeridian = MER24;
+ yyDSTmode = DSToff;
+ yyTimezone = (yyvsp[0].Number % 100 + (yyvsp[0].Number / 100) * 60);
++yyHaveZone;
- ;}
+ ;}
break;
case 16:
{
- yyHour = yyvsp[-5].Number;
- yyMinutes = yyvsp[-3].Number;
- yySeconds = yyvsp[-1].Number;
- yyMeridian = yyvsp[0].Meridian;
- ;}
+ yyHour = yyvsp[-5].Number;
+ yyMinutes = yyvsp[-3].Number;
+ yySeconds = yyvsp[-1].Number;
+ yyMeridian = yyvsp[0].Meridian;
+ ;}
break;
case 17:
{
- yyHour = yyvsp[-6].Number;
- yyMinutes = yyvsp[-4].Number;
- yySeconds = yyvsp[-2].Number;
- yyMeridian = MER24;
- yyDSTmode = DSToff;
- yyTimezone = (yyvsp[0].Number % 100 + (yyvsp[0].Number / 100) * 60);
+ yyHour = yyvsp[-6].Number;
+ yyMinutes = yyvsp[-4].Number;
+ yySeconds = yyvsp[-2].Number;
+ yyMeridian = MER24;
+ yyDSTmode = DSToff;
+ yyTimezone = (yyvsp[0].Number % 100 + (yyvsp[0].Number / 100) * 60);
++yyHaveZone;
- ;}
+ ;}
break;
case 18:
{
- yyTimezone = yyvsp[-1].Number;
- yyDSTmode = DSTon;
- ;}
+ yyTimezone = yyvsp[-1].Number;
+ yyDSTmode = DSTon;
+ ;}
break;
case 19:
{
- yyTimezone = yyvsp[0].Number;
- yyDSTmode = DSToff;
- ;}
+ yyTimezone = yyvsp[0].Number;
+ yyDSTmode = DSToff;
+ ;}
break;
case 20:
{
- yyTimezone = yyvsp[0].Number;
- yyDSTmode = DSTon;
- ;}
+ yyTimezone = yyvsp[0].Number;
+ yyDSTmode = DSTon;
+ ;}
break;
case 21:
{
- yyDayOrdinal = 1;
- yyDayNumber = yyvsp[0].Number;
- ;}
+ yyDayOrdinal = 1;
+ yyDayNumber = yyvsp[0].Number;
+ ;}
break;
case 22:
{
- yyDayOrdinal = 1;
- yyDayNumber = yyvsp[-1].Number;
- ;}
+ yyDayOrdinal = 1;
+ yyDayNumber = yyvsp[-1].Number;
+ ;}
break;
case 23:
{
- yyDayOrdinal = yyvsp[-1].Number;
- yyDayNumber = yyvsp[0].Number;
- ;}
+ yyDayOrdinal = yyvsp[-1].Number;
+ yyDayNumber = yyvsp[0].Number;
+ ;}
break;
case 24:
{
- yyDayOrdinal = yyvsp[-2].Number * yyvsp[-1].Number;
- yyDayNumber = yyvsp[0].Number;
- ;}
+ yyDayOrdinal = yyvsp[-2].Number * yyvsp[-1].Number;
+ yyDayNumber = yyvsp[0].Number;
+ ;}
break;
case 25:
{
- yyDayOrdinal = 2;
- yyDayNumber = yyvsp[0].Number;
- ;}
+ yyDayOrdinal = 2;
+ yyDayNumber = yyvsp[0].Number;
+ ;}
break;
case 26:
{
- yyMonth = yyvsp[-2].Number;
- yyDay = yyvsp[0].Number;
- ;}
+ yyMonth = yyvsp[-2].Number;
+ yyDay = yyvsp[0].Number;
+ ;}
break;
case 27:
{
- yyMonth = yyvsp[-4].Number;
- yyDay = yyvsp[-2].Number;
- yyYear = yyvsp[0].Number;
- ;}
+ yyMonth = yyvsp[-4].Number;
+ yyDay = yyvsp[-2].Number;
+ yyYear = yyvsp[0].Number;
+ ;}
break;
case 28:
@@ -1444,35 +1444,35 @@ yyreduce:
case 30:
{
- yyMonth = yyvsp[-2].Number;
- yyDay = yyvsp[0].Number;
- yyYear = yyvsp[-4].Number;
- ;}
+ yyMonth = yyvsp[-2].Number;
+ yyDay = yyvsp[0].Number;
+ yyYear = yyvsp[-4].Number;
+ ;}
break;
case 31:
{
- yyMonth = yyvsp[-1].Number;
- yyDay = yyvsp[0].Number;
- ;}
+ yyMonth = yyvsp[-1].Number;
+ yyDay = yyvsp[0].Number;
+ ;}
break;
case 32:
{
- yyMonth = yyvsp[-3].Number;
- yyDay = yyvsp[-2].Number;
- yyYear = yyvsp[0].Number;
- ;}
+ yyMonth = yyvsp[-3].Number;
+ yyDay = yyvsp[-2].Number;
+ yyYear = yyvsp[0].Number;
+ ;}
break;
case 33:
{
- yyMonth = yyvsp[0].Number;
- yyDay = yyvsp[-1].Number;
- ;}
+ yyMonth = yyvsp[0].Number;
+ yyDay = yyvsp[-1].Number;
+ ;}
break;
case 34:
@@ -1487,10 +1487,10 @@ yyreduce:
case 35:
{
- yyMonth = yyvsp[-1].Number;
- yyDay = yyvsp[-2].Number;
- yyYear = yyvsp[0].Number;
- ;}
+ yyMonth = yyvsp[-1].Number;
+ yyDay = yyvsp[-2].Number;
+ yyYear = yyvsp[0].Number;
+ ;}
break;
case 36:
@@ -1512,27 +1512,27 @@ yyreduce:
case 38:
{
- if (yyvsp[-1].Number != HOUR(- 7)) YYABORT;
+ if (yyvsp[-1].Number != HOUR(- 7)) YYABORT;
yyYear = yyvsp[-2].Number / 10000;
yyMonth = (yyvsp[-2].Number % 10000)/100;
yyDay = yyvsp[-2].Number % 100;
yyHour = yyvsp[0].Number / 10000;
yyMinutes = (yyvsp[0].Number % 10000)/100;
yySeconds = yyvsp[0].Number % 100;
- ;}
+ ;}
break;
case 39:
{
- if (yyvsp[-5].Number != HOUR(- 7)) YYABORT;
+ if (yyvsp[-5].Number != HOUR(- 7)) YYABORT;
yyYear = yyvsp[-6].Number / 10000;
yyMonth = (yyvsp[-6].Number % 10000)/100;
yyDay = yyvsp[-6].Number % 100;
yyHour = yyvsp[-4].Number;
yyMinutes = yyvsp[-2].Number;
yySeconds = yyvsp[0].Number;
- ;}
+ ;}
break;
case 40:
@@ -1544,22 +1544,23 @@ yyreduce:
yyHour = yyvsp[0].Number / 10000;
yyMinutes = (yyvsp[0].Number % 10000)/100;
yySeconds = yyvsp[0].Number % 100;
- ;}
+ ;}
break;
case 41:
{
- /*
- * Offset computed year by -377 so that the returned years will
- * be in a range accessible with a 32 bit clock seconds value
+ /*
+ * Offset computed year by -377 so that the returned years will be
+ * in a range accessible with a 32 bit clock seconds value.
*/
- yyYear = yyvsp[-2].Number/1000 + 2323 - 377;
- yyDay = 1;
+
+ yyYear = yyvsp[-2].Number/1000 + 2323 - 377;
+ yyDay = 1;
yyMonth = 1;
yyRelDay += ((yyvsp[-2].Number%1000)*(365 + IsLeapYear(yyYear)))/1000;
yyRelSeconds += yyvsp[0].Number * 144 * 60;
- ;}
+ ;}
break;
case 42:
@@ -1573,92 +1574,115 @@ yyreduce:
case 44:
- { *yyRelPointer += yyvsp[-2].Number * yyvsp[-1].Number * yyvsp[0].Number; ;}
+ {
+ *yyRelPointer += yyvsp[-2].Number * yyvsp[-1].Number * yyvsp[0].Number;
+ ;}
break;
case 45:
- { *yyRelPointer += yyvsp[-1].Number * yyvsp[0].Number; ;}
+ {
+ *yyRelPointer += yyvsp[-1].Number * yyvsp[0].Number;
+ ;}
break;
case 46:
- { *yyRelPointer += yyvsp[0].Number; ;}
+ {
+ *yyRelPointer += yyvsp[0].Number;
+ ;}
break;
case 47:
- { *yyRelPointer += yyvsp[-1].Number * yyvsp[0].Number; ;}
+ {
+ *yyRelPointer += yyvsp[-1].Number * yyvsp[0].Number;
+ ;}
break;
case 48:
- { *yyRelPointer += yyvsp[0].Number; ;}
+ {
+ *yyRelPointer += yyvsp[0].Number;
+ ;}
break;
case 49:
- { yyval.Number = -1; ;}
+ {
+ yyval.Number = -1;
+ ;}
break;
case 50:
- { yyval.Number = 1; ;}
+ {
+ yyval.Number = 1;
+ ;}
break;
case 51:
- { yyval.Number = yyvsp[0].Number; yyRelPointer = &yyRelSeconds; ;}
+ {
+ yyval.Number = yyvsp[0].Number;
+ yyRelPointer = &yyRelSeconds;
+ ;}
break;
case 52:
- { yyval.Number = yyvsp[0].Number; yyRelPointer = &yyRelDay; ;}
+ {
+ yyval.Number = yyvsp[0].Number;
+ yyRelPointer = &yyRelDay;
+ ;}
break;
case 53:
- { yyval.Number = yyvsp[0].Number; yyRelPointer = &yyRelMonth; ;}
+ {
+ yyval.Number = yyvsp[0].Number;
+ yyRelPointer = &yyRelMonth;
+ ;}
break;
case 54:
{
- if (yyHaveTime && yyHaveDate && !yyHaveRel) {
- yyYear = yyvsp[0].Number;
- } else {
- yyHaveTime++;
- if (yyDigitCount <= 2) {
- yyHour = yyvsp[0].Number;
- yyMinutes = 0;
+ if (yyHaveTime && yyHaveDate && !yyHaveRel) {
+ yyYear = yyvsp[0].Number;
} else {
- yyHour = yyvsp[0].Number / 100;
- yyMinutes = yyvsp[0].Number % 100;
+ yyHaveTime++;
+ if (yyDigitCount <= 2) {
+ yyHour = yyvsp[0].Number;
+ yyMinutes = 0;
+ } else {
+ yyHour = yyvsp[0].Number / 100;
+ yyMinutes = yyvsp[0].Number % 100;
+ }
+ yySeconds = 0;
+ yyMeridian = MER24;
}
- yySeconds = 0;
- yyMeridian = MER24;
- }
- ;}
+ ;}
break;
case 55:
{
- yyval.Meridian = MER24;
- ;}
+ yyval.Meridian = MER24;
+ ;}
break;
case 56:
{
- yyval.Meridian = yyvsp[0].Meridian;
- ;}
+ yyval.Meridian = yyvsp[0].Meridian;
+ ;}
break;
}
-/* Line 991 of yacc.c. */
+/* Line 999 of yacc.c. */
yyvsp -= yylen;
@@ -1700,18 +1724,33 @@ yyerrlab:
{
YYSIZE_T yysize = 0;
int yytype = YYTRANSLATE (yychar);
+ const char* yyprefix;
char *yymsg;
- int yyx, yycount;
+ int yyx;
- yycount = 0;
/* Start YYX at -YYN if negative to avoid negative indexes in
YYCHECK. */
- for (yyx = yyn < 0 ? -yyn : 0;
- yyx < (int) (sizeof (yytname) / sizeof (char *)); yyx++)
+ int yyxbegin = yyn < 0 ? -yyn : 0;
+
+ /* Stay within bounds of both yycheck and yytname. */
+ int yychecklim = YYLAST - yyn;
+ int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
+ int yycount = 0;
+
+ yyprefix = ", expecting ";
+ for (yyx = yyxbegin; yyx < yyxend; ++yyx)
if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
- yysize += yystrlen (yytname[yyx]) + 15, yycount++;
- yysize += yystrlen ("syntax error, unexpected ") + 1;
- yysize += yystrlen (yytname[yytype]);
+ {
+ yysize += yystrlen (yyprefix) + yystrlen (yytname [yyx]);
+ yycount += 1;
+ if (yycount == 5)
+ {
+ yysize = 0;
+ break;
+ }
+ }
+ yysize += (sizeof ("syntax error, unexpected ")
+ + yystrlen (yytname[yytype]));
yymsg = (char *) YYSTACK_ALLOC (yysize);
if (yymsg != 0)
{
@@ -1720,16 +1759,13 @@ yyerrlab:
if (yycount < 5)
{
- yycount = 0;
- for (yyx = yyn < 0 ? -yyn : 0;
- yyx < (int) (sizeof (yytname) / sizeof (char *));
- yyx++)
+ yyprefix = ", expecting ";
+ for (yyx = yyxbegin; yyx < yyxend; ++yyx)
if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
{
- const char *yyq = ! yycount ? ", expecting " : " or ";
- yyp = yystpcpy (yyp, yyq);
+ yyp = yystpcpy (yyp, yyprefix);
yyp = yystpcpy (yyp, yytname[yyx]);
- yycount++;
+ yyprefix = " or ";
}
}
yyerror (yymsg);
@@ -1773,30 +1809,13 @@ yyerrlab:
/* Else will try to reuse lookahead token after shifting the error
token. */
- goto yyerrlab2;
+ goto yyerrlab1;
/*----------------------------------------------------.
| yyerrlab1 -- error raised explicitly by an action. |
`----------------------------------------------------*/
yyerrlab1:
-
- /* Suppress GCC warning that yyerrlab1 is unused when no action
- invokes YYERROR. Doesn't work in C++ */
-#ifndef __cplusplus
-#if defined (__GNUC_MINOR__) && 2093 <= (__GNUC__ * 1000 + __GNUC_MINOR__)
- __attribute__ ((__unused__))
-#endif
-#endif
-
-
- goto yyerrlab2;
-
-
-/*---------------------------------------------------------------.
-| yyerrlab2 -- pop states until the error token can be shifted. |
-`---------------------------------------------------------------*/
-yyerrlab2:
yyerrstatus = 3; /* Each real token shifted decrements this. */
for (;;)
@@ -1872,7 +1891,6 @@ yyreturn:
-
MODULE_SCOPE int yychar;
MODULE_SCOPE YYSTYPE yylval;
MODULE_SCOPE int yynerrs;
@@ -1880,163 +1898,167 @@ MODULE_SCOPE int yynerrs;
/*
* Month and day table.
*/
-static TABLE MonthDayTable[] = {
- { "january", tMONTH, 1 },
- { "february", tMONTH, 2 },
- { "march", tMONTH, 3 },
- { "april", tMONTH, 4 },
- { "may", tMONTH, 5 },
- { "june", tMONTH, 6 },
- { "july", tMONTH, 7 },
- { "august", tMONTH, 8 },
- { "september", tMONTH, 9 },
- { "sept", tMONTH, 9 },
- { "october", tMONTH, 10 },
- { "november", tMONTH, 11 },
- { "december", tMONTH, 12 },
- { "sunday", tDAY, 0 },
- { "monday", tDAY, 1 },
- { "tuesday", tDAY, 2 },
- { "tues", tDAY, 2 },
- { "wednesday", tDAY, 3 },
- { "wednes", tDAY, 3 },
- { "thursday", tDAY, 4 },
- { "thur", tDAY, 4 },
- { "thurs", tDAY, 4 },
- { "friday", tDAY, 5 },
- { "saturday", tDAY, 6 },
+
+static TABLE MonthDayTable[] = {
+ { "january", tMONTH, 1 },
+ { "february", tMONTH, 2 },
+ { "march", tMONTH, 3 },
+ { "april", tMONTH, 4 },
+ { "may", tMONTH, 5 },
+ { "june", tMONTH, 6 },
+ { "july", tMONTH, 7 },
+ { "august", tMONTH, 8 },
+ { "september", tMONTH, 9 },
+ { "sept", tMONTH, 9 },
+ { "october", tMONTH, 10 },
+ { "november", tMONTH, 11 },
+ { "december", tMONTH, 12 },
+ { "sunday", tDAY, 0 },
+ { "monday", tDAY, 1 },
+ { "tuesday", tDAY, 2 },
+ { "tues", tDAY, 2 },
+ { "wednesday", tDAY, 3 },
+ { "wednes", tDAY, 3 },
+ { "thursday", tDAY, 4 },
+ { "thur", tDAY, 4 },
+ { "thurs", tDAY, 4 },
+ { "friday", tDAY, 5 },
+ { "saturday", tDAY, 6 },
{ NULL }
};
/*
* Time units table.
*/
-static TABLE UnitsTable[] = {
- { "year", tMONTH_UNIT, 12 },
- { "month", tMONTH_UNIT, 1 },
- { "fortnight", tDAY_UNIT, 14 },
- { "week", tDAY_UNIT, 7 },
- { "day", tDAY_UNIT, 1 },
- { "hour", tSEC_UNIT, 60 * 60 },
- { "minute", tSEC_UNIT, 60 },
- { "min", tSEC_UNIT, 60 },
- { "second", tSEC_UNIT, 1 },
- { "sec", tSEC_UNIT, 1 },
+
+static TABLE UnitsTable[] = {
+ { "year", tMONTH_UNIT, 12 },
+ { "month", tMONTH_UNIT, 1 },
+ { "fortnight", tDAY_UNIT, 14 },
+ { "week", tDAY_UNIT, 7 },
+ { "day", tDAY_UNIT, 1 },
+ { "hour", tSEC_UNIT, 60 * 60 },
+ { "minute", tSEC_UNIT, 60 },
+ { "min", tSEC_UNIT, 60 },
+ { "second", tSEC_UNIT, 1 },
+ { "sec", tSEC_UNIT, 1 },
{ NULL }
};
/*
* Assorted relative-time words.
*/
-static TABLE OtherTable[] = {
- { "tomorrow", tDAY_UNIT, 1 },
- { "yesterday", tDAY_UNIT, -1 },
- { "today", tDAY_UNIT, 0 },
- { "now", tSEC_UNIT, 0 },
- { "last", tUNUMBER, -1 },
- { "this", tSEC_UNIT, 0 },
- { "next", tNEXT, 1 },
+
+static TABLE OtherTable[] = {
+ { "tomorrow", tDAY_UNIT, 1 },
+ { "yesterday", tDAY_UNIT, -1 },
+ { "today", tDAY_UNIT, 0 },
+ { "now", tSEC_UNIT, 0 },
+ { "last", tUNUMBER, -1 },
+ { "this", tSEC_UNIT, 0 },
+ { "next", tNEXT, 1 },
#if 0
- { "first", tUNUMBER, 1 },
- { "second", tUNUMBER, 2 },
- { "third", tUNUMBER, 3 },
- { "fourth", tUNUMBER, 4 },
- { "fifth", tUNUMBER, 5 },
- { "sixth", tUNUMBER, 6 },
- { "seventh", tUNUMBER, 7 },
- { "eighth", tUNUMBER, 8 },
- { "ninth", tUNUMBER, 9 },
- { "tenth", tUNUMBER, 10 },
- { "eleventh", tUNUMBER, 11 },
- { "twelfth", tUNUMBER, 12 },
+ { "first", tUNUMBER, 1 },
+ { "second", tUNUMBER, 2 },
+ { "third", tUNUMBER, 3 },
+ { "fourth", tUNUMBER, 4 },
+ { "fifth", tUNUMBER, 5 },
+ { "sixth", tUNUMBER, 6 },
+ { "seventh", tUNUMBER, 7 },
+ { "eighth", tUNUMBER, 8 },
+ { "ninth", tUNUMBER, 9 },
+ { "tenth", tUNUMBER, 10 },
+ { "eleventh", tUNUMBER, 11 },
+ { "twelfth", tUNUMBER, 12 },
#endif
- { "ago", tAGO, 1 },
- { "epoch", tEPOCH, 0 },
- { "stardate", tSTARDATE, 0},
+ { "ago", tAGO, 1 },
+ { "epoch", tEPOCH, 0 },
+ { "stardate", tSTARDATE, 0 },
{ NULL }
};
/*
- * The timezone table. (Note: This table was modified to not use any floating
+ * The timezone table. (Note: This table was modified to not use any floating
* point constants to work around an SGI compiler bug).
*/
-static TABLE TimezoneTable[] = {
- { "gmt", tZONE, HOUR( 0) }, /* Greenwich Mean */
- { "ut", tZONE, HOUR( 0) }, /* Universal (Coordinated) */
- { "utc", tZONE, HOUR( 0) },
- { "uct", tZONE, HOUR( 0) }, /* Universal Coordinated Time */
- { "wet", tZONE, HOUR( 0) }, /* Western European */
- { "bst", tDAYZONE, HOUR( 0) }, /* British Summer */
- { "wat", tZONE, HOUR( 1) }, /* West Africa */
- { "at", tZONE, HOUR( 2) }, /* Azores */
-#if 0
+
+static TABLE TimezoneTable[] = {
+ { "gmt", tZONE, HOUR( 0) }, /* Greenwich Mean */
+ { "ut", tZONE, HOUR( 0) }, /* Universal (Coordinated) */
+ { "utc", tZONE, HOUR( 0) },
+ { "uct", tZONE, HOUR( 0) }, /* Universal Coordinated Time */
+ { "wet", tZONE, HOUR( 0) }, /* Western European */
+ { "bst", tDAYZONE, HOUR( 0) }, /* British Summer */
+ { "wat", tZONE, HOUR( 1) }, /* West Africa */
+ { "at", tZONE, HOUR( 2) }, /* Azores */
+#if 0
/* For completeness. BST is also British Summer, and GST is
* also Guam Standard. */
- { "bst", tZONE, HOUR( 3) }, /* Brazil Standard */
- { "gst", tZONE, HOUR( 3) }, /* Greenland Standard */
+ { "bst", tZONE, HOUR( 3) }, /* Brazil Standard */
+ { "gst", tZONE, HOUR( 3) }, /* Greenland Standard */
#endif
- { "nft", tZONE, HOUR( 7/2) }, /* Newfoundland */
- { "nst", tZONE, HOUR( 7/2) }, /* Newfoundland Standard */
- { "ndt", tDAYZONE, HOUR( 7/2) }, /* Newfoundland Daylight */
- { "ast", tZONE, HOUR( 4) }, /* Atlantic Standard */
- { "adt", tDAYZONE, HOUR( 4) }, /* Atlantic Daylight */
- { "est", tZONE, HOUR( 5) }, /* Eastern Standard */
- { "edt", tDAYZONE, HOUR( 5) }, /* Eastern Daylight */
- { "cst", tZONE, HOUR( 6) }, /* Central Standard */
- { "cdt", tDAYZONE, HOUR( 6) }, /* Central Daylight */
- { "mst", tZONE, HOUR( 7) }, /* Mountain Standard */
- { "mdt", tDAYZONE, HOUR( 7) }, /* Mountain Daylight */
- { "pst", tZONE, HOUR( 8) }, /* Pacific Standard */
- { "pdt", tDAYZONE, HOUR( 8) }, /* Pacific Daylight */
- { "yst", tZONE, HOUR( 9) }, /* Yukon Standard */
- { "ydt", tDAYZONE, HOUR( 9) }, /* Yukon Daylight */
- { "hst", tZONE, HOUR(10) }, /* Hawaii Standard */
- { "hdt", tDAYZONE, HOUR(10) }, /* Hawaii Daylight */
- { "cat", tZONE, HOUR(10) }, /* Central Alaska */
- { "ahst", tZONE, HOUR(10) }, /* Alaska-Hawaii Standard */
- { "nt", tZONE, HOUR(11) }, /* Nome */
- { "idlw", tZONE, HOUR(12) }, /* International Date Line West */
- { "cet", tZONE, -HOUR( 1) }, /* Central European */
- { "cest", tDAYZONE, -HOUR( 1) }, /* Central European Summer */
- { "met", tZONE, -HOUR( 1) }, /* Middle European */
- { "mewt", tZONE, -HOUR( 1) }, /* Middle European Winter */
- { "mest", tDAYZONE, -HOUR( 1) }, /* Middle European Summer */
- { "swt", tZONE, -HOUR( 1) }, /* Swedish Winter */
- { "sst", tDAYZONE, -HOUR( 1) }, /* Swedish Summer */
- { "fwt", tZONE, -HOUR( 1) }, /* French Winter */
- { "fst", tDAYZONE, -HOUR( 1) }, /* French Summer */
- { "eet", tZONE, -HOUR( 2) }, /* Eastern Europe, USSR Zone 1 */
- { "bt", tZONE, -HOUR( 3) }, /* Baghdad, USSR Zone 2 */
- { "it", tZONE, -HOUR( 7/2) }, /* Iran */
- { "zp4", tZONE, -HOUR( 4) }, /* USSR Zone 3 */
- { "zp5", tZONE, -HOUR( 5) }, /* USSR Zone 4 */
- { "ist", tZONE, -HOUR(11/2) }, /* Indian Standard */
- { "zp6", tZONE, -HOUR( 6) }, /* USSR Zone 5 */
-#if 0
+ { "nft", tZONE, HOUR( 7/2) }, /* Newfoundland */
+ { "nst", tZONE, HOUR( 7/2) }, /* Newfoundland Standard */
+ { "ndt", tDAYZONE, HOUR( 7/2) }, /* Newfoundland Daylight */
+ { "ast", tZONE, HOUR( 4) }, /* Atlantic Standard */
+ { "adt", tDAYZONE, HOUR( 4) }, /* Atlantic Daylight */
+ { "est", tZONE, HOUR( 5) }, /* Eastern Standard */
+ { "edt", tDAYZONE, HOUR( 5) }, /* Eastern Daylight */
+ { "cst", tZONE, HOUR( 6) }, /* Central Standard */
+ { "cdt", tDAYZONE, HOUR( 6) }, /* Central Daylight */
+ { "mst", tZONE, HOUR( 7) }, /* Mountain Standard */
+ { "mdt", tDAYZONE, HOUR( 7) }, /* Mountain Daylight */
+ { "pst", tZONE, HOUR( 8) }, /* Pacific Standard */
+ { "pdt", tDAYZONE, HOUR( 8) }, /* Pacific Daylight */
+ { "yst", tZONE, HOUR( 9) }, /* Yukon Standard */
+ { "ydt", tDAYZONE, HOUR( 9) }, /* Yukon Daylight */
+ { "hst", tZONE, HOUR(10) }, /* Hawaii Standard */
+ { "hdt", tDAYZONE, HOUR(10) }, /* Hawaii Daylight */
+ { "cat", tZONE, HOUR(10) }, /* Central Alaska */
+ { "ahst", tZONE, HOUR(10) }, /* Alaska-Hawaii Standard */
+ { "nt", tZONE, HOUR(11) }, /* Nome */
+ { "idlw", tZONE, HOUR(12) }, /* International Date Line West */
+ { "cet", tZONE, -HOUR( 1) }, /* Central European */
+ { "cest", tDAYZONE, -HOUR( 1) }, /* Central European Summer */
+ { "met", tZONE, -HOUR( 1) }, /* Middle European */
+ { "mewt", tZONE, -HOUR( 1) }, /* Middle European Winter */
+ { "mest", tDAYZONE, -HOUR( 1) }, /* Middle European Summer */
+ { "swt", tZONE, -HOUR( 1) }, /* Swedish Winter */
+ { "sst", tDAYZONE, -HOUR( 1) }, /* Swedish Summer */
+ { "fwt", tZONE, -HOUR( 1) }, /* French Winter */
+ { "fst", tDAYZONE, -HOUR( 1) }, /* French Summer */
+ { "eet", tZONE, -HOUR( 2) }, /* Eastern Europe, USSR Zone 1 */
+ { "bt", tZONE, -HOUR( 3) }, /* Baghdad, USSR Zone 2 */
+ { "it", tZONE, -HOUR( 7/2) }, /* Iran */
+ { "zp4", tZONE, -HOUR( 4) }, /* USSR Zone 3 */
+ { "zp5", tZONE, -HOUR( 5) }, /* USSR Zone 4 */
+ { "ist", tZONE, -HOUR(11/2) }, /* Indian Standard */
+ { "zp6", tZONE, -HOUR( 6) }, /* USSR Zone 5 */
+#if 0
/* For completeness. NST is also Newfoundland Stanard, nad SST is
* also Swedish Summer. */
- { "nst", tZONE, -HOUR(13/2) }, /* North Sumatra */
- { "sst", tZONE, -HOUR( 7) }, /* South Sumatra, USSR Zone 6 */
-#endif /* 0 */
- { "wast", tZONE, -HOUR( 7) }, /* West Australian Standard */
- { "wadt", tDAYZONE, -HOUR( 7) }, /* West Australian Daylight */
- { "jt", tZONE, -HOUR(15/2) }, /* Java (3pm in Cronusland!) */
- { "cct", tZONE, -HOUR( 8) }, /* China Coast, USSR Zone 7 */
- { "jst", tZONE, -HOUR( 9) }, /* Japan Standard, USSR Zone 8 */
- { "jdt", tDAYZONE, -HOUR( 9) }, /* Japan Daylight */
- { "kst", tZONE, -HOUR( 9) }, /* Korea Standard */
- { "kdt", tDAYZONE, -HOUR( 9) }, /* Korea Daylight */
- { "cast", tZONE, -HOUR(19/2) }, /* Central Australian Standard */
- { "cadt", tDAYZONE, -HOUR(19/2) }, /* Central Australian Daylight */
- { "east", tZONE, -HOUR(10) }, /* Eastern Australian Standard */
- { "eadt", tDAYZONE, -HOUR(10) }, /* Eastern Australian Daylight */
- { "gst", tZONE, -HOUR(10) }, /* Guam Standard, USSR Zone 9 */
- { "nzt", tZONE, -HOUR(12) }, /* New Zealand */
- { "nzst", tZONE, -HOUR(12) }, /* New Zealand Standard */
- { "nzdt", tDAYZONE, -HOUR(12) }, /* New Zealand Daylight */
- { "idle", tZONE, -HOUR(12) }, /* International Date Line East */
+ { "nst", tZONE, -HOUR(13/2) }, /* North Sumatra */
+ { "sst", tZONE, -HOUR( 7) }, /* South Sumatra, USSR Zone 6 */
+#endif /* 0 */
+ { "wast", tZONE, -HOUR( 7) }, /* West Australian Standard */
+ { "wadt", tDAYZONE, -HOUR( 7) }, /* West Australian Daylight */
+ { "jt", tZONE, -HOUR(15/2) }, /* Java (3pm in Cronusland!) */
+ { "cct", tZONE, -HOUR( 8) }, /* China Coast, USSR Zone 7 */
+ { "jst", tZONE, -HOUR( 9) }, /* Japan Standard, USSR Zone 8 */
+ { "jdt", tDAYZONE, -HOUR( 9) }, /* Japan Daylight */
+ { "kst", tZONE, -HOUR( 9) }, /* Korea Standard */
+ { "kdt", tDAYZONE, -HOUR( 9) }, /* Korea Daylight */
+ { "cast", tZONE, -HOUR(19/2) }, /* Central Australian Standard */
+ { "cadt", tDAYZONE, -HOUR(19/2) }, /* Central Australian Daylight */
+ { "east", tZONE, -HOUR(10) }, /* Eastern Australian Standard */
+ { "eadt", tDAYZONE, -HOUR(10) }, /* Eastern Australian Daylight */
+ { "gst", tZONE, -HOUR(10) }, /* Guam Standard, USSR Zone 9 */
+ { "nzt", tZONE, -HOUR(12) }, /* New Zealand */
+ { "nzst", tZONE, -HOUR(12) }, /* New Zealand Standard */
+ { "nzdt", tDAYZONE, -HOUR(12) }, /* New Zealand Daylight */
+ { "idle", tZONE, -HOUR(12) }, /* International Date Line East */
/* ADDED BY Marco Nijdam */
- { "dst", tDST, HOUR( 0) }, /* DST on (hour is ignored) */
+ { "dst", tDST, HOUR( 0) }, /* DST on (hour is ignored) */
/* End ADDED */
{ NULL }
};
@@ -2044,81 +2066,84 @@ static TABLE TimezoneTable[] = {
/*
* Military timezone table.
*/
-static TABLE MilitaryTable[] = {
- { "a", tZONE, HOUR( 1) },
- { "b", tZONE, HOUR( 2) },
- { "c", tZONE, HOUR( 3) },
- { "d", tZONE, HOUR( 4) },
- { "e", tZONE, HOUR( 5) },
- { "f", tZONE, HOUR( 6) },
- { "g", tZONE, HOUR( 7) },
- { "h", tZONE, HOUR( 8) },
- { "i", tZONE, HOUR( 9) },
- { "k", tZONE, HOUR( 10) },
- { "l", tZONE, HOUR( 11) },
- { "m", tZONE, HOUR( 12) },
- { "n", tZONE, HOUR(- 1) },
- { "o", tZONE, HOUR(- 2) },
- { "p", tZONE, HOUR(- 3) },
- { "q", tZONE, HOUR(- 4) },
- { "r", tZONE, HOUR(- 5) },
- { "s", tZONE, HOUR(- 6) },
- { "t", tZONE, HOUR(- 7) },
- { "u", tZONE, HOUR(- 8) },
- { "v", tZONE, HOUR(- 9) },
- { "w", tZONE, HOUR(-10) },
- { "x", tZONE, HOUR(-11) },
- { "y", tZONE, HOUR(-12) },
- { "z", tZONE, HOUR( 0) },
+
+static TABLE MilitaryTable[] = {
+ { "a", tZONE, HOUR( 1) },
+ { "b", tZONE, HOUR( 2) },
+ { "c", tZONE, HOUR( 3) },
+ { "d", tZONE, HOUR( 4) },
+ { "e", tZONE, HOUR( 5) },
+ { "f", tZONE, HOUR( 6) },
+ { "g", tZONE, HOUR( 7) },
+ { "h", tZONE, HOUR( 8) },
+ { "i", tZONE, HOUR( 9) },
+ { "k", tZONE, HOUR( 10) },
+ { "l", tZONE, HOUR( 11) },
+ { "m", tZONE, HOUR( 12) },
+ { "n", tZONE, HOUR(- 1) },
+ { "o", tZONE, HOUR(- 2) },
+ { "p", tZONE, HOUR(- 3) },
+ { "q", tZONE, HOUR(- 4) },
+ { "r", tZONE, HOUR(- 5) },
+ { "s", tZONE, HOUR(- 6) },
+ { "t", tZONE, HOUR(- 7) },
+ { "u", tZONE, HOUR(- 8) },
+ { "v", tZONE, HOUR(- 9) },
+ { "w", tZONE, HOUR(-10) },
+ { "x", tZONE, HOUR(-11) },
+ { "y", tZONE, HOUR(-12) },
+ { "z", tZONE, HOUR( 0) },
{ NULL }
};
-
/*
* Dump error messages in the bit bucket.
*/
+
static void
-TclDateerror(s)
- const char *s;
+TclDateerror(
+ char *s)
{
}
static time_t
-ToSeconds(Hours, Minutes, Seconds, Meridian)
- time_t Hours;
- time_t Minutes;
- time_t Seconds;
- MERIDIAN Meridian;
+ToSeconds(
+ time_t Hours,
+ time_t Minutes,
+ time_t Seconds,
+ MERIDIAN Meridian)
{
- if (Minutes < 0 || Minutes > 59 || Seconds < 0 || Seconds > 59)
- return -1;
+ if (Minutes < 0 || Minutes > 59 || Seconds < 0 || Seconds > 59) {
+ return -1;
+ }
switch (Meridian) {
case MER24:
- if (Hours < 0 || Hours > 23)
- return -1;
- return (Hours * 60L + Minutes) * 60L + Seconds;
+ if (Hours < 0 || Hours > 23) {
+ return -1;
+ }
+ return (Hours * 60L + Minutes) * 60L + Seconds;
case MERam:
- if (Hours < 1 || Hours > 12)
- return -1;
- return ((Hours % 12) * 60L + Minutes) * 60L + Seconds;
+ if (Hours < 1 || Hours > 12) {
+ return -1;
+ }
+ return ((Hours % 12) * 60L + Minutes) * 60L + Seconds;
case MERpm:
- if (Hours < 1 || Hours > 12)
- return -1;
- return (((Hours % 12) + 12) * 60L + Minutes) * 60L + Seconds;
+ if (Hours < 1 || Hours > 12) {
+ return -1;
+ }
+ return (((Hours % 12) + 12) * 60L + Minutes) * 60L + Seconds;
}
- return -1; /* Should never be reached */
+ return -1; /* Should never be reached */
}
-
static int
-LookupWord(buff)
- char *buff;
+LookupWord(
+ char *buff)
{
register char *p;
register char *q;
register TABLE *tp;
- int i;
- int abbrev;
+ int i, abbrev;
/*
* Make it lowercase.
@@ -2127,192 +2152,203 @@ LookupWord(buff)
Tcl_UtfToLower(buff);
if (strcmp(buff, "am") == 0 || strcmp(buff, "a.m.") == 0) {
- yylval.Meridian = MERam;
- return tMERIDIAN;
+ yylval.Meridian = MERam;
+ return tMERIDIAN;
}
if (strcmp(buff, "pm") == 0 || strcmp(buff, "p.m.") == 0) {
- yylval.Meridian = MERpm;
- return tMERIDIAN;
+ yylval.Meridian = MERpm;
+ return tMERIDIAN;
}
/*
* See if we have an abbreviation for a month.
*/
+
if (strlen(buff) == 3) {
- abbrev = 1;
+ abbrev = 1;
} else if (strlen(buff) == 4 && buff[3] == '.') {
- abbrev = 1;
- buff[3] = '\0';
+ abbrev = 1;
+ buff[3] = '\0';
} else {
- abbrev = 0;
+ abbrev = 0;
}
for (tp = MonthDayTable; tp->name; tp++) {
- if (abbrev) {
- if (strncmp(buff, tp->name, 3) == 0) {
- yylval.Number = tp->value;
- return tp->type;
- }
- } else if (strcmp(buff, tp->name) == 0) {
- yylval.Number = tp->value;
- return tp->type;
- }
+ if (abbrev) {
+ if (strncmp(buff, tp->name, 3) == 0) {
+ yylval.Number = tp->value;
+ return tp->type;
+ }
+ } else if (strcmp(buff, tp->name) == 0) {
+ yylval.Number = tp->value;
+ return tp->type;
+ }
}
for (tp = TimezoneTable; tp->name; tp++) {
- if (strcmp(buff, tp->name) == 0) {
- yylval.Number = tp->value;
- return tp->type;
- }
+ if (strcmp(buff, tp->name) == 0) {
+ yylval.Number = tp->value;
+ return tp->type;
+ }
}
for (tp = UnitsTable; tp->name; tp++) {
- if (strcmp(buff, tp->name) == 0) {
- yylval.Number = tp->value;
- return tp->type;
- }
+ if (strcmp(buff, tp->name) == 0) {
+ yylval.Number = tp->value;
+ return tp->type;
+ }
}
/*
* Strip off any plural and try the units table again.
*/
+
i = strlen(buff) - 1;
if (buff[i] == 's') {
- buff[i] = '\0';
- for (tp = UnitsTable; tp->name; tp++) {
- if (strcmp(buff, tp->name) == 0) {
- yylval.Number = tp->value;
- return tp->type;
- }
+ buff[i] = '\0';
+ for (tp = UnitsTable; tp->name; tp++) {
+ if (strcmp(buff, tp->name) == 0) {
+ yylval.Number = tp->value;
+ return tp->type;
+ }
}
}
for (tp = OtherTable; tp->name; tp++) {
- if (strcmp(buff, tp->name) == 0) {
- yylval.Number = tp->value;
- return tp->type;
- }
+ if (strcmp(buff, tp->name) == 0) {
+ yylval.Number = tp->value;
+ return tp->type;
+ }
}
/*
* Military timezones.
*/
+
if (buff[1] == '\0' && !(*buff & 0x80)
- && isalpha(UCHAR(*buff))) { /* INTL: ISO only */
- for (tp = MilitaryTable; tp->name; tp++) {
- if (strcmp(buff, tp->name) == 0) {
- yylval.Number = tp->value;
- return tp->type;
- }
+ && isalpha(UCHAR(*buff))) { /* INTL: ISO only */
+ for (tp = MilitaryTable; tp->name; tp++) {
+ if (strcmp(buff, tp->name) == 0) {
+ yylval.Number = tp->value;
+ return tp->type;
+ }
}
}
/*
* Drop out any periods and try the timezone table again.
*/
- for (i = 0, p = q = buff; *q; q++)
- if (*q != '.') {
- *p++ = *q;
- } else {
- i++;
+
+ for (i = 0, p = q = buff; *q; q++) {
+ if (*q != '.') {
+ *p++ = *q;
+ } else {
+ i++;
}
+ }
*p = '\0';
if (i) {
- for (tp = TimezoneTable; tp->name; tp++) {
- if (strcmp(buff, tp->name) == 0) {
- yylval.Number = tp->value;
- return tp->type;
- }
+ for (tp = TimezoneTable; tp->name; tp++) {
+ if (strcmp(buff, tp->name) == 0) {
+ yylval.Number = tp->value;
+ return tp->type;
+ }
}
}
-
+
return tID;
}
static int
-TclDatelex( void* info )
+TclDatelex(
+ void *info)
{
- register char c;
- register char *p;
- char buff[20];
- int Count;
+ register char c;
+ register char *p;
+ char buff[20];
+ int Count;
for ( ; ; ) {
- while (isspace(UCHAR(*yyInput))) {
- yyInput++;
+ while (isspace(UCHAR(*yyInput))) {
+ yyInput++;
}
- if (isdigit(UCHAR(c = *yyInput))) { /* INTL: digit */
- /* convert the string into a number; count the number of digits */
+ if (isdigit(UCHAR(c = *yyInput))) { /* INTL: digit */
+ /*
+ * Convert the string into a number; count the number of digits.
+ */
+
Count = 0;
- for (yylval.Number = 0;
- isdigit(UCHAR(c = *yyInput++)); ) { /* INTL: digit */
- yylval.Number = 10 * yylval.Number + c - '0';
+ for (yylval.Number = 0;
+ isdigit(UCHAR(c = *yyInput++)); ) { /* INTL: digit */
+ yylval.Number = 10 * yylval.Number + c - '0';
Count++;
}
- yyInput--;
+ yyInput--;
yyDigitCount = Count;
- /* A number with 6 or more digits is considered an ISO 8601 base */
+
+ /*
+ * A number with 6 or more digits is considered an ISO 8601 base.
+ */
+
if (Count >= 6) {
return tISOBASE;
} else {
return tUNUMBER;
}
- }
- if (!(c & 0x80) && isalpha(UCHAR(c))) { /* INTL: ISO only. */
- for (p = buff; isalpha(UCHAR(c = *yyInput++)) /* INTL: ISO only. */
+ }
+ if (!(c & 0x80) && isalpha(UCHAR(c))) { /* INTL: ISO only. */
+ for (p = buff; isalpha(UCHAR(c = *yyInput++)) /* INTL: ISO only. */
|| c == '.'; ) {
- if (p < &buff[sizeof buff - 1]) {
- *p++ = c;
+ if (p < &buff[sizeof buff - 1]) {
+ *p++ = c;
}
}
- *p = '\0';
- yyInput--;
- return LookupWord(buff);
- }
- if (c != '(') {
- return *yyInput++;
+ *p = '\0';
+ yyInput--;
+ return LookupWord(buff);
}
- Count = 0;
- do {
- c = *yyInput++;
- if (c == '\0') {
- return c;
+ if (c != '(') {
+ return *yyInput++;
+ }
+ Count = 0;
+ do {
+ c = *yyInput++;
+ if (c == '\0') {
+ return c;
} else if (c == '(') {
- Count++;
+ Count++;
} else if (c == ')') {
- Count--;
+ Count--;
}
- } while (Count > 0);
+ } while (Count > 0);
}
}
int
-TclClockOldscanObjCmd( clientData, interp, objc, objv )
- ClientData clientData; /* Unused */
- Tcl_Interp* interp; /* Tcl interpreter */
- int objc; /* Count of paraneters */
- Tcl_Obj *const *objv; /* Parameters */
+TclClockOldscanObjCmd(
+ ClientData clientData, /* Unused */
+ Tcl_Interp *interp, /* Tcl interpreter */
+ int objc, /* Count of paraneters */
+ Tcl_Obj *CONST *objv) /* Parameters */
{
-
- Tcl_Obj* result;
- Tcl_Obj* resultElement;
+ Tcl_Obj *result, *resultElement;
int yr, mo, da;
DateInfo dateInfo;
- void* info = (void*) &dateInfo;
+ void *info = (void *) &dateInfo;
- if ( objc != 5 ) {
- Tcl_WrongNumArgs( interp, 1, objv,
- "stringToParse baseYear baseMonth baseDay" );
+ if (objc != 5) {
+ Tcl_WrongNumArgs(interp, 1, objv,
+ "stringToParse baseYear baseMonth baseDay" );
return TCL_ERROR;
}
yyInput = Tcl_GetString( objv[1] );
yyHaveDate = 0;
- if ( Tcl_GetIntFromObj( interp, objv[2], &yr ) != TCL_OK
- || Tcl_GetIntFromObj( interp, objv[3], &mo ) != TCL_OK
- || Tcl_GetIntFromObj( interp, objv[4], &da ) != TCL_OK ) {
+ if (Tcl_GetIntFromObj(interp, objv[2], &yr) != TCL_OK
+ || Tcl_GetIntFromObj(interp, objv[3], &mo) != TCL_OK
+ || Tcl_GetIntFromObj(interp, objv[4], &da) != TCL_OK) {
return TCL_ERROR;
}
yyYear = yr; yyMonth = mo; yyDay = da;
@@ -2332,104 +2368,104 @@ TclClockOldscanObjCmd( clientData, interp, objc, objv )
yyHaveRel = 0;
yyRelMonth = 0; yyRelDay = 0; yyRelSeconds = 0; yyRelPointer = NULL;
- if ( yyparse( info ) ) {
- Tcl_SetObjResult( interp, Tcl_NewStringObj( "syntax error", -1 ) );
+ if (yyparse(info)) {
+ Tcl_SetObjResult(interp, Tcl_NewStringObj("syntax error", -1));
return TCL_ERROR;
}
- if ( yyHaveDate > 1 ) {
- Tcl_SetObjResult
- ( interp,
- Tcl_NewStringObj( "more than one date in string", -1 ) );
+ if (yyHaveDate > 1) {
+ Tcl_SetObjResult(interp,
+ Tcl_NewStringObj("more than one date in string", -1));
return TCL_ERROR;
}
- if ( yyHaveTime > 1 ) {
- Tcl_SetObjResult
- ( interp,
- Tcl_NewStringObj( "more than one time of day in string", -1 ) );
+ if (yyHaveTime > 1) {
+ Tcl_SetObjResult(interp,
+ Tcl_NewStringObj("more than one time of day in string", -1));
return TCL_ERROR;
}
- if ( yyHaveZone > 1 ) {
- Tcl_SetObjResult
- ( interp,
- Tcl_NewStringObj( "more than one time zone in string", -1 ) );
+ if (yyHaveZone > 1) {
+ Tcl_SetObjResult(interp,
+ Tcl_NewStringObj("more than one time zone in string", -1));
return TCL_ERROR;
}
- if ( yyHaveDay > 1 ) {
- Tcl_SetObjResult
- ( interp,
- Tcl_NewStringObj( "more than one weekday in string", -1 ) );
+ if (yyHaveDay > 1) {
+ Tcl_SetObjResult(interp,
+ Tcl_NewStringObj("more than one weekday in string", -1));
return TCL_ERROR;
}
- if ( yyHaveOrdinalMonth > 1 ) {
- Tcl_SetObjResult
- ( interp,
- Tcl_NewStringObj( "more than one ordinal month in string", -1 ) );
+ if (yyHaveOrdinalMonth > 1) {
+ Tcl_SetObjResult(interp,
+ Tcl_NewStringObj("more than one ordinal month in string", -1));
return TCL_ERROR;
}
-
+
result = Tcl_NewObj();
resultElement = Tcl_NewObj();
- if ( yyHaveDate ) {
- Tcl_ListObjAppendElement( interp, resultElement,
- Tcl_NewIntObj( (int) yyYear ) );
- Tcl_ListObjAppendElement( interp, resultElement,
- Tcl_NewIntObj( (int) yyMonth ) );
- Tcl_ListObjAppendElement( interp, resultElement,
- Tcl_NewIntObj( (int) yyDay ) );
+ if (yyHaveDate) {
+ Tcl_ListObjAppendElement(interp, resultElement,
+ Tcl_NewIntObj((int) yyYear));
+ Tcl_ListObjAppendElement(interp, resultElement,
+ Tcl_NewIntObj((int) yyMonth));
+ Tcl_ListObjAppendElement(interp, resultElement,
+ Tcl_NewIntObj((int) yyDay));
}
- Tcl_ListObjAppendElement( interp, result, resultElement );
-
- if ( yyHaveTime ) {
- Tcl_ListObjAppendElement( interp, result,
- Tcl_NewIntObj( (int) ToSeconds( yyHour,
- yyMinutes,
- yySeconds,
- yyMeridian ) ) );
+ Tcl_ListObjAppendElement(interp, result, resultElement);
+
+ if (yyHaveTime) {
+ Tcl_ListObjAppendElement(interp, result, Tcl_NewIntObj((int)
+ ToSeconds(yyHour, yyMinutes, yySeconds, yyMeridian)));
} else {
- Tcl_ListObjAppendElement( interp, result, Tcl_NewObj() );
+ Tcl_ListObjAppendElement(interp, result, Tcl_NewObj());
}
resultElement = Tcl_NewObj();
- if ( yyHaveZone ) {
- Tcl_ListObjAppendElement( interp, resultElement,
- Tcl_NewIntObj( (int) -yyTimezone ) );
- Tcl_ListObjAppendElement( interp, resultElement,
- Tcl_NewIntObj( 1-yyDSTmode ) );
+ if (yyHaveZone) {
+ Tcl_ListObjAppendElement(interp, resultElement,
+ Tcl_NewIntObj((int) -yyTimezone));
+ Tcl_ListObjAppendElement(interp, resultElement,
+ Tcl_NewIntObj(1 - yyDSTmode));
}
- Tcl_ListObjAppendElement( interp, result, resultElement );
+ Tcl_ListObjAppendElement(interp, result, resultElement);
resultElement = Tcl_NewObj();
- if ( yyHaveRel ) {
- Tcl_ListObjAppendElement( interp, resultElement,
- Tcl_NewIntObj( (int) yyRelMonth ) );
- Tcl_ListObjAppendElement( interp, resultElement,
- Tcl_NewIntObj( (int) yyRelDay ) );
- Tcl_ListObjAppendElement( interp, resultElement,
- Tcl_NewIntObj( (int) yyRelSeconds ) );
+ if (yyHaveRel) {
+ Tcl_ListObjAppendElement(interp, resultElement,
+ Tcl_NewIntObj((int) yyRelMonth));
+ Tcl_ListObjAppendElement(interp, resultElement,
+ Tcl_NewIntObj((int) yyRelDay));
+ Tcl_ListObjAppendElement(interp, resultElement,
+ Tcl_NewIntObj((int) yyRelSeconds));
}
- Tcl_ListObjAppendElement( interp, result, resultElement );
+ Tcl_ListObjAppendElement(interp, result, resultElement);
resultElement = Tcl_NewObj();
- if ( yyHaveDay && !yyHaveDate ) {
- Tcl_ListObjAppendElement( interp, resultElement,
- Tcl_NewIntObj( (int) yyDayOrdinal ) );
- Tcl_ListObjAppendElement( interp, resultElement,
- Tcl_NewIntObj( (int) yyDayNumber ) );
+ if (yyHaveDay && !yyHaveDate) {
+ Tcl_ListObjAppendElement(interp, resultElement,
+ Tcl_NewIntObj((int) yyDayOrdinal));
+ Tcl_ListObjAppendElement(interp, resultElement,
+ Tcl_NewIntObj((int) yyDayNumber));
}
- Tcl_ListObjAppendElement( interp, result, resultElement );
+ Tcl_ListObjAppendElement(interp, result, resultElement);
resultElement = Tcl_NewObj();
- if ( yyHaveOrdinalMonth ) {
- Tcl_ListObjAppendElement( interp, resultElement,
- Tcl_NewIntObj( (int) yyMonthOrdinal ) );
- Tcl_ListObjAppendElement( interp, resultElement,
- Tcl_NewIntObj( (int) yyMonth ) );
+ if (yyHaveOrdinalMonth) {
+ Tcl_ListObjAppendElement(interp, resultElement,
+ Tcl_NewIntObj((int) yyMonthOrdinal));
+ Tcl_ListObjAppendElement(interp, resultElement,
+ Tcl_NewIntObj((int) yyMonth));
}
- Tcl_ListObjAppendElement( interp, result, resultElement );
-
- Tcl_SetObjResult( interp, result );
+ Tcl_ListObjAppendElement(interp, result, resultElement);
+
+ Tcl_SetObjResult(interp, result);
return TCL_OK;
}
+
+/*
+ * Local Variables:
+ * mode: c
+ * c-basic-offset: 4
+ * fill-column: 78
+ * End:
+ */
diff --git a/generic/tclListObj.c b/generic/tclListObj.c
index f619f8b..7278384 100644
--- a/generic/tclListObj.c
+++ b/generic/tclListObj.c
@@ -10,7 +10,7 @@
* See the file "license.terms" for information on usage and redistribution of
* this file, and for a DISCLAIMER OF ALL WARRANTIES.
*
- * RCS: @(#) $Id: tclListObj.c,v 1.42 2007/03/17 05:04:16 dgp Exp $
+ * RCS: @(#) $Id: tclListObj.c,v 1.43 2007/03/20 19:47:48 kennykb Exp $
*/
#include "tclInt.h"
@@ -1255,22 +1255,12 @@ TclLsetFlat(
/* Index args. */
Tcl_Obj *valuePtr) /* Value arg to 'lset'. */
{
- int duplicated; /* Flag == 1 if the obj has been duplicated, 0
- * otherwise. */
- Tcl_Obj *retValuePtr; /* Pointer to the list to be returned. */
- int elemCount; /* Length of one sublist being changed. */
- Tcl_Obj **elemPtrs; /* Pointers to the elements of a sublist. */
- Tcl_Obj *subListPtr; /* Pointer to the current sublist. */
- int index; /* Index of the element to replace in the
- * current sublist. */
- Tcl_Obj *chainPtr; /* Pointer to the enclosing list of the
- * current sublist. */
- int result; /* Status return from library calls. */
- int i;
+ int index, result;
+ Tcl_Obj *subListPtr, *retValuePtr, *chainPtr;
/*
- * If there are no indices, then simply return the new value, counting the
- * returned pointer as a reference.
+ * If there are no indices, simply return the new value.
+ * (Without indices, [lset] is a synonym for [set].
*/
if (indexCount == 0) {
@@ -1279,163 +1269,140 @@ TclLsetFlat(
}
/*
- * If the list is shared, make a private copy. Duplicate the intrep to
- * insure that it is modifyable [Bug 1333036]. A plain Tcl_DuplicateObj
- * will just increase the intrep's refCount without upping the sublists'
- * refCount, so that their true shared status cannot be determined from
- * their refCount.
+ * If the list is shared, make a copy we can modify (copy-on-write).
+ * We use Tcl_DuplicateObj() instead of TclListObjCopy() for a few
+ * reasons: 1) we have not yet confirmed listPtr is actually a list;
+ * 2) We make a verbatim copy of any existing string rep, and when
+ * we combine that with the delayed invalidation of string reps of
+ * modified Tcl_Obj's implemented below, the outcome is that any
+ * error condition that causes this routine to return NULL, will
+ * leave the string rep of listPtr and all elements to be unchanged.
*/
- if (Tcl_IsShared(listPtr)) {
- duplicated = 1;
- if (listPtr->typePtr == &tclListType) {
- result = Tcl_ListObjGetElements(interp, listPtr, &elemCount,
- &elemPtrs);
- listPtr = Tcl_NewListObj(elemCount, elemPtrs);
- } else {
- listPtr = Tcl_DuplicateObj(listPtr);
- }
- Tcl_IncrRefCount(listPtr);
- } else {
- duplicated = 0;
- }
+ subListPtr = Tcl_IsShared(listPtr) ? Tcl_DuplicateObj(listPtr) : listPtr;
/*
* Anchor the linked list of Tcl_Obj's whose string reps must be
* invalidated if the operation succeeds.
*/
- retValuePtr = listPtr;
+ retValuePtr = subListPtr;
chainPtr = NULL;
/*
- * Handle each index arg by diving into the appropriate sublist.
+ * Loop through all the index arguments, and for each one dive
+ * into the appropriate sublist.
*/
- for (i=0 ; ; i++) {
- /*
- * Take the sublist apart.
- */
+ do {
+ int elemCount;
+ Tcl_Obj *parentList, **elemPtrs;
- result = Tcl_ListObjGetElements(interp, listPtr, &elemCount,
- &elemPtrs);
- if (result != TCL_OK) {
+ /* Check for the possible error conditions... */
+ result = TCL_ERROR;
+ if (Tcl_ListObjGetElements(interp, subListPtr, &elemCount, &elemPtrs)
+ != TCL_OK) {
+ /* ...the sublist we're indexing into isn't a list at all. */
break;
}
- if (elemCount == 0) {
- Tcl_SetObjResult(interp,
- Tcl_NewStringObj("list index out of range", -1));
- result = TCL_ERROR;
- break;
- }
- listPtr->internalRep.twoPtrValue.ptr2 = (void *) chainPtr;
-
- /*
- * Determine the index of the requested element.
- */
- result = TclGetIntForIndex(interp, indexArray[i], elemCount-1, &index);
- if (result != TCL_OK) {
+ if (TclGetIntForIndex(interp, *indexArray++, elemCount - 1, &index)
+ != TCL_OK) {
+ /* ...the index we're trying to use isn't an index at all. */
break;
}
- /*
- * Check that the index is in range.
- */
-
- if (index<0 || index>=elemCount) {
+ if (index < 0 || index >= elemCount) {
+ /* ...the index points outside the sublist. */
Tcl_SetObjResult(interp,
Tcl_NewStringObj("list index out of range", -1));
- result = TCL_ERROR;
break;
}
/*
- * Break the loop after extracting the innermost sublist.
+ * No error conditions. As long as we're not yet on the last
+ * index, determine the next sublist for the next pass through
+ * the loop, and take steps to make sure it is an unshared copy,
+ * as we intend to modify it.
*/
- if (i >= indexCount-1) {
- result = TCL_OK;
- break;
- }
-
- /*
- * Extract the appropriate sublist, and make sure that it is unshared.
- * If it is a list, duplicate the intrep to avoid [Bug 1333036], as
- * per the previous comment.
- */
-
- subListPtr = elemPtrs[index];
- if (Tcl_IsShared(subListPtr)) {
- if (subListPtr->typePtr == &tclListType) {
- result = Tcl_ListObjGetElements(interp, subListPtr, &elemCount,
- &elemPtrs);
- subListPtr = Tcl_NewListObj(elemCount, elemPtrs);
- } else {
+ result = TCL_OK;
+ if (--indexCount) {
+ parentList = subListPtr;
+ subListPtr = elemPtrs[index];
+ if (Tcl_IsShared(subListPtr)) {
subListPtr = Tcl_DuplicateObj(subListPtr);
}
- result = TclListObjSetElement(interp, listPtr, index, subListPtr);
- if (result != TCL_OK) {
- /*
- * We actually shouldn't be able to get here. If we do, it
- * would result in leaking subListPtr, but everything's been
- * validated already; the error exit from TclListObjSetElement
- * should never happen.
- */
- break;
+ /*
+ * Replace the original elemPtr[index] in parentList with a copy
+ * we know to be unshared. This call will also deal with the
+ * situation where parentList shares its intrep with other
+ * Tcl_Obj's. Dealing with the shared intrep case can cause
+ * subListPtr to become shared again, so detect that case and
+ * make and store another copy.
+ */
+
+ TclListObjSetElement(NULL, parentList, index, subListPtr);
+ if (Tcl_IsShared(subListPtr)) {
+ subListPtr = Tcl_DuplicateObj(subListPtr);
+ TclListObjSetElement(NULL, parentList, index, subListPtr);
}
- }
- /*
- * Chain the current sublist onto the linked list of Tcl_Obj's whose
- * string reps must be spoilt.
- */
+ /*
+ * The TclListObjSetElement() calls do not spoil the string
+ * rep of parentList, and that's fine for now, since all we've
+ * done so far is replace a list element with an unshared copy.
+ * The list value remains the same, so the string rep. is still
+ * valid, and unchanged, which is good because if this whole
+ * routine returns NULL, we'd like to leave no change to the
+ * value of the lset variable. Later on, when we set valuePtr
+ * in its proper place, then all containing lists will have
+ * their values changed, and will need their string reps spoiled.
+ * We maintain a list of all those Tcl_Obj's (via a little intrep
+ * surgery) so we can spoil them at that time.
+ */
- chainPtr = listPtr;
- listPtr = subListPtr;
- }
+ parentList->internalRep.twoPtrValue.ptr2 = (void *) chainPtr;
+ chainPtr = parentList;
+ }
+ } while (indexCount > 0);
/*
- * Store the result in the list element.
+ * Either we've detected and error condition, and exited the loop
+ * with result == TCL_ERROR, or we've successfully reached the last
+ * index, and we're ready to store valuePtr. In either case, we
+ * need to clean up our string spoiling list of Tcl_Obj's.
*/
- if (result == TCL_OK) {
- result = TclListObjSetElement(interp, listPtr, index, valuePtr);
- }
+ while (chainPtr) {
+ Tcl_Obj *objPtr = chainPtr;
- if (result == TCL_OK) {
- listPtr->internalRep.twoPtrValue.ptr2 = (void *) chainPtr;
+ if (result == TCL_OK) {
- /*
- * Spoil all the string reps.
- */
+ /*
+ * We're going to store valuePtr, so spoil string reps
+ * of all containing lists.
+ */
- while (listPtr != NULL) {
- subListPtr = (Tcl_Obj *) listPtr->internalRep.twoPtrValue.ptr2;
- Tcl_InvalidateStringRep(listPtr);
- listPtr->internalRep.twoPtrValue.ptr2 = NULL;
- listPtr = subListPtr;
+ Tcl_InvalidateStringRep(objPtr);
}
- /*
- * Return the new list if everything worked.
- */
-
- if (!duplicated) {
- Tcl_IncrRefCount(retValuePtr);
- }
- return retValuePtr;
+ /* Clear away our intrep surgery mess */
+ chainPtr = (Tcl_Obj *) objPtr->internalRep.twoPtrValue.ptr2;
+ objPtr->internalRep.twoPtrValue.ptr2 = NULL;
}
- /*
- * Clean up the one dangling reference otherwise.
- */
-
- if (duplicated) {
- Tcl_DecrRefCount(retValuePtr);
+ if (result != TCL_OK) {
+ /* Error return; message is already in interp */
+ return NULL;
}
- return NULL;
+
+ /* Store valuePtr in proper sublist and return */
+ TclListObjSetElement(NULL, subListPtr, index, valuePtr);
+ Tcl_InvalidateStringRep(subListPtr);
+ Tcl_IncrRefCount(retValuePtr);
+ return retValuePtr;
}
/*
diff --git a/library/tzdata/America/Cambridge_Bay b/library/tzdata/America/Cambridge_Bay
index c4eb607..23004bb 100644
--- a/library/tzdata/America/Cambridge_Bay
+++ b/library/tzdata/America/Cambridge_Bay
@@ -1,12 +1,8 @@
# created by tools/tclZIC.tcl - do not edit
set TZData(:America/Cambridge_Bay) {
- {-9223372036854775808 -25220 0 LMT}
- {-2713885180 -25200 0 MST}
- {-1632063600 -21600 1 MDT}
- {-1615132800 -25200 0 MST}
- {-1596985200 -21600 1 MDT}
- {-1583172000 -25200 0 MST}
+ {-9223372036854775808 0 0 zzz}
+ {-1577923200 -25200 0 MST}
{-880210800 -21600 1 MWT}
{-769395600 -21600 1 MPT}
{-765388800 -25200 0 MST}
diff --git a/library/tzdata/America/Havana b/library/tzdata/America/Havana
index f7f72e1..43206dc 100644
--- a/library/tzdata/America/Havana
+++ b/library/tzdata/America/Havana
@@ -98,190 +98,190 @@ set TZData(:America/Havana) {
{1112504400 -14400 1 CDT}
{1143954000 -14400 1 CDT}
{1162098000 -18000 0 CST}
- {1175403600 -14400 1 CDT}
- {1193547600 -18000 0 CST}
- {1207458000 -14400 1 CDT}
- {1224997200 -18000 0 CST}
- {1238907600 -14400 1 CDT}
- {1256446800 -18000 0 CST}
- {1270357200 -14400 1 CDT}
- {1288501200 -18000 0 CST}
- {1301806800 -14400 1 CDT}
- {1319950800 -18000 0 CST}
- {1333256400 -14400 1 CDT}
- {1351400400 -18000 0 CST}
- {1365310800 -14400 1 CDT}
- {1382850000 -18000 0 CST}
- {1396760400 -14400 1 CDT}
- {1414299600 -18000 0 CST}
- {1428210000 -14400 1 CDT}
- {1445749200 -18000 0 CST}
- {1459659600 -14400 1 CDT}
- {1477803600 -18000 0 CST}
- {1491109200 -14400 1 CDT}
- {1509253200 -18000 0 CST}
- {1522558800 -14400 1 CDT}
- {1540702800 -18000 0 CST}
- {1554613200 -14400 1 CDT}
- {1572152400 -18000 0 CST}
- {1586062800 -14400 1 CDT}
- {1603602000 -18000 0 CST}
- {1617512400 -14400 1 CDT}
- {1635656400 -18000 0 CST}
- {1648962000 -14400 1 CDT}
- {1667106000 -18000 0 CST}
- {1680411600 -14400 1 CDT}
- {1698555600 -18000 0 CST}
- {1712466000 -14400 1 CDT}
- {1730005200 -18000 0 CST}
- {1743915600 -14400 1 CDT}
- {1761454800 -18000 0 CST}
- {1775365200 -14400 1 CDT}
- {1792904400 -18000 0 CST}
- {1806814800 -14400 1 CDT}
- {1824958800 -18000 0 CST}
- {1838264400 -14400 1 CDT}
- {1856408400 -18000 0 CST}
- {1869714000 -14400 1 CDT}
- {1887858000 -18000 0 CST}
- {1901768400 -14400 1 CDT}
- {1919307600 -18000 0 CST}
- {1933218000 -14400 1 CDT}
- {1950757200 -18000 0 CST}
- {1964667600 -14400 1 CDT}
- {1982811600 -18000 0 CST}
- {1996117200 -14400 1 CDT}
- {2014261200 -18000 0 CST}
- {2027566800 -14400 1 CDT}
- {2045710800 -18000 0 CST}
- {2059016400 -14400 1 CDT}
- {2077160400 -18000 0 CST}
- {2091070800 -14400 1 CDT}
- {2108610000 -18000 0 CST}
- {2122520400 -14400 1 CDT}
- {2140059600 -18000 0 CST}
- {2153970000 -14400 1 CDT}
- {2172114000 -18000 0 CST}
- {2185419600 -14400 1 CDT}
- {2203563600 -18000 0 CST}
- {2216869200 -14400 1 CDT}
- {2235013200 -18000 0 CST}
- {2248923600 -14400 1 CDT}
- {2266462800 -18000 0 CST}
- {2280373200 -14400 1 CDT}
- {2297912400 -18000 0 CST}
- {2311822800 -14400 1 CDT}
- {2329362000 -18000 0 CST}
- {2343272400 -14400 1 CDT}
- {2361416400 -18000 0 CST}
- {2374722000 -14400 1 CDT}
- {2392866000 -18000 0 CST}
- {2406171600 -14400 1 CDT}
- {2424315600 -18000 0 CST}
- {2438226000 -14400 1 CDT}
- {2455765200 -18000 0 CST}
- {2469675600 -14400 1 CDT}
- {2487214800 -18000 0 CST}
- {2501125200 -14400 1 CDT}
- {2519269200 -18000 0 CST}
- {2532574800 -14400 1 CDT}
- {2550718800 -18000 0 CST}
- {2564024400 -14400 1 CDT}
- {2582168400 -18000 0 CST}
- {2596078800 -14400 1 CDT}
- {2613618000 -18000 0 CST}
- {2627528400 -14400 1 CDT}
- {2645067600 -18000 0 CST}
- {2658978000 -14400 1 CDT}
- {2676517200 -18000 0 CST}
- {2690427600 -14400 1 CDT}
- {2708571600 -18000 0 CST}
- {2721877200 -14400 1 CDT}
- {2740021200 -18000 0 CST}
- {2753326800 -14400 1 CDT}
- {2771470800 -18000 0 CST}
- {2785381200 -14400 1 CDT}
- {2802920400 -18000 0 CST}
- {2816830800 -14400 1 CDT}
- {2834370000 -18000 0 CST}
- {2848280400 -14400 1 CDT}
- {2866424400 -18000 0 CST}
- {2879730000 -14400 1 CDT}
- {2897874000 -18000 0 CST}
- {2911179600 -14400 1 CDT}
- {2929323600 -18000 0 CST}
- {2942629200 -14400 1 CDT}
- {2960773200 -18000 0 CST}
- {2974683600 -14400 1 CDT}
- {2992222800 -18000 0 CST}
- {3006133200 -14400 1 CDT}
- {3023672400 -18000 0 CST}
- {3037582800 -14400 1 CDT}
- {3055726800 -18000 0 CST}
- {3069032400 -14400 1 CDT}
- {3087176400 -18000 0 CST}
- {3100482000 -14400 1 CDT}
- {3118626000 -18000 0 CST}
- {3132536400 -14400 1 CDT}
- {3150075600 -18000 0 CST}
- {3163986000 -14400 1 CDT}
- {3181525200 -18000 0 CST}
- {3195435600 -14400 1 CDT}
- {3212974800 -18000 0 CST}
- {3226885200 -14400 1 CDT}
- {3245029200 -18000 0 CST}
- {3258334800 -14400 1 CDT}
- {3276478800 -18000 0 CST}
- {3289784400 -14400 1 CDT}
- {3307928400 -18000 0 CST}
- {3321838800 -14400 1 CDT}
- {3339378000 -18000 0 CST}
- {3353288400 -14400 1 CDT}
- {3370827600 -18000 0 CST}
- {3384738000 -14400 1 CDT}
- {3402882000 -18000 0 CST}
- {3416187600 -14400 1 CDT}
- {3434331600 -18000 0 CST}
- {3447637200 -14400 1 CDT}
- {3465781200 -18000 0 CST}
- {3479691600 -14400 1 CDT}
- {3497230800 -18000 0 CST}
- {3511141200 -14400 1 CDT}
- {3528680400 -18000 0 CST}
- {3542590800 -14400 1 CDT}
- {3560130000 -18000 0 CST}
- {3574040400 -14400 1 CDT}
- {3592184400 -18000 0 CST}
- {3605490000 -14400 1 CDT}
- {3623634000 -18000 0 CST}
- {3636939600 -14400 1 CDT}
- {3655083600 -18000 0 CST}
- {3668994000 -14400 1 CDT}
- {3686533200 -18000 0 CST}
- {3700443600 -14400 1 CDT}
- {3717982800 -18000 0 CST}
- {3731893200 -14400 1 CDT}
- {3750037200 -18000 0 CST}
- {3763342800 -14400 1 CDT}
- {3781486800 -18000 0 CST}
- {3794792400 -14400 1 CDT}
- {3812936400 -18000 0 CST}
- {3826242000 -14400 1 CDT}
- {3844386000 -18000 0 CST}
- {3858296400 -14400 1 CDT}
- {3875835600 -18000 0 CST}
- {3889746000 -14400 1 CDT}
- {3907285200 -18000 0 CST}
- {3921195600 -14400 1 CDT}
- {3939339600 -18000 0 CST}
- {3952645200 -14400 1 CDT}
- {3970789200 -18000 0 CST}
- {3984094800 -14400 1 CDT}
- {4002238800 -18000 0 CST}
- {4016149200 -14400 1 CDT}
- {4033688400 -18000 0 CST}
- {4047598800 -14400 1 CDT}
- {4065138000 -18000 0 CST}
- {4079048400 -14400 1 CDT}
- {4096587600 -18000 0 CST}
+ {1173589200 -14400 1 CDT}
+ {1194152400 -18000 0 CST}
+ {1205038800 -14400 1 CDT}
+ {1225602000 -18000 0 CST}
+ {1236488400 -14400 1 CDT}
+ {1257051600 -18000 0 CST}
+ {1268542800 -14400 1 CDT}
+ {1289106000 -18000 0 CST}
+ {1299992400 -14400 1 CDT}
+ {1320555600 -18000 0 CST}
+ {1331442000 -14400 1 CDT}
+ {1352005200 -18000 0 CST}
+ {1362891600 -14400 1 CDT}
+ {1383454800 -18000 0 CST}
+ {1394341200 -14400 1 CDT}
+ {1414904400 -18000 0 CST}
+ {1425790800 -14400 1 CDT}
+ {1446354000 -18000 0 CST}
+ {1457845200 -14400 1 CDT}
+ {1478408400 -18000 0 CST}
+ {1489294800 -14400 1 CDT}
+ {1509858000 -18000 0 CST}
+ {1520744400 -14400 1 CDT}
+ {1541307600 -18000 0 CST}
+ {1552194000 -14400 1 CDT}
+ {1572757200 -18000 0 CST}
+ {1583643600 -14400 1 CDT}
+ {1604206800 -18000 0 CST}
+ {1615698000 -14400 1 CDT}
+ {1636261200 -18000 0 CST}
+ {1647147600 -14400 1 CDT}
+ {1667710800 -18000 0 CST}
+ {1678597200 -14400 1 CDT}
+ {1699160400 -18000 0 CST}
+ {1710046800 -14400 1 CDT}
+ {1730610000 -18000 0 CST}
+ {1741496400 -14400 1 CDT}
+ {1762059600 -18000 0 CST}
+ {1772946000 -14400 1 CDT}
+ {1793509200 -18000 0 CST}
+ {1805000400 -14400 1 CDT}
+ {1825563600 -18000 0 CST}
+ {1836450000 -14400 1 CDT}
+ {1857013200 -18000 0 CST}
+ {1867899600 -14400 1 CDT}
+ {1888462800 -18000 0 CST}
+ {1899349200 -14400 1 CDT}
+ {1919912400 -18000 0 CST}
+ {1930798800 -14400 1 CDT}
+ {1951362000 -18000 0 CST}
+ {1962853200 -14400 1 CDT}
+ {1983416400 -18000 0 CST}
+ {1994302800 -14400 1 CDT}
+ {2014866000 -18000 0 CST}
+ {2025752400 -14400 1 CDT}
+ {2046315600 -18000 0 CST}
+ {2057202000 -14400 1 CDT}
+ {2077765200 -18000 0 CST}
+ {2088651600 -14400 1 CDT}
+ {2109214800 -18000 0 CST}
+ {2120101200 -14400 1 CDT}
+ {2140664400 -18000 0 CST}
+ {2152155600 -14400 1 CDT}
+ {2172718800 -18000 0 CST}
+ {2183605200 -14400 1 CDT}
+ {2204168400 -18000 0 CST}
+ {2215054800 -14400 1 CDT}
+ {2235618000 -18000 0 CST}
+ {2246504400 -14400 1 CDT}
+ {2267067600 -18000 0 CST}
+ {2277954000 -14400 1 CDT}
+ {2298517200 -18000 0 CST}
+ {2309403600 -14400 1 CDT}
+ {2329966800 -18000 0 CST}
+ {2341458000 -14400 1 CDT}
+ {2362021200 -18000 0 CST}
+ {2372907600 -14400 1 CDT}
+ {2393470800 -18000 0 CST}
+ {2404357200 -14400 1 CDT}
+ {2424920400 -18000 0 CST}
+ {2435806800 -14400 1 CDT}
+ {2456370000 -18000 0 CST}
+ {2467256400 -14400 1 CDT}
+ {2487819600 -18000 0 CST}
+ {2499310800 -14400 1 CDT}
+ {2519874000 -18000 0 CST}
+ {2530760400 -14400 1 CDT}
+ {2551323600 -18000 0 CST}
+ {2562210000 -14400 1 CDT}
+ {2582773200 -18000 0 CST}
+ {2593659600 -14400 1 CDT}
+ {2614222800 -18000 0 CST}
+ {2625109200 -14400 1 CDT}
+ {2645672400 -18000 0 CST}
+ {2656558800 -14400 1 CDT}
+ {2677122000 -18000 0 CST}
+ {2688613200 -14400 1 CDT}
+ {2709176400 -18000 0 CST}
+ {2720062800 -14400 1 CDT}
+ {2740626000 -18000 0 CST}
+ {2751512400 -14400 1 CDT}
+ {2772075600 -18000 0 CST}
+ {2782962000 -14400 1 CDT}
+ {2803525200 -18000 0 CST}
+ {2814411600 -14400 1 CDT}
+ {2834974800 -18000 0 CST}
+ {2846466000 -14400 1 CDT}
+ {2867029200 -18000 0 CST}
+ {2877915600 -14400 1 CDT}
+ {2898478800 -18000 0 CST}
+ {2909365200 -14400 1 CDT}
+ {2929928400 -18000 0 CST}
+ {2940814800 -14400 1 CDT}
+ {2961378000 -18000 0 CST}
+ {2972264400 -14400 1 CDT}
+ {2992827600 -18000 0 CST}
+ {3003714000 -14400 1 CDT}
+ {3024277200 -18000 0 CST}
+ {3035768400 -14400 1 CDT}
+ {3056331600 -18000 0 CST}
+ {3067218000 -14400 1 CDT}
+ {3087781200 -18000 0 CST}
+ {3098667600 -14400 1 CDT}
+ {3119230800 -18000 0 CST}
+ {3130117200 -14400 1 CDT}
+ {3150680400 -18000 0 CST}
+ {3161566800 -14400 1 CDT}
+ {3182130000 -18000 0 CST}
+ {3193016400 -14400 1 CDT}
+ {3213579600 -18000 0 CST}
+ {3225070800 -14400 1 CDT}
+ {3245634000 -18000 0 CST}
+ {3256520400 -14400 1 CDT}
+ {3277083600 -18000 0 CST}
+ {3287970000 -14400 1 CDT}
+ {3308533200 -18000 0 CST}
+ {3319419600 -14400 1 CDT}
+ {3339982800 -18000 0 CST}
+ {3350869200 -14400 1 CDT}
+ {3371432400 -18000 0 CST}
+ {3382923600 -14400 1 CDT}
+ {3403486800 -18000 0 CST}
+ {3414373200 -14400 1 CDT}
+ {3434936400 -18000 0 CST}
+ {3445822800 -14400 1 CDT}
+ {3466386000 -18000 0 CST}
+ {3477272400 -14400 1 CDT}
+ {3497835600 -18000 0 CST}
+ {3508722000 -14400 1 CDT}
+ {3529285200 -18000 0 CST}
+ {3540171600 -14400 1 CDT}
+ {3560734800 -18000 0 CST}
+ {3572226000 -14400 1 CDT}
+ {3592789200 -18000 0 CST}
+ {3603675600 -14400 1 CDT}
+ {3624238800 -18000 0 CST}
+ {3635125200 -14400 1 CDT}
+ {3655688400 -18000 0 CST}
+ {3666574800 -14400 1 CDT}
+ {3687138000 -18000 0 CST}
+ {3698024400 -14400 1 CDT}
+ {3718587600 -18000 0 CST}
+ {3730078800 -14400 1 CDT}
+ {3750642000 -18000 0 CST}
+ {3761528400 -14400 1 CDT}
+ {3782091600 -18000 0 CST}
+ {3792978000 -14400 1 CDT}
+ {3813541200 -18000 0 CST}
+ {3824427600 -14400 1 CDT}
+ {3844990800 -18000 0 CST}
+ {3855877200 -14400 1 CDT}
+ {3876440400 -18000 0 CST}
+ {3887326800 -14400 1 CDT}
+ {3907890000 -18000 0 CST}
+ {3919381200 -14400 1 CDT}
+ {3939944400 -18000 0 CST}
+ {3950830800 -14400 1 CDT}
+ {3971394000 -18000 0 CST}
+ {3982280400 -14400 1 CDT}
+ {4002843600 -18000 0 CST}
+ {4013730000 -14400 1 CDT}
+ {4034293200 -18000 0 CST}
+ {4045179600 -14400 1 CDT}
+ {4065742800 -18000 0 CST}
+ {4076629200 -14400 1 CDT}
+ {4097192400 -18000 0 CST}
}
diff --git a/library/tzdata/America/Inuvik b/library/tzdata/America/Inuvik
index fc2df9f..dd0d151 100644
--- a/library/tzdata/America/Inuvik
+++ b/library/tzdata/America/Inuvik
@@ -1,15 +1,8 @@
# created by tools/tclZIC.tcl - do not edit
set TZData(:America/Inuvik) {
- {-9223372036854775808 -32092 0 LMT}
- {-2713878308 -28800 0 PST}
- {-1632060000 -25200 1 PDT}
- {-1615129200 -28800 0 PST}
- {-1596981600 -25200 1 PDT}
- {-1583168400 -28800 0 PST}
- {-880207200 -25200 1 PWT}
- {-769395600 -25200 1 PPT}
- {-765385200 -28800 0 PST}
+ {-9223372036854775808 0 0 zzz}
+ {-536457600 -28800 0 PST}
{-147888000 -21600 1 PDDT}
{-131558400 -28800 0 PST}
{315558000 -25200 0 MST}
diff --git a/library/tzdata/America/Iqaluit b/library/tzdata/America/Iqaluit
index 8a0b464..2a2e9fe 100644
--- a/library/tzdata/America/Iqaluit
+++ b/library/tzdata/America/Iqaluit
@@ -1,13 +1,8 @@
# created by tools/tclZIC.tcl - do not edit
set TZData(:America/Iqaluit) {
- {-9223372036854775808 -16432 0 LMT}
- {-2713893968 -18000 0 EST}
- {-1632070800 -14400 1 EDT}
- {-1615140000 -18000 0 EST}
- {-1596992400 -14400 1 EDT}
- {-1583179200 -18000 0 EST}
- {-880218000 -14400 1 EWT}
+ {-9223372036854775808 0 0 zzz}
+ {-865296000 -14400 0 EWT}
{-769395600 -14400 1 EPT}
{-765396000 -18000 0 EST}
{-147898800 -10800 1 EDDT}
diff --git a/library/tzdata/America/Pangnirtung b/library/tzdata/America/Pangnirtung
index 18a0177..640808e 100644
--- a/library/tzdata/America/Pangnirtung
+++ b/library/tzdata/America/Pangnirtung
@@ -1,12 +1,8 @@
# created by tools/tclZIC.tcl - do not edit
set TZData(:America/Pangnirtung) {
- {-9223372036854775808 -15776 0 LMT}
- {-2713894624 -14400 0 AST}
- {-1632074400 -10800 1 ADT}
- {-1615143600 -14400 0 AST}
- {-1596996000 -10800 1 ADT}
- {-1583182800 -14400 0 AST}
+ {-9223372036854775808 0 0 zzz}
+ {-1546300800 -14400 0 AST}
{-880221600 -10800 1 AWT}
{-769395600 -10800 1 APT}
{-765399600 -14400 0 AST}
diff --git a/library/tzdata/America/Rankin_Inlet b/library/tzdata/America/Rankin_Inlet
index 85dd035..770ec5d 100644
--- a/library/tzdata/America/Rankin_Inlet
+++ b/library/tzdata/America/Rankin_Inlet
@@ -1,15 +1,8 @@
# created by tools/tclZIC.tcl - do not edit
set TZData(:America/Rankin_Inlet) {
- {-9223372036854775808 -22100 0 LMT}
- {-2713888300 -21600 0 CST}
- {-1632067200 -18000 1 CDT}
- {-1615136400 -21600 0 CST}
- {-1596988800 -18000 1 CDT}
- {-1583175600 -21600 0 CST}
- {-880214400 -18000 1 CWT}
- {-769395600 -18000 1 CPT}
- {-765392400 -21600 0 CST}
+ {-9223372036854775808 0 0 zzz}
+ {-410227200 -21600 0 CST}
{-147895200 -14400 1 CDDT}
{-131565600 -21600 0 CST}
{325670400 -18000 1 CDT}
diff --git a/library/tzdata/America/Resolute b/library/tzdata/America/Resolute
new file mode 100755
index 0000000..d82a837
--- /dev/null
+++ b/library/tzdata/America/Resolute
@@ -0,0 +1,62 @@
+# created by tools/tclZIC.tcl - do not edit
+
+set TZData(:America/Resolute) {
+ {-9223372036854775808 0 0 zzz}
+ {-704937600 -21600 0 CST}
+ {-147895200 -14400 1 CDDT}
+ {-131565600 -21600 0 CST}
+ {325670400 -18000 1 CDT}
+ {341391600 -21600 0 CST}
+ {357120000 -18000 1 CDT}
+ {372841200 -21600 0 CST}
+ {388569600 -18000 1 CDT}
+ {404895600 -21600 0 CST}
+ {420019200 -18000 1 CDT}
+ {436345200 -21600 0 CST}
+ {452073600 -18000 1 CDT}
+ {467794800 -21600 0 CST}
+ {483523200 -18000 1 CDT}
+ {499244400 -21600 0 CST}
+ {514972800 -18000 1 CDT}
+ {530694000 -21600 0 CST}
+ {544608000 -18000 1 CDT}
+ {562143600 -21600 0 CST}
+ {576057600 -18000 1 CDT}
+ {594198000 -21600 0 CST}
+ {607507200 -18000 1 CDT}
+ {625647600 -21600 0 CST}
+ {638956800 -18000 1 CDT}
+ {657097200 -21600 0 CST}
+ {671011200 -18000 1 CDT}
+ {688546800 -21600 0 CST}
+ {702460800 -18000 1 CDT}
+ {719996400 -21600 0 CST}
+ {733910400 -18000 1 CDT}
+ {752050800 -21600 0 CST}
+ {765360000 -18000 1 CDT}
+ {783500400 -21600 0 CST}
+ {796809600 -18000 1 CDT}
+ {814950000 -21600 0 CST}
+ {828864000 -18000 1 CDT}
+ {846399600 -21600 0 CST}
+ {860313600 -18000 1 CDT}
+ {877849200 -21600 0 CST}
+ {891763200 -18000 1 CDT}
+ {909298800 -21600 0 CST}
+ {923212800 -18000 1 CDT}
+ {941353200 -21600 0 CST}
+ {954662400 -18000 1 CDT}
+ {972806400 -18000 0 EST}
+ {986112000 -18000 0 CDT}
+ {1004252400 -21600 0 CST}
+ {1018166400 -18000 1 CDT}
+ {1035702000 -21600 0 CST}
+ {1049616000 -18000 1 CDT}
+ {1067151600 -21600 0 CST}
+ {1081065600 -18000 1 CDT}
+ {1099206000 -21600 0 CST}
+ {1112515200 -18000 1 CDT}
+ {1130655600 -21600 0 CST}
+ {1143964800 -18000 1 CDT}
+ {1162108800 -18000 0 EST}
+}
diff --git a/library/tzdata/America/Yellowknife b/library/tzdata/America/Yellowknife
index e446667..44ca658 100644
--- a/library/tzdata/America/Yellowknife
+++ b/library/tzdata/America/Yellowknife
@@ -1,12 +1,8 @@
# created by tools/tclZIC.tcl - do not edit
set TZData(:America/Yellowknife) {
- {-9223372036854775808 -27444 0 LMT}
- {-2713882956 -25200 0 MST}
- {-1632063600 -21600 1 MDT}
- {-1615132800 -25200 0 MST}
- {-1596985200 -21600 1 MDT}
- {-1583172000 -25200 0 MST}
+ {-9223372036854775808 0 0 zzz}
+ {-1104537600 -25200 0 MST}
{-880210800 -21600 1 MWT}
{-769395600 -21600 1 MPT}
{-765388800 -25200 0 MST}
diff --git a/library/tzdata/Asia/Choibalsan b/library/tzdata/Asia/Choibalsan
index 8611b20..3d42617 100644
--- a/library/tzdata/Asia/Choibalsan
+++ b/library/tzdata/Asia/Choibalsan
@@ -48,190 +48,4 @@ set TZData(:Asia/Choibalsan) {
{1127491200 32400 0 CHOT}
{1143219600 36000 1 CHOST}
{1159545600 32400 0 CHOT}
- {1175274000 36000 1 CHOST}
- {1190995200 32400 0 CHOT}
- {1206723600 36000 1 CHOST}
- {1222444800 32400 0 CHOT}
- {1238173200 36000 1 CHOST}
- {1253894400 32400 0 CHOT}
- {1269622800 36000 1 CHOST}
- {1285344000 32400 0 CHOT}
- {1301072400 36000 1 CHOST}
- {1316793600 32400 0 CHOT}
- {1333126800 36000 1 CHOST}
- {1348848000 32400 0 CHOT}
- {1364576400 36000 1 CHOST}
- {1380297600 32400 0 CHOT}
- {1396026000 36000 1 CHOST}
- {1411747200 32400 0 CHOT}
- {1427475600 36000 1 CHOST}
- {1443196800 32400 0 CHOT}
- {1458925200 36000 1 CHOST}
- {1474646400 32400 0 CHOT}
- {1490374800 36000 1 CHOST}
- {1506700800 32400 0 CHOT}
- {1522429200 36000 1 CHOST}
- {1538150400 32400 0 CHOT}
- {1553878800 36000 1 CHOST}
- {1569600000 32400 0 CHOT}
- {1585328400 36000 1 CHOST}
- {1601049600 32400 0 CHOT}
- {1616778000 36000 1 CHOST}
- {1632499200 32400 0 CHOT}
- {1648227600 36000 1 CHOST}
- {1663948800 32400 0 CHOT}
- {1679677200 36000 1 CHOST}
- {1696003200 32400 0 CHOT}
- {1711731600 36000 1 CHOST}
- {1727452800 32400 0 CHOT}
- {1743181200 36000 1 CHOST}
- {1758902400 32400 0 CHOT}
- {1774630800 36000 1 CHOST}
- {1790352000 32400 0 CHOT}
- {1806080400 36000 1 CHOST}
- {1821801600 32400 0 CHOT}
- {1837530000 36000 1 CHOST}
- {1853856000 32400 0 CHOT}
- {1869584400 36000 1 CHOST}
- {1885305600 32400 0 CHOT}
- {1901034000 36000 1 CHOST}
- {1916755200 32400 0 CHOT}
- {1932483600 36000 1 CHOST}
- {1948204800 32400 0 CHOT}
- {1963933200 36000 1 CHOST}
- {1979654400 32400 0 CHOT}
- {1995382800 36000 1 CHOST}
- {2011104000 32400 0 CHOT}
- {2026832400 36000 1 CHOST}
- {2043158400 32400 0 CHOT}
- {2058886800 36000 1 CHOST}
- {2074608000 32400 0 CHOT}
- {2090336400 36000 1 CHOST}
- {2106057600 32400 0 CHOT}
- {2121786000 36000 1 CHOST}
- {2137507200 32400 0 CHOT}
- {2153235600 36000 1 CHOST}
- {2168956800 32400 0 CHOT}
- {2184685200 36000 1 CHOST}
- {2200406400 32400 0 CHOT}
- {2216739600 36000 1 CHOST}
- {2232460800 32400 0 CHOT}
- {2248189200 36000 1 CHOST}
- {2263910400 32400 0 CHOT}
- {2279638800 36000 1 CHOST}
- {2295360000 32400 0 CHOT}
- {2311088400 36000 1 CHOST}
- {2326809600 32400 0 CHOT}
- {2342538000 36000 1 CHOST}
- {2358259200 32400 0 CHOT}
- {2373987600 36000 1 CHOST}
- {2390313600 32400 0 CHOT}
- {2406042000 36000 1 CHOST}
- {2421763200 32400 0 CHOT}
- {2437491600 36000 1 CHOST}
- {2453212800 32400 0 CHOT}
- {2468941200 36000 1 CHOST}
- {2484662400 32400 0 CHOT}
- {2500390800 36000 1 CHOST}
- {2516112000 32400 0 CHOT}
- {2531840400 36000 1 CHOST}
- {2547561600 32400 0 CHOT}
- {2563290000 36000 1 CHOST}
- {2579616000 32400 0 CHOT}
- {2595344400 36000 1 CHOST}
- {2611065600 32400 0 CHOT}
- {2626794000 36000 1 CHOST}
- {2642515200 32400 0 CHOT}
- {2658243600 36000 1 CHOST}
- {2673964800 32400 0 CHOT}
- {2689693200 36000 1 CHOST}
- {2705414400 32400 0 CHOT}
- {2721142800 36000 1 CHOST}
- {2737468800 32400 0 CHOT}
- {2753197200 36000 1 CHOST}
- {2768918400 32400 0 CHOT}
- {2784646800 36000 1 CHOST}
- {2800368000 32400 0 CHOT}
- {2816096400 36000 1 CHOST}
- {2831817600 32400 0 CHOT}
- {2847546000 36000 1 CHOST}
- {2863267200 32400 0 CHOT}
- {2878995600 36000 1 CHOST}
- {2894716800 32400 0 CHOT}
- {2910445200 36000 1 CHOST}
- {2926771200 32400 0 CHOT}
- {2942499600 36000 1 CHOST}
- {2958220800 32400 0 CHOT}
- {2973949200 36000 1 CHOST}
- {2989670400 32400 0 CHOT}
- {3005398800 36000 1 CHOST}
- {3021120000 32400 0 CHOT}
- {3036848400 36000 1 CHOST}
- {3052569600 32400 0 CHOT}
- {3068298000 36000 1 CHOST}
- {3084019200 32400 0 CHOT}
- {3100352400 36000 1 CHOST}
- {3116073600 32400 0 CHOT}
- {3131802000 36000 1 CHOST}
- {3147523200 32400 0 CHOT}
- {3163251600 36000 1 CHOST}
- {3178972800 32400 0 CHOT}
- {3194701200 36000 1 CHOST}
- {3210422400 32400 0 CHOT}
- {3226150800 36000 1 CHOST}
- {3241872000 32400 0 CHOT}
- {3257600400 36000 1 CHOST}
- {3273926400 32400 0 CHOT}
- {3289654800 36000 1 CHOST}
- {3305376000 32400 0 CHOT}
- {3321104400 36000 1 CHOST}
- {3336825600 32400 0 CHOT}
- {3352554000 36000 1 CHOST}
- {3368275200 32400 0 CHOT}
- {3384003600 36000 1 CHOST}
- {3399724800 32400 0 CHOT}
- {3415453200 36000 1 CHOST}
- {3431174400 32400 0 CHOT}
- {3446902800 36000 1 CHOST}
- {3463228800 32400 0 CHOT}
- {3478957200 36000 1 CHOST}
- {3494678400 32400 0 CHOT}
- {3510406800 36000 1 CHOST}
- {3526128000 32400 0 CHOT}
- {3541856400 36000 1 CHOST}
- {3557577600 32400 0 CHOT}
- {3573306000 36000 1 CHOST}
- {3589027200 32400 0 CHOT}
- {3604755600 36000 1 CHOST}
- {3621081600 32400 0 CHOT}
- {3636810000 36000 1 CHOST}
- {3652531200 32400 0 CHOT}
- {3668259600 36000 1 CHOST}
- {3683980800 32400 0 CHOT}
- {3699709200 36000 1 CHOST}
- {3715430400 32400 0 CHOT}
- {3731158800 36000 1 CHOST}
- {3746880000 32400 0 CHOT}
- {3762608400 36000 1 CHOST}
- {3778329600 32400 0 CHOT}
- {3794058000 36000 1 CHOST}
- {3810384000 32400 0 CHOT}
- {3826112400 36000 1 CHOST}
- {3841833600 32400 0 CHOT}
- {3857562000 36000 1 CHOST}
- {3873283200 32400 0 CHOT}
- {3889011600 36000 1 CHOST}
- {3904732800 32400 0 CHOT}
- {3920461200 36000 1 CHOST}
- {3936182400 32400 0 CHOT}
- {3951910800 36000 1 CHOST}
- {3967632000 32400 0 CHOT}
- {3983965200 36000 1 CHOST}
- {3999686400 32400 0 CHOT}
- {4015414800 36000 1 CHOST}
- {4031136000 32400 0 CHOT}
- {4046864400 36000 1 CHOST}
- {4062585600 32400 0 CHOT}
- {4078314000 36000 1 CHOST}
- {4094035200 32400 0 CHOT}
}
diff --git a/library/tzdata/Asia/Dili b/library/tzdata/Asia/Dili
index 10e64b9..36910fd 100644
--- a/library/tzdata/Asia/Dili
+++ b/library/tzdata/Asia/Dili
@@ -4,7 +4,7 @@ set TZData(:Asia/Dili) {
{-9223372036854775808 30140 0 LMT}
{-1830414140 28800 0 TLT}
{-879152400 32400 0 JST}
- {-770634000 32400 0 TLT}
+ {-766054800 32400 0 TLT}
{199897200 28800 0 CIT}
{969120000 32400 0 TLT}
}
diff --git a/library/tzdata/Asia/Hovd b/library/tzdata/Asia/Hovd
index 0e4fb7d..2a87dab 100644
--- a/library/tzdata/Asia/Hovd
+++ b/library/tzdata/Asia/Hovd
@@ -48,190 +48,4 @@ set TZData(:Asia/Hovd) {
{1127498400 25200 0 HOVT}
{1143226800 28800 1 HOVST}
{1159552800 25200 0 HOVT}
- {1175281200 28800 1 HOVST}
- {1191002400 25200 0 HOVT}
- {1206730800 28800 1 HOVST}
- {1222452000 25200 0 HOVT}
- {1238180400 28800 1 HOVST}
- {1253901600 25200 0 HOVT}
- {1269630000 28800 1 HOVST}
- {1285351200 25200 0 HOVT}
- {1301079600 28800 1 HOVST}
- {1316800800 25200 0 HOVT}
- {1333134000 28800 1 HOVST}
- {1348855200 25200 0 HOVT}
- {1364583600 28800 1 HOVST}
- {1380304800 25200 0 HOVT}
- {1396033200 28800 1 HOVST}
- {1411754400 25200 0 HOVT}
- {1427482800 28800 1 HOVST}
- {1443204000 25200 0 HOVT}
- {1458932400 28800 1 HOVST}
- {1474653600 25200 0 HOVT}
- {1490382000 28800 1 HOVST}
- {1506708000 25200 0 HOVT}
- {1522436400 28800 1 HOVST}
- {1538157600 25200 0 HOVT}
- {1553886000 28800 1 HOVST}
- {1569607200 25200 0 HOVT}
- {1585335600 28800 1 HOVST}
- {1601056800 25200 0 HOVT}
- {1616785200 28800 1 HOVST}
- {1632506400 25200 0 HOVT}
- {1648234800 28800 1 HOVST}
- {1663956000 25200 0 HOVT}
- {1679684400 28800 1 HOVST}
- {1696010400 25200 0 HOVT}
- {1711738800 28800 1 HOVST}
- {1727460000 25200 0 HOVT}
- {1743188400 28800 1 HOVST}
- {1758909600 25200 0 HOVT}
- {1774638000 28800 1 HOVST}
- {1790359200 25200 0 HOVT}
- {1806087600 28800 1 HOVST}
- {1821808800 25200 0 HOVT}
- {1837537200 28800 1 HOVST}
- {1853863200 25200 0 HOVT}
- {1869591600 28800 1 HOVST}
- {1885312800 25200 0 HOVT}
- {1901041200 28800 1 HOVST}
- {1916762400 25200 0 HOVT}
- {1932490800 28800 1 HOVST}
- {1948212000 25200 0 HOVT}
- {1963940400 28800 1 HOVST}
- {1979661600 25200 0 HOVT}
- {1995390000 28800 1 HOVST}
- {2011111200 25200 0 HOVT}
- {2026839600 28800 1 HOVST}
- {2043165600 25200 0 HOVT}
- {2058894000 28800 1 HOVST}
- {2074615200 25200 0 HOVT}
- {2090343600 28800 1 HOVST}
- {2106064800 25200 0 HOVT}
- {2121793200 28800 1 HOVST}
- {2137514400 25200 0 HOVT}
- {2153242800 28800 1 HOVST}
- {2168964000 25200 0 HOVT}
- {2184692400 28800 1 HOVST}
- {2200413600 25200 0 HOVT}
- {2216746800 28800 1 HOVST}
- {2232468000 25200 0 HOVT}
- {2248196400 28800 1 HOVST}
- {2263917600 25200 0 HOVT}
- {2279646000 28800 1 HOVST}
- {2295367200 25200 0 HOVT}
- {2311095600 28800 1 HOVST}
- {2326816800 25200 0 HOVT}
- {2342545200 28800 1 HOVST}
- {2358266400 25200 0 HOVT}
- {2373994800 28800 1 HOVST}
- {2390320800 25200 0 HOVT}
- {2406049200 28800 1 HOVST}
- {2421770400 25200 0 HOVT}
- {2437498800 28800 1 HOVST}
- {2453220000 25200 0 HOVT}
- {2468948400 28800 1 HOVST}
- {2484669600 25200 0 HOVT}
- {2500398000 28800 1 HOVST}
- {2516119200 25200 0 HOVT}
- {2531847600 28800 1 HOVST}
- {2547568800 25200 0 HOVT}
- {2563297200 28800 1 HOVST}
- {2579623200 25200 0 HOVT}
- {2595351600 28800 1 HOVST}
- {2611072800 25200 0 HOVT}
- {2626801200 28800 1 HOVST}
- {2642522400 25200 0 HOVT}
- {2658250800 28800 1 HOVST}
- {2673972000 25200 0 HOVT}
- {2689700400 28800 1 HOVST}
- {2705421600 25200 0 HOVT}
- {2721150000 28800 1 HOVST}
- {2737476000 25200 0 HOVT}
- {2753204400 28800 1 HOVST}
- {2768925600 25200 0 HOVT}
- {2784654000 28800 1 HOVST}
- {2800375200 25200 0 HOVT}
- {2816103600 28800 1 HOVST}
- {2831824800 25200 0 HOVT}
- {2847553200 28800 1 HOVST}
- {2863274400 25200 0 HOVT}
- {2879002800 28800 1 HOVST}
- {2894724000 25200 0 HOVT}
- {2910452400 28800 1 HOVST}
- {2926778400 25200 0 HOVT}
- {2942506800 28800 1 HOVST}
- {2958228000 25200 0 HOVT}
- {2973956400 28800 1 HOVST}
- {2989677600 25200 0 HOVT}
- {3005406000 28800 1 HOVST}
- {3021127200 25200 0 HOVT}
- {3036855600 28800 1 HOVST}
- {3052576800 25200 0 HOVT}
- {3068305200 28800 1 HOVST}
- {3084026400 25200 0 HOVT}
- {3100359600 28800 1 HOVST}
- {3116080800 25200 0 HOVT}
- {3131809200 28800 1 HOVST}
- {3147530400 25200 0 HOVT}
- {3163258800 28800 1 HOVST}
- {3178980000 25200 0 HOVT}
- {3194708400 28800 1 HOVST}
- {3210429600 25200 0 HOVT}
- {3226158000 28800 1 HOVST}
- {3241879200 25200 0 HOVT}
- {3257607600 28800 1 HOVST}
- {3273933600 25200 0 HOVT}
- {3289662000 28800 1 HOVST}
- {3305383200 25200 0 HOVT}
- {3321111600 28800 1 HOVST}
- {3336832800 25200 0 HOVT}
- {3352561200 28800 1 HOVST}
- {3368282400 25200 0 HOVT}
- {3384010800 28800 1 HOVST}
- {3399732000 25200 0 HOVT}
- {3415460400 28800 1 HOVST}
- {3431181600 25200 0 HOVT}
- {3446910000 28800 1 HOVST}
- {3463236000 25200 0 HOVT}
- {3478964400 28800 1 HOVST}
- {3494685600 25200 0 HOVT}
- {3510414000 28800 1 HOVST}
- {3526135200 25200 0 HOVT}
- {3541863600 28800 1 HOVST}
- {3557584800 25200 0 HOVT}
- {3573313200 28800 1 HOVST}
- {3589034400 25200 0 HOVT}
- {3604762800 28800 1 HOVST}
- {3621088800 25200 0 HOVT}
- {3636817200 28800 1 HOVST}
- {3652538400 25200 0 HOVT}
- {3668266800 28800 1 HOVST}
- {3683988000 25200 0 HOVT}
- {3699716400 28800 1 HOVST}
- {3715437600 25200 0 HOVT}
- {3731166000 28800 1 HOVST}
- {3746887200 25200 0 HOVT}
- {3762615600 28800 1 HOVST}
- {3778336800 25200 0 HOVT}
- {3794065200 28800 1 HOVST}
- {3810391200 25200 0 HOVT}
- {3826119600 28800 1 HOVST}
- {3841840800 25200 0 HOVT}
- {3857569200 28800 1 HOVST}
- {3873290400 25200 0 HOVT}
- {3889018800 28800 1 HOVST}
- {3904740000 25200 0 HOVT}
- {3920468400 28800 1 HOVST}
- {3936189600 25200 0 HOVT}
- {3951918000 28800 1 HOVST}
- {3967639200 25200 0 HOVT}
- {3983972400 28800 1 HOVST}
- {3999693600 25200 0 HOVT}
- {4015422000 28800 1 HOVST}
- {4031143200 25200 0 HOVT}
- {4046871600 28800 1 HOVST}
- {4062592800 25200 0 HOVT}
- {4078321200 28800 1 HOVST}
- {4094042400 25200 0 HOVT}
}
diff --git a/library/tzdata/Asia/Jakarta b/library/tzdata/Asia/Jakarta
index 0922d8f..27033e8 100644
--- a/library/tzdata/Asia/Jakarta
+++ b/library/tzdata/Asia/Jakarta
@@ -6,7 +6,7 @@ set TZData(:Asia/Jakarta) {
{-1451719200 26400 0 JAVT}
{-1172906400 27000 0 WIT}
{-876641400 32400 0 JST}
- {-770634000 27000 0 WIT}
+ {-766054800 27000 0 WIT}
{-683883000 28800 0 WIT}
{-620812800 27000 0 WIT}
{-189415800 25200 0 WIT}
diff --git a/library/tzdata/Asia/Jayapura b/library/tzdata/Asia/Jayapura
index 89f705c..893da8b 100644
--- a/library/tzdata/Asia/Jayapura
+++ b/library/tzdata/Asia/Jayapura
@@ -3,6 +3,6 @@
set TZData(:Asia/Jayapura) {
{-9223372036854775808 33768 0 LMT}
{-1172913768 32400 0 EIT}
- {-820573200 34200 0 CST}
+ {-799491600 34200 0 CST}
{-189423000 32400 0 EIT}
}
diff --git a/library/tzdata/Asia/Makassar b/library/tzdata/Asia/Makassar
index 386e0a3..aa604b4 100644
--- a/library/tzdata/Asia/Makassar
+++ b/library/tzdata/Asia/Makassar
@@ -5,5 +5,5 @@ set TZData(:Asia/Makassar) {
{-1577951856 28656 0 MMT}
{-1172908656 28800 0 CIT}
{-880272000 32400 0 JST}
- {-770634000 28800 0 CIT}
+ {-766054800 28800 0 CIT}
}
diff --git a/library/tzdata/Asia/Pontianak b/library/tzdata/Asia/Pontianak
index 8272f47..f3567dd 100644
--- a/library/tzdata/Asia/Pontianak
+++ b/library/tzdata/Asia/Pontianak
@@ -5,7 +5,7 @@ set TZData(:Asia/Pontianak) {
{-1946186240 26240 0 PMT}
{-1172906240 27000 0 WIT}
{-881220600 32400 0 JST}
- {-770634000 27000 0 WIT}
+ {-766054800 27000 0 WIT}
{-683883000 28800 0 WIT}
{-620812800 27000 0 WIT}
{-189415800 28800 0 CIT}
diff --git a/library/tzdata/Asia/Ulaanbaatar b/library/tzdata/Asia/Ulaanbaatar
index be84eb9..fef76ec 100644
--- a/library/tzdata/Asia/Ulaanbaatar
+++ b/library/tzdata/Asia/Ulaanbaatar
@@ -48,190 +48,4 @@ set TZData(:Asia/Ulaanbaatar) {
{1127494800 28800 0 ULAT}
{1143223200 32400 1 ULAST}
{1159549200 28800 0 ULAT}
- {1175277600 32400 1 ULAST}
- {1190998800 28800 0 ULAT}
- {1206727200 32400 1 ULAST}
- {1222448400 28800 0 ULAT}
- {1238176800 32400 1 ULAST}
- {1253898000 28800 0 ULAT}
- {1269626400 32400 1 ULAST}
- {1285347600 28800 0 ULAT}
- {1301076000 32400 1 ULAST}
- {1316797200 28800 0 ULAT}
- {1333130400 32400 1 ULAST}
- {1348851600 28800 0 ULAT}
- {1364580000 32400 1 ULAST}
- {1380301200 28800 0 ULAT}
- {1396029600 32400 1 ULAST}
- {1411750800 28800 0 ULAT}
- {1427479200 32400 1 ULAST}
- {1443200400 28800 0 ULAT}
- {1458928800 32400 1 ULAST}
- {1474650000 28800 0 ULAT}
- {1490378400 32400 1 ULAST}
- {1506704400 28800 0 ULAT}
- {1522432800 32400 1 ULAST}
- {1538154000 28800 0 ULAT}
- {1553882400 32400 1 ULAST}
- {1569603600 28800 0 ULAT}
- {1585332000 32400 1 ULAST}
- {1601053200 28800 0 ULAT}
- {1616781600 32400 1 ULAST}
- {1632502800 28800 0 ULAT}
- {1648231200 32400 1 ULAST}
- {1663952400 28800 0 ULAT}
- {1679680800 32400 1 ULAST}
- {1696006800 28800 0 ULAT}
- {1711735200 32400 1 ULAST}
- {1727456400 28800 0 ULAT}
- {1743184800 32400 1 ULAST}
- {1758906000 28800 0 ULAT}
- {1774634400 32400 1 ULAST}
- {1790355600 28800 0 ULAT}
- {1806084000 32400 1 ULAST}
- {1821805200 28800 0 ULAT}
- {1837533600 32400 1 ULAST}
- {1853859600 28800 0 ULAT}
- {1869588000 32400 1 ULAST}
- {1885309200 28800 0 ULAT}
- {1901037600 32400 1 ULAST}
- {1916758800 28800 0 ULAT}
- {1932487200 32400 1 ULAST}
- {1948208400 28800 0 ULAT}
- {1963936800 32400 1 ULAST}
- {1979658000 28800 0 ULAT}
- {1995386400 32400 1 ULAST}
- {2011107600 28800 0 ULAT}
- {2026836000 32400 1 ULAST}
- {2043162000 28800 0 ULAT}
- {2058890400 32400 1 ULAST}
- {2074611600 28800 0 ULAT}
- {2090340000 32400 1 ULAST}
- {2106061200 28800 0 ULAT}
- {2121789600 32400 1 ULAST}
- {2137510800 28800 0 ULAT}
- {2153239200 32400 1 ULAST}
- {2168960400 28800 0 ULAT}
- {2184688800 32400 1 ULAST}
- {2200410000 28800 0 ULAT}
- {2216743200 32400 1 ULAST}
- {2232464400 28800 0 ULAT}
- {2248192800 32400 1 ULAST}
- {2263914000 28800 0 ULAT}
- {2279642400 32400 1 ULAST}
- {2295363600 28800 0 ULAT}
- {2311092000 32400 1 ULAST}
- {2326813200 28800 0 ULAT}
- {2342541600 32400 1 ULAST}
- {2358262800 28800 0 ULAT}
- {2373991200 32400 1 ULAST}
- {2390317200 28800 0 ULAT}
- {2406045600 32400 1 ULAST}
- {2421766800 28800 0 ULAT}
- {2437495200 32400 1 ULAST}
- {2453216400 28800 0 ULAT}
- {2468944800 32400 1 ULAST}
- {2484666000 28800 0 ULAT}
- {2500394400 32400 1 ULAST}
- {2516115600 28800 0 ULAT}
- {2531844000 32400 1 ULAST}
- {2547565200 28800 0 ULAT}
- {2563293600 32400 1 ULAST}
- {2579619600 28800 0 ULAT}
- {2595348000 32400 1 ULAST}
- {2611069200 28800 0 ULAT}
- {2626797600 32400 1 ULAST}
- {2642518800 28800 0 ULAT}
- {2658247200 32400 1 ULAST}
- {2673968400 28800 0 ULAT}
- {2689696800 32400 1 ULAST}
- {2705418000 28800 0 ULAT}
- {2721146400 32400 1 ULAST}
- {2737472400 28800 0 ULAT}
- {2753200800 32400 1 ULAST}
- {2768922000 28800 0 ULAT}
- {2784650400 32400 1 ULAST}
- {2800371600 28800 0 ULAT}
- {2816100000 32400 1 ULAST}
- {2831821200 28800 0 ULAT}
- {2847549600 32400 1 ULAST}
- {2863270800 28800 0 ULAT}
- {2878999200 32400 1 ULAST}
- {2894720400 28800 0 ULAT}
- {2910448800 32400 1 ULAST}
- {2926774800 28800 0 ULAT}
- {2942503200 32400 1 ULAST}
- {2958224400 28800 0 ULAT}
- {2973952800 32400 1 ULAST}
- {2989674000 28800 0 ULAT}
- {3005402400 32400 1 ULAST}
- {3021123600 28800 0 ULAT}
- {3036852000 32400 1 ULAST}
- {3052573200 28800 0 ULAT}
- {3068301600 32400 1 ULAST}
- {3084022800 28800 0 ULAT}
- {3100356000 32400 1 ULAST}
- {3116077200 28800 0 ULAT}
- {3131805600 32400 1 ULAST}
- {3147526800 28800 0 ULAT}
- {3163255200 32400 1 ULAST}
- {3178976400 28800 0 ULAT}
- {3194704800 32400 1 ULAST}
- {3210426000 28800 0 ULAT}
- {3226154400 32400 1 ULAST}
- {3241875600 28800 0 ULAT}
- {3257604000 32400 1 ULAST}
- {3273930000 28800 0 ULAT}
- {3289658400 32400 1 ULAST}
- {3305379600 28800 0 ULAT}
- {3321108000 32400 1 ULAST}
- {3336829200 28800 0 ULAT}
- {3352557600 32400 1 ULAST}
- {3368278800 28800 0 ULAT}
- {3384007200 32400 1 ULAST}
- {3399728400 28800 0 ULAT}
- {3415456800 32400 1 ULAST}
- {3431178000 28800 0 ULAT}
- {3446906400 32400 1 ULAST}
- {3463232400 28800 0 ULAT}
- {3478960800 32400 1 ULAST}
- {3494682000 28800 0 ULAT}
- {3510410400 32400 1 ULAST}
- {3526131600 28800 0 ULAT}
- {3541860000 32400 1 ULAST}
- {3557581200 28800 0 ULAT}
- {3573309600 32400 1 ULAST}
- {3589030800 28800 0 ULAT}
- {3604759200 32400 1 ULAST}
- {3621085200 28800 0 ULAT}
- {3636813600 32400 1 ULAST}
- {3652534800 28800 0 ULAT}
- {3668263200 32400 1 ULAST}
- {3683984400 28800 0 ULAT}
- {3699712800 32400 1 ULAST}
- {3715434000 28800 0 ULAT}
- {3731162400 32400 1 ULAST}
- {3746883600 28800 0 ULAT}
- {3762612000 32400 1 ULAST}
- {3778333200 28800 0 ULAT}
- {3794061600 32400 1 ULAST}
- {3810387600 28800 0 ULAT}
- {3826116000 32400 1 ULAST}
- {3841837200 28800 0 ULAT}
- {3857565600 32400 1 ULAST}
- {3873286800 28800 0 ULAT}
- {3889015200 32400 1 ULAST}
- {3904736400 28800 0 ULAT}
- {3920464800 32400 1 ULAST}
- {3936186000 28800 0 ULAT}
- {3951914400 32400 1 ULAST}
- {3967635600 28800 0 ULAT}
- {3983968800 32400 1 ULAST}
- {3999690000 28800 0 ULAT}
- {4015418400 32400 1 ULAST}
- {4031139600 28800 0 ULAT}
- {4046868000 32400 1 ULAST}
- {4062589200 28800 0 ULAT}
- {4078317600 32400 1 ULAST}
- {4094038800 28800 0 ULAT}
}
diff --git a/library/tzdata/Europe/Istanbul b/library/tzdata/Europe/Istanbul
index 4a4ff5b..06b2f88 100644
--- a/library/tzdata/Europe/Istanbul
+++ b/library/tzdata/Europe/Istanbul
@@ -113,190 +113,191 @@ set TZData(:Europe/Istanbul) {
{1130626800 7200 0 EET}
{1143327600 10800 1 EEST}
{1162076400 7200 0 EET}
- {1174777200 10800 1 EEST}
- {1193526000 7200 0 EET}
- {1206831600 10800 1 EEST}
- {1224975600 7200 0 EET}
- {1238281200 10800 1 EEST}
- {1256425200 7200 0 EET}
- {1269730800 10800 1 EEST}
- {1288479600 7200 0 EET}
- {1301180400 10800 1 EEST}
- {1319929200 7200 0 EET}
- {1332630000 10800 1 EEST}
- {1351378800 7200 0 EET}
- {1364684400 10800 1 EEST}
- {1382828400 7200 0 EET}
- {1396134000 10800 1 EEST}
- {1414278000 7200 0 EET}
- {1427583600 10800 1 EEST}
- {1445727600 7200 0 EET}
- {1459033200 10800 1 EEST}
- {1477782000 7200 0 EET}
- {1490482800 10800 1 EEST}
- {1509231600 7200 0 EET}
- {1521932400 10800 1 EEST}
- {1540681200 7200 0 EET}
- {1553986800 10800 1 EEST}
- {1572130800 7200 0 EET}
- {1585436400 10800 1 EEST}
- {1603580400 7200 0 EET}
- {1616886000 10800 1 EEST}
- {1635634800 7200 0 EET}
- {1648335600 10800 1 EEST}
- {1667084400 7200 0 EET}
- {1679785200 10800 1 EEST}
- {1698534000 7200 0 EET}
- {1711839600 10800 1 EEST}
- {1729983600 7200 0 EET}
- {1743289200 10800 1 EEST}
- {1761433200 7200 0 EET}
- {1774738800 10800 1 EEST}
- {1792882800 7200 0 EET}
- {1806188400 10800 1 EEST}
- {1824937200 7200 0 EET}
- {1837638000 10800 1 EEST}
- {1856386800 7200 0 EET}
- {1869087600 10800 1 EEST}
- {1887836400 7200 0 EET}
- {1901142000 10800 1 EEST}
- {1919286000 7200 0 EET}
- {1932591600 10800 1 EEST}
- {1950735600 7200 0 EET}
- {1964041200 10800 1 EEST}
- {1982790000 7200 0 EET}
- {1995490800 10800 1 EEST}
- {2014239600 7200 0 EET}
- {2026940400 10800 1 EEST}
- {2045689200 7200 0 EET}
- {2058390000 10800 1 EEST}
- {2077138800 7200 0 EET}
- {2090444400 10800 1 EEST}
- {2108588400 7200 0 EET}
- {2121894000 10800 1 EEST}
- {2140038000 7200 0 EET}
- {2153343600 10800 1 EEST}
- {2172092400 7200 0 EET}
- {2184793200 10800 1 EEST}
- {2203542000 7200 0 EET}
- {2216242800 10800 1 EEST}
- {2234991600 7200 0 EET}
- {2248297200 10800 1 EEST}
- {2266441200 7200 0 EET}
- {2279746800 10800 1 EEST}
- {2297890800 7200 0 EET}
- {2311196400 10800 1 EEST}
- {2329340400 7200 0 EET}
- {2342646000 10800 1 EEST}
- {2361394800 7200 0 EET}
- {2374095600 10800 1 EEST}
- {2392844400 7200 0 EET}
- {2405545200 10800 1 EEST}
- {2424294000 7200 0 EET}
- {2437599600 10800 1 EEST}
- {2455743600 7200 0 EET}
- {2469049200 10800 1 EEST}
- {2487193200 7200 0 EET}
- {2500498800 10800 1 EEST}
- {2519247600 7200 0 EET}
- {2531948400 10800 1 EEST}
- {2550697200 7200 0 EET}
- {2563398000 10800 1 EEST}
- {2582146800 7200 0 EET}
- {2595452400 10800 1 EEST}
- {2613596400 7200 0 EET}
- {2626902000 10800 1 EEST}
- {2645046000 7200 0 EET}
- {2658351600 10800 1 EEST}
- {2676495600 7200 0 EET}
- {2689801200 10800 1 EEST}
- {2708550000 7200 0 EET}
- {2721250800 10800 1 EEST}
- {2739999600 7200 0 EET}
- {2752700400 10800 1 EEST}
- {2771449200 7200 0 EET}
- {2784754800 10800 1 EEST}
- {2802898800 7200 0 EET}
- {2816204400 10800 1 EEST}
- {2834348400 7200 0 EET}
- {2847654000 10800 1 EEST}
- {2866402800 7200 0 EET}
- {2879103600 10800 1 EEST}
- {2897852400 7200 0 EET}
- {2910553200 10800 1 EEST}
- {2929302000 7200 0 EET}
- {2942002800 10800 1 EEST}
- {2960751600 7200 0 EET}
- {2974057200 10800 1 EEST}
- {2992201200 7200 0 EET}
- {3005506800 10800 1 EEST}
- {3023650800 7200 0 EET}
- {3036956400 10800 1 EEST}
- {3055705200 7200 0 EET}
- {3068406000 10800 1 EEST}
- {3087154800 7200 0 EET}
- {3099855600 10800 1 EEST}
- {3118604400 7200 0 EET}
- {3131910000 10800 1 EEST}
- {3150054000 7200 0 EET}
- {3163359600 10800 1 EEST}
- {3181503600 7200 0 EET}
- {3194809200 10800 1 EEST}
- {3212953200 7200 0 EET}
- {3226258800 10800 1 EEST}
- {3245007600 7200 0 EET}
- {3257708400 10800 1 EEST}
- {3276457200 7200 0 EET}
- {3289158000 10800 1 EEST}
- {3307906800 7200 0 EET}
- {3321212400 10800 1 EEST}
- {3339356400 7200 0 EET}
- {3352662000 10800 1 EEST}
- {3370806000 7200 0 EET}
- {3384111600 10800 1 EEST}
- {3402860400 7200 0 EET}
- {3415561200 10800 1 EEST}
- {3434310000 7200 0 EET}
- {3447010800 10800 1 EEST}
- {3465759600 7200 0 EET}
- {3479065200 10800 1 EEST}
- {3497209200 7200 0 EET}
- {3510514800 10800 1 EEST}
- {3528658800 7200 0 EET}
- {3541964400 10800 1 EEST}
- {3560108400 7200 0 EET}
- {3573414000 10800 1 EEST}
- {3592162800 7200 0 EET}
- {3604863600 10800 1 EEST}
- {3623612400 7200 0 EET}
- {3636313200 10800 1 EEST}
- {3655062000 7200 0 EET}
- {3668367600 10800 1 EEST}
- {3686511600 7200 0 EET}
- {3699817200 10800 1 EEST}
- {3717961200 7200 0 EET}
- {3731266800 10800 1 EEST}
- {3750015600 7200 0 EET}
- {3762716400 10800 1 EEST}
- {3781465200 7200 0 EET}
- {3794166000 10800 1 EEST}
- {3812914800 7200 0 EET}
- {3825615600 10800 1 EEST}
- {3844364400 7200 0 EET}
- {3857670000 10800 1 EEST}
- {3875814000 7200 0 EET}
- {3889119600 10800 1 EEST}
- {3907263600 7200 0 EET}
- {3920569200 10800 1 EEST}
- {3939318000 7200 0 EET}
- {3952018800 10800 1 EEST}
- {3970767600 7200 0 EET}
- {3983468400 10800 1 EEST}
- {4002217200 7200 0 EET}
- {4015522800 10800 1 EEST}
- {4033666800 7200 0 EET}
- {4046972400 10800 1 EEST}
- {4065116400 7200 0 EET}
- {4078422000 10800 1 EEST}
- {4096566000 7200 0 EET}
+ {1167602400 7200 0 EET}
+ {1174784400 10800 1 EEST}
+ {1193533200 7200 0 EET}
+ {1206838800 10800 1 EEST}
+ {1224982800 7200 0 EET}
+ {1238288400 10800 1 EEST}
+ {1256432400 7200 0 EET}
+ {1269738000 10800 1 EEST}
+ {1288486800 7200 0 EET}
+ {1301187600 10800 1 EEST}
+ {1319936400 7200 0 EET}
+ {1332637200 10800 1 EEST}
+ {1351386000 7200 0 EET}
+ {1364691600 10800 1 EEST}
+ {1382835600 7200 0 EET}
+ {1396141200 10800 1 EEST}
+ {1414285200 7200 0 EET}
+ {1427590800 10800 1 EEST}
+ {1445734800 7200 0 EET}
+ {1459040400 10800 1 EEST}
+ {1477789200 7200 0 EET}
+ {1490490000 10800 1 EEST}
+ {1509238800 7200 0 EET}
+ {1521939600 10800 1 EEST}
+ {1540688400 7200 0 EET}
+ {1553994000 10800 1 EEST}
+ {1572138000 7200 0 EET}
+ {1585443600 10800 1 EEST}
+ {1603587600 7200 0 EET}
+ {1616893200 10800 1 EEST}
+ {1635642000 7200 0 EET}
+ {1648342800 10800 1 EEST}
+ {1667091600 7200 0 EET}
+ {1679792400 10800 1 EEST}
+ {1698541200 7200 0 EET}
+ {1711846800 10800 1 EEST}
+ {1729990800 7200 0 EET}
+ {1743296400 10800 1 EEST}
+ {1761440400 7200 0 EET}
+ {1774746000 10800 1 EEST}
+ {1792890000 7200 0 EET}
+ {1806195600 10800 1 EEST}
+ {1824944400 7200 0 EET}
+ {1837645200 10800 1 EEST}
+ {1856394000 7200 0 EET}
+ {1869094800 10800 1 EEST}
+ {1887843600 7200 0 EET}
+ {1901149200 10800 1 EEST}
+ {1919293200 7200 0 EET}
+ {1932598800 10800 1 EEST}
+ {1950742800 7200 0 EET}
+ {1964048400 10800 1 EEST}
+ {1982797200 7200 0 EET}
+ {1995498000 10800 1 EEST}
+ {2014246800 7200 0 EET}
+ {2026947600 10800 1 EEST}
+ {2045696400 7200 0 EET}
+ {2058397200 10800 1 EEST}
+ {2077146000 7200 0 EET}
+ {2090451600 10800 1 EEST}
+ {2108595600 7200 0 EET}
+ {2121901200 10800 1 EEST}
+ {2140045200 7200 0 EET}
+ {2153350800 10800 1 EEST}
+ {2172099600 7200 0 EET}
+ {2184800400 10800 1 EEST}
+ {2203549200 7200 0 EET}
+ {2216250000 10800 1 EEST}
+ {2234998800 7200 0 EET}
+ {2248304400 10800 1 EEST}
+ {2266448400 7200 0 EET}
+ {2279754000 10800 1 EEST}
+ {2297898000 7200 0 EET}
+ {2311203600 10800 1 EEST}
+ {2329347600 7200 0 EET}
+ {2342653200 10800 1 EEST}
+ {2361402000 7200 0 EET}
+ {2374102800 10800 1 EEST}
+ {2392851600 7200 0 EET}
+ {2405552400 10800 1 EEST}
+ {2424301200 7200 0 EET}
+ {2437606800 10800 1 EEST}
+ {2455750800 7200 0 EET}
+ {2469056400 10800 1 EEST}
+ {2487200400 7200 0 EET}
+ {2500506000 10800 1 EEST}
+ {2519254800 7200 0 EET}
+ {2531955600 10800 1 EEST}
+ {2550704400 7200 0 EET}
+ {2563405200 10800 1 EEST}
+ {2582154000 7200 0 EET}
+ {2595459600 10800 1 EEST}
+ {2613603600 7200 0 EET}
+ {2626909200 10800 1 EEST}
+ {2645053200 7200 0 EET}
+ {2658358800 10800 1 EEST}
+ {2676502800 7200 0 EET}
+ {2689808400 10800 1 EEST}
+ {2708557200 7200 0 EET}
+ {2721258000 10800 1 EEST}
+ {2740006800 7200 0 EET}
+ {2752707600 10800 1 EEST}
+ {2771456400 7200 0 EET}
+ {2784762000 10800 1 EEST}
+ {2802906000 7200 0 EET}
+ {2816211600 10800 1 EEST}
+ {2834355600 7200 0 EET}
+ {2847661200 10800 1 EEST}
+ {2866410000 7200 0 EET}
+ {2879110800 10800 1 EEST}
+ {2897859600 7200 0 EET}
+ {2910560400 10800 1 EEST}
+ {2929309200 7200 0 EET}
+ {2942010000 10800 1 EEST}
+ {2960758800 7200 0 EET}
+ {2974064400 10800 1 EEST}
+ {2992208400 7200 0 EET}
+ {3005514000 10800 1 EEST}
+ {3023658000 7200 0 EET}
+ {3036963600 10800 1 EEST}
+ {3055712400 7200 0 EET}
+ {3068413200 10800 1 EEST}
+ {3087162000 7200 0 EET}
+ {3099862800 10800 1 EEST}
+ {3118611600 7200 0 EET}
+ {3131917200 10800 1 EEST}
+ {3150061200 7200 0 EET}
+ {3163366800 10800 1 EEST}
+ {3181510800 7200 0 EET}
+ {3194816400 10800 1 EEST}
+ {3212960400 7200 0 EET}
+ {3226266000 10800 1 EEST}
+ {3245014800 7200 0 EET}
+ {3257715600 10800 1 EEST}
+ {3276464400 7200 0 EET}
+ {3289165200 10800 1 EEST}
+ {3307914000 7200 0 EET}
+ {3321219600 10800 1 EEST}
+ {3339363600 7200 0 EET}
+ {3352669200 10800 1 EEST}
+ {3370813200 7200 0 EET}
+ {3384118800 10800 1 EEST}
+ {3402867600 7200 0 EET}
+ {3415568400 10800 1 EEST}
+ {3434317200 7200 0 EET}
+ {3447018000 10800 1 EEST}
+ {3465766800 7200 0 EET}
+ {3479072400 10800 1 EEST}
+ {3497216400 7200 0 EET}
+ {3510522000 10800 1 EEST}
+ {3528666000 7200 0 EET}
+ {3541971600 10800 1 EEST}
+ {3560115600 7200 0 EET}
+ {3573421200 10800 1 EEST}
+ {3592170000 7200 0 EET}
+ {3604870800 10800 1 EEST}
+ {3623619600 7200 0 EET}
+ {3636320400 10800 1 EEST}
+ {3655069200 7200 0 EET}
+ {3668374800 10800 1 EEST}
+ {3686518800 7200 0 EET}
+ {3699824400 10800 1 EEST}
+ {3717968400 7200 0 EET}
+ {3731274000 10800 1 EEST}
+ {3750022800 7200 0 EET}
+ {3762723600 10800 1 EEST}
+ {3781472400 7200 0 EET}
+ {3794173200 10800 1 EEST}
+ {3812922000 7200 0 EET}
+ {3825622800 10800 1 EEST}
+ {3844371600 7200 0 EET}
+ {3857677200 10800 1 EEST}
+ {3875821200 7200 0 EET}
+ {3889126800 10800 1 EEST}
+ {3907270800 7200 0 EET}
+ {3920576400 10800 1 EEST}
+ {3939325200 7200 0 EET}
+ {3952026000 10800 1 EEST}
+ {3970774800 7200 0 EET}
+ {3983475600 10800 1 EEST}
+ {4002224400 7200 0 EET}
+ {4015530000 10800 1 EEST}
+ {4033674000 7200 0 EET}
+ {4046979600 10800 1 EEST}
+ {4065123600 7200 0 EET}
+ {4078429200 10800 1 EEST}
+ {4096573200 7200 0 EET}
}
diff --git a/tests/lset.test b/tests/lset.test
index e6ff04c..872047b 100644
--- a/tests/lset.test
+++ b/tests/lset.test
@@ -390,6 +390,23 @@ test lset-14.2 {lset, not compiled, flat args, is string rep preserved?} testeva
list $a [lindex $a 1]
} "{ { 1 2 } { 3 4 } } { 3 4 }"
+testConstraint testobj [llength [info commands testobj]]
+test lset-15.1 {lset: shared intrep [Bug 1677512]} -setup {
+ teststringobj set 1 {{1 2} 3}
+ testobj convert 1 list
+ testobj duplicate 1 2
+ variable x [teststringobj get 1]
+ variable y [teststringobj get 2]
+ testobj freeallvars
+ set l [list $y z]
+ unset y
+} -constraints testobj -body {
+ lset l 0 0 0 5
+ lindex $x 0 0
+} -cleanup {
+ unset -nocomplain x l
+} -result 1
+
catch {unset noRead}
catch {unset noWrite}
catch {rename failTrace {}}