From 1e14587ab8671097dbf480b432c3088434d59bef Mon Sep 17 00:00:00 2001 From: Kevin B Kenny Date: Tue, 20 Mar 2007 19:47:47 +0000 Subject: 2007-03-20 Kevin B. Kenny * 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] --- ChangeLog | 32 +- generic/tclDate.c | 1252 +++++++++++++++++----------------- generic/tclListObj.c | 219 +++--- library/tzdata/America/Cambridge_Bay | 8 +- library/tzdata/America/Havana | 372 +++++----- library/tzdata/America/Inuvik | 11 +- library/tzdata/America/Iqaluit | 9 +- library/tzdata/America/Pangnirtung | 8 +- library/tzdata/America/Rankin_Inlet | 11 +- library/tzdata/America/Resolute | 62 ++ library/tzdata/America/Yellowknife | 8 +- library/tzdata/Asia/Choibalsan | 186 ----- library/tzdata/Asia/Dili | 2 +- library/tzdata/Asia/Hovd | 186 ----- library/tzdata/Asia/Jakarta | 2 +- library/tzdata/Asia/Jayapura | 2 +- library/tzdata/Asia/Makassar | 2 +- library/tzdata/Asia/Pontianak | 2 +- library/tzdata/Asia/Ulaanbaatar | 186 ----- library/tzdata/Europe/Istanbul | 373 +++++----- tests/lset.test | 17 + 21 files changed, 1237 insertions(+), 1713 deletions(-) create mode 100755 library/tzdata/America/Resolute diff --git a/ChangeLog b/ChangeLog index 513a2e5..90b52d9 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,33 @@ +2007-03-20 Kevin B. Kenny + + * 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 * generic/tclCompile.c: Revise the various expansion routines for @@ -18,7 +48,7 @@ potentially unsafe practice. Many thanks to Konstantin Kushnir for reporting this. -2007-03-17 Kevin Kenny +2007-03-17 Kevin B. Kenny * 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 {}} -- cgit v0.12