Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Changes In Branch tip-468-bis Excluding Merge-Ins
This is equivalent to a diff from 78d4429e3b to 97a181d1d6
2018-10-28
| ||
19:36 | Merge tip-468 branch check-in: 55c044358f user: jan.nijtmans tags: tip-468 | |
2017-04-10
| ||
11:01 | Merge "tip-468" branch. Add new function Tcl_OpenTcpClientEx() with same change as Tcl_OpenTcpServer... Leaf check-in: 97a181d1d6 user: jan.nijtmans tags: tip-468-bis | |
09:35 | merge (minor style issues from) trunk check-in: 6ecd17f92a user: jan.nijtmans tags: tip-468 | |
2017-01-10
| ||
14:35 | Further experimental follow-up: Add internal function TclOpenTcpClientEx(), as companion to Tcl_Open... Closed-Leaf check-in: 78d4429e3b user: jan.nijtmans tags: tip-456 | |
13:56 | Experimental follow-up: Change internal TclCreateSocketAddress() signature, from using "int port" to... check-in: 3b3fac1cee user: jan.nijtmans tags: tip-456 | |
Added .fossil-settings/crlf-glob.
> > > > > > > > > > > > > > | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | compat/zlib/contrib/dotzlib/DotZLib/UnitTests.cs compat/zlib/contrib/vstudio/readme.txt compat/zlib/contrib/vstudio/*/zlib.rc compat/zlib/win32/*.txt compat/zlib/win64/*.txt tools/tcl.hpj.in tools/tcl.wse.in win/buildall.vc.bat win/coffbase.txt win/makefile.vc win/rules.vc win/tcl.dsp win/tcl.dsw win/tcl.hpj.in |
Changes to .fossil-settings/crnl-glob.
1 2 3 4 5 6 7 8 9 | compat/zlib/contrib/dotzlib/DotZLib/UnitTests.cs compat/zlib/contrib/vstudio/readme.txt compat/zlib/contrib/vstudio/*/zlib.rc compat/zlib/win32/*.txt compat/zlib/win64/*.txt tools/tcl.hpj.in tools/tcl.wse.in win/buildall.vc.bat win/coffbase.txt | < | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | compat/zlib/contrib/dotzlib/DotZLib/UnitTests.cs compat/zlib/contrib/vstudio/readme.txt compat/zlib/contrib/vstudio/*/zlib.rc compat/zlib/win32/*.txt compat/zlib/win64/*.txt tools/tcl.hpj.in tools/tcl.wse.in win/buildall.vc.bat win/coffbase.txt win/makefile.vc win/rules.vc win/tcl.dsp win/tcl.dsw win/tcl.hpj.in |
Changes to .fossil-settings/encoding-glob.
1 2 3 4 | tools/tcl.hpj.in tools/tcl.wse.in win/buildall.vc.bat win/coffbase.txt | < | 1 2 3 4 5 6 7 8 9 | tools/tcl.hpj.in tools/tcl.wse.in win/buildall.vc.bat win/coffbase.txt win/makefile.vc win/rules.vc win/tcl.dsp win/tcl.dsw win/tcl.hpj.in |
Changes to compat/zlib/CMakeLists.txt.
1 2 3 4 5 | cmake_minimum_required(VERSION 2.4.4) set(CMAKE_ALLOW_LOOSE_LOOP_CONSTRUCTS ON) project(zlib C) | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 | cmake_minimum_required(VERSION 2.4.4) set(CMAKE_ALLOW_LOOSE_LOOP_CONSTRUCTS ON) project(zlib C) set(VERSION "1.2.11") option(ASM686 "Enable building i686 assembly implementation") option(AMD64 "Enable building amd64 assembly implementation") set(INSTALL_BIN_DIR "${CMAKE_INSTALL_PREFIX}/bin" CACHE PATH "Installation directory for executables") set(INSTALL_LIB_DIR "${CMAKE_INSTALL_PREFIX}/lib" CACHE PATH "Installation directory for libraries") set(INSTALL_INC_DIR "${CMAKE_INSTALL_PREFIX}/include" CACHE PATH "Installation directory for headers") |
︙ | ︙ |
Changes to compat/zlib/ChangeLog.
1 2 3 4 5 6 7 8 9 10 | ChangeLog file for zlib Changes in 1.2.10 (2 Jan 2017) - Avoid warnings on snprintf() return value - Fix bug in deflate_stored() for zero-length input - Fix bug in gzwrite.c that produced corrupt gzip files - Remove files to be installed before copying them in Makefile.in - Add warnings when compiling with assembler code | > > > > | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | ChangeLog file for zlib Changes in 1.2.11 (15 Jan 2017) - Fix deflate stored bug when pulling last block from window - Permit immediate deflateParams changes before any deflate input Changes in 1.2.10 (2 Jan 2017) - Avoid warnings on snprintf() return value - Fix bug in deflate_stored() for zero-length input - Fix bug in gzwrite.c that produced corrupt gzip files - Remove files to be installed before copying them in Makefile.in - Add warnings when compiling with assembler code |
︙ | ︙ |
Changes to compat/zlib/Makefile.in.
1 | # Makefile for zlib | | | 1 2 3 4 5 6 7 8 9 | # Makefile for zlib # Copyright (C) 1995-2017 Jean-loup Gailly, Mark Adler # For conditions of distribution and use, see copyright notice in zlib.h # To compile and test, type: # ./configure; make test # Normally configure builds both a static and a shared library. # If you want to build just a static library, use: ./configure --static |
︙ | ︙ | |||
28 29 30 31 32 33 34 | LDFLAGS= TEST_LDFLAGS=-L. libz.a LDSHARED=$(CC) CPP=$(CC) -E STATICLIB=libz.a SHAREDLIB=libz.so | | | 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 | LDFLAGS= TEST_LDFLAGS=-L. libz.a LDSHARED=$(CC) CPP=$(CC) -E STATICLIB=libz.a SHAREDLIB=libz.so SHAREDLIBV=libz.so.1.2.11 SHAREDLIBM=libz.so.1 LIBS=$(STATICLIB) $(SHAREDLIBV) AR=ar ARFLAGS=rc RANLIB=ranlib LDCONFIG=ldconfig |
︙ | ︙ |
Changes to compat/zlib/README.
1 2 | ZLIB DATA COMPRESSION LIBRARY | | | 1 2 3 4 5 6 7 8 9 10 | ZLIB DATA COMPRESSION LIBRARY zlib 1.2.11 is a general purpose data compression library. All the code is thread safe. The data format used by the zlib library is described by RFCs (Request for Comments) 1950 to 1952 in the files http://tools.ietf.org/html/rfc1950 (zlib format), rfc1951 (deflate format) and rfc1952 (gzip format). All functions of the compression library are documented in the file zlib.h (volunteer to write man pages welcome, contact [email protected]). A usage example |
︙ | ︙ | |||
27 28 29 30 31 32 33 | PLEASE read the zlib FAQ http://zlib.net/zlib_faq.html before asking for help. Mark Nelson <[email protected]> wrote an article about zlib for the Jan. 1997 issue of Dr. Dobb's Journal; a copy of the article is available at http://marknelson.us/1997/01/01/zlib-engine/ . | | | 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 | PLEASE read the zlib FAQ http://zlib.net/zlib_faq.html before asking for help. Mark Nelson <[email protected]> wrote an article about zlib for the Jan. 1997 issue of Dr. Dobb's Journal; a copy of the article is available at http://marknelson.us/1997/01/01/zlib-engine/ . The changes made in version 1.2.11 are documented in the file ChangeLog. Unsupported third party contributions are provided in directory contrib/ . zlib is available in Java using the java.util.zip package, documented at http://java.sun.com/developer/technicalArticles/Programming/compression/ . A Perl interface to zlib written by Paul Marquess <[email protected]> is available |
︙ | ︙ |
Changes to compat/zlib/contrib/delphi/ZLib.pas.
︙ | ︙ | |||
148 149 150 151 152 153 154 | InBytes = number of bytes in InBuf Out: OutBuf = ptr to user-allocated buffer to contain decompressed data BufSize = number of bytes in OutBuf } procedure DecompressToUserBuf(const InBuf: Pointer; InBytes: Integer; const OutBuf: Pointer; BufSize: Integer); const | | | 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 | InBytes = number of bytes in InBuf Out: OutBuf = ptr to user-allocated buffer to contain decompressed data BufSize = number of bytes in OutBuf } procedure DecompressToUserBuf(const InBuf: Pointer; InBytes: Integer; const OutBuf: Pointer; BufSize: Integer); const zlib_version = '1.2.11'; type EZlibError = class(Exception); ECompressionError = class(EZlibError); EDecompressionError = class(EZlibError); implementation |
︙ | ︙ |
Changes to compat/zlib/contrib/dotzlib/DotZLib/UnitTests.cs.
︙ | ︙ | |||
152 153 154 155 156 157 158 | public class InfoTests { #region Info tests [Test] public void Info_Version() { Info info = new Info(); | | | 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 | public class InfoTests { #region Info tests [Test] public void Info_Version() { Info info = new Info(); Assert.AreEqual("1.2.11", Info.Version); Assert.AreEqual(32, info.SizeOfUInt); Assert.AreEqual(32, info.SizeOfULong); Assert.AreEqual(32, info.SizeOfPointer); Assert.AreEqual(32, info.SizeOfOffset); } #endregion } |
︙ | ︙ |
Changes to compat/zlib/contrib/infback9/inftree9.c.
1 2 3 4 5 6 7 8 9 10 11 | /* inftree9.c -- generate Huffman trees for efficient decoding * Copyright (C) 1995-2017 Mark Adler * For conditions of distribution and use, see copyright notice in zlib.h */ #include "zutil.h" #include "inftree9.h" #define MAXBITS 15 const char inflate9_copyright[] = | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | /* inftree9.c -- generate Huffman trees for efficient decoding * Copyright (C) 1995-2017 Mark Adler * For conditions of distribution and use, see copyright notice in zlib.h */ #include "zutil.h" #include "inftree9.h" #define MAXBITS 15 const char inflate9_copyright[] = " inflate9 1.2.11 Copyright 1995-2017 Mark Adler "; /* If you use the zlib library in a product, an acknowledgment is welcome in the documentation of your product. If for some reason you cannot include such an acknowledgment, I would appreciate that you keep this copyright string in the executable of your product. */ |
︙ | ︙ | |||
60 61 62 63 64 65 66 | static const unsigned short lbase[31] = { /* Length codes 257..285 base */ 3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 15, 17, 19, 23, 27, 31, 35, 43, 51, 59, 67, 83, 99, 115, 131, 163, 195, 227, 3, 0, 0}; static const unsigned short lext[31] = { /* Length codes 257..285 extra */ 128, 128, 128, 128, 128, 128, 128, 128, 129, 129, 129, 129, 130, 130, 130, 130, 131, 131, 131, 131, 132, 132, 132, 132, | | | 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 | static const unsigned short lbase[31] = { /* Length codes 257..285 base */ 3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 15, 17, 19, 23, 27, 31, 35, 43, 51, 59, 67, 83, 99, 115, 131, 163, 195, 227, 3, 0, 0}; static const unsigned short lext[31] = { /* Length codes 257..285 extra */ 128, 128, 128, 128, 128, 128, 128, 128, 129, 129, 129, 129, 130, 130, 130, 130, 131, 131, 131, 131, 132, 132, 132, 132, 133, 133, 133, 133, 144, 77, 202}; static const unsigned short dbase[32] = { /* Distance codes 0..31 base */ 1, 2, 3, 4, 5, 7, 9, 13, 17, 25, 33, 49, 65, 97, 129, 193, 257, 385, 513, 769, 1025, 1537, 2049, 3073, 4097, 6145, 8193, 12289, 16385, 24577, 32769, 49153}; static const unsigned short dext[32] = { /* Distance codes 0..31 extra */ 128, 128, 128, 128, 129, 129, 130, 130, 131, 131, 132, 132, 133, 133, 134, 134, 135, 135, 136, 136, 137, 137, 138, 138, |
︙ | ︙ |
Changes to compat/zlib/contrib/minizip/configure.ac.
1 2 3 | # -*- Autoconf -*- # Process this file with autoconf to produce a configure script. | | | 1 2 3 4 5 6 7 8 9 10 11 | # -*- Autoconf -*- # Process this file with autoconf to produce a configure script. AC_INIT([minizip], [1.2.11], [bugzilla.redhat.com]) AC_CONFIG_SRCDIR([minizip.c]) AM_INIT_AUTOMAKE([foreign]) LT_INIT AC_MSG_CHECKING([whether to build example programs]) AC_ARG_ENABLE([demos], AC_HELP_STRING([--enable-demos], [build example programs])) AM_CONDITIONAL([COND_DEMOS], [test "$enable_demos" = yes]) |
︙ | ︙ |
Changes to compat/zlib/contrib/pascal/zlibpas.pas.
1 2 3 4 5 6 7 8 9 10 11 12 | (* zlibpas -- Pascal interface to the zlib data compression library * * Copyright (C) 2003 Cosmin Truta. * Derived from original sources by Bob Dellaca. * For conditions of distribution and use, see copyright notice in readme.txt *) unit zlibpas; interface const | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | (* zlibpas -- Pascal interface to the zlib data compression library * * Copyright (C) 2003 Cosmin Truta. * Derived from original sources by Bob Dellaca. * For conditions of distribution and use, see copyright notice in readme.txt *) unit zlibpas; interface const ZLIB_VERSION = '1.2.11'; ZLIB_VERNUM = $12a0; type alloc_func = function(opaque: Pointer; items, size: Integer): Pointer; cdecl; free_func = procedure(opaque, address: Pointer); cdecl; |
︙ | ︙ |
Changes to compat/zlib/contrib/vstudio/readme.txt.
|
| | | 1 2 3 4 5 6 7 8 | Building instructions for the DLL versions of Zlib 1.2.11 ======================================================== This directory contains projects that build zlib and minizip using Microsoft Visual C++ 9.0/10.0. You don't need to build these projects yourself. You can download the binaries from: |
︙ | ︙ |
Changes to compat/zlib/contrib/vstudio/vc10/zlib.rc.
1 2 3 4 | #include <windows.h> #define IDR_VERSION1 1 IDR_VERSION1 VERSIONINFO MOVEABLE IMPURE LOADONCALL DISCARDABLE | | | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | #include <windows.h> #define IDR_VERSION1 1 IDR_VERSION1 VERSIONINFO MOVEABLE IMPURE LOADONCALL DISCARDABLE FILEVERSION 1, 2, 11, 0 PRODUCTVERSION 1, 2, 11, 0 FILEFLAGSMASK VS_FFI_FILEFLAGSMASK FILEFLAGS 0 FILEOS VOS_DOS_WINDOWS32 FILETYPE VFT_DLL FILESUBTYPE 0 // not used BEGIN BLOCK "StringFileInfo" BEGIN BLOCK "040904E4" //language ID = U.S. English, char set = Windows, Multilingual BEGIN VALUE "FileDescription", "zlib data compression and ZIP file I/O library\0" VALUE "FileVersion", "1.2.11\0" VALUE "InternalName", "zlib\0" VALUE "OriginalFilename", "zlibwapi.dll\0" VALUE "ProductName", "ZLib.DLL\0" VALUE "Comments","DLL support by Alessandro Iacopetti & Gilles Vollant\0" VALUE "LegalCopyright", "(C) 1995-2017 Jean-loup Gailly & Mark Adler\0" END END |
︙ | ︙ |
Changes to compat/zlib/contrib/vstudio/vc11/zlib.rc.
1 2 3 4 | #include <windows.h> #define IDR_VERSION1 1 IDR_VERSION1 VERSIONINFO MOVEABLE IMPURE LOADONCALL DISCARDABLE | | | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | #include <windows.h> #define IDR_VERSION1 1 IDR_VERSION1 VERSIONINFO MOVEABLE IMPURE LOADONCALL DISCARDABLE FILEVERSION 1, 2, 11, 0 PRODUCTVERSION 1, 2, 11, 0 FILEFLAGSMASK VS_FFI_FILEFLAGSMASK FILEFLAGS 0 FILEOS VOS_DOS_WINDOWS32 FILETYPE VFT_DLL FILESUBTYPE 0 // not used BEGIN BLOCK "StringFileInfo" BEGIN BLOCK "040904E4" //language ID = U.S. English, char set = Windows, Multilingual BEGIN VALUE "FileDescription", "zlib data compression and ZIP file I/O library\0" VALUE "FileVersion", "1.2.11\0" VALUE "InternalName", "zlib\0" VALUE "OriginalFilename", "zlibwapi.dll\0" VALUE "ProductName", "ZLib.DLL\0" VALUE "Comments","DLL support by Alessandro Iacopetti & Gilles Vollant\0" VALUE "LegalCopyright", "(C) 1995-2017 Jean-loup Gailly & Mark Adler\0" END END |
︙ | ︙ |
Changes to compat/zlib/contrib/vstudio/vc12/zlib.rc.
1 2 3 4 | #include <windows.h> #define IDR_VERSION1 1 IDR_VERSION1 VERSIONINFO MOVEABLE IMPURE LOADONCALL DISCARDABLE | | | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | #include <windows.h> #define IDR_VERSION1 1 IDR_VERSION1 VERSIONINFO MOVEABLE IMPURE LOADONCALL DISCARDABLE FILEVERSION 1, 2, 11, 0 PRODUCTVERSION 1, 2, 11, 0 FILEFLAGSMASK VS_FFI_FILEFLAGSMASK FILEFLAGS 0 FILEOS VOS_DOS_WINDOWS32 FILETYPE VFT_DLL FILESUBTYPE 0 // not used BEGIN BLOCK "StringFileInfo" BEGIN BLOCK "040904E4" //language ID = U.S. English, char set = Windows, Multilingual BEGIN VALUE "FileDescription", "zlib data compression and ZIP file I/O library\0" VALUE "FileVersion", "1.2.11\0" VALUE "InternalName", "zlib\0" VALUE "OriginalFilename", "zlibwapi.dll\0" VALUE "ProductName", "ZLib.DLL\0" VALUE "Comments","DLL support by Alessandro Iacopetti & Gilles Vollant\0" VALUE "LegalCopyright", "(C) 1995-2017 Jean-loup Gailly & Mark Adler\0" END END |
︙ | ︙ |
Deleted compat/zlib/contrib/vstudio/vc14/miniunz.vcxproj.user.
|
| < < < < |
Deleted compat/zlib/contrib/vstudio/vc14/minizip.vcxproj.user.
|
| < < < < |
Deleted compat/zlib/contrib/vstudio/vc14/testzlib.vcxproj.user.
|
| < < < < |
Deleted compat/zlib/contrib/vstudio/vc14/testzlibdll.vcxproj.user.
|
| < < < < |
Changes to compat/zlib/contrib/vstudio/vc14/zlib.rc.
1 2 3 4 | #include <windows.h> #define IDR_VERSION1 1 IDR_VERSION1 VERSIONINFO MOVEABLE IMPURE LOADONCALL DISCARDABLE | | | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | #include <windows.h> #define IDR_VERSION1 1 IDR_VERSION1 VERSIONINFO MOVEABLE IMPURE LOADONCALL DISCARDABLE FILEVERSION 1, 2, 11, 0 PRODUCTVERSION 1, 2, 11, 0 FILEFLAGSMASK VS_FFI_FILEFLAGSMASK FILEFLAGS 0 FILEOS VOS_DOS_WINDOWS32 FILETYPE VFT_DLL FILESUBTYPE 0 // not used BEGIN BLOCK "StringFileInfo" BEGIN BLOCK "040904E4" //language ID = U.S. English, char set = Windows, Multilingual BEGIN VALUE "FileDescription", "zlib data compression and ZIP file I/O library\0" VALUE "FileVersion", "1.2.11\0" VALUE "InternalName", "zlib\0" VALUE "OriginalFilename", "zlibwapi.dll\0" VALUE "ProductName", "ZLib.DLL\0" VALUE "Comments","DLL support by Alessandro Iacopetti & Gilles Vollant\0" VALUE "LegalCopyright", "(C) 1995-2017 Jean-loup Gailly & Mark Adler\0" END END |
︙ | ︙ |
Deleted compat/zlib/contrib/vstudio/vc14/zlibstat.vcxproj.user.
|
| < < < < |
Deleted compat/zlib/contrib/vstudio/vc14/zlibvc.vcxproj.user.
|
| < < < < |
Changes to compat/zlib/contrib/vstudio/vc9/zlib.rc.
1 2 3 4 | #include <windows.h> #define IDR_VERSION1 1 IDR_VERSION1 VERSIONINFO MOVEABLE IMPURE LOADONCALL DISCARDABLE | | | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | #include <windows.h> #define IDR_VERSION1 1 IDR_VERSION1 VERSIONINFO MOVEABLE IMPURE LOADONCALL DISCARDABLE FILEVERSION 1, 2, 11, 0 PRODUCTVERSION 1, 2, 11, 0 FILEFLAGSMASK VS_FFI_FILEFLAGSMASK FILEFLAGS 0 FILEOS VOS_DOS_WINDOWS32 FILETYPE VFT_DLL FILESUBTYPE 0 // not used BEGIN BLOCK "StringFileInfo" BEGIN BLOCK "040904E4" //language ID = U.S. English, char set = Windows, Multilingual BEGIN VALUE "FileDescription", "zlib data compression and ZIP file I/O library\0" VALUE "FileVersion", "1.2.11\0" VALUE "InternalName", "zlib\0" VALUE "OriginalFilename", "zlibwapi.dll\0" VALUE "ProductName", "ZLib.DLL\0" VALUE "Comments","DLL support by Alessandro Iacopetti & Gilles Vollant\0" VALUE "LegalCopyright", "(C) 1995-2017 Jean-loup Gailly & Mark Adler\0" END END |
︙ | ︙ |
Changes to compat/zlib/deflate.c.
︙ | ︙ | |||
48 49 50 51 52 53 54 | */ /* @(#) $Id$ */ #include "deflate.h" const char deflate_copyright[] = | | | 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 | */ /* @(#) $Id$ */ #include "deflate.h" const char deflate_copyright[] = " deflate 1.2.11 Copyright 1995-2017 Jean-loup Gailly and Mark Adler "; /* If you use the zlib library in a product, an acknowledgment is welcome in the documentation of your product. If for some reason you cannot include such an acknowledgment, I would appreciate that you keep this copyright string in the executable of your product. */ |
︙ | ︙ | |||
582 583 584 585 586 587 588 | if (level == Z_DEFAULT_COMPRESSION) level = 6; #endif if (level < 0 || level > 9 || strategy < 0 || strategy > Z_FIXED) { return Z_STREAM_ERROR; } func = configuration_table[s->level].func; | | > | 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 | if (level == Z_DEFAULT_COMPRESSION) level = 6; #endif if (level < 0 || level > 9 || strategy < 0 || strategy > Z_FIXED) { return Z_STREAM_ERROR; } func = configuration_table[s->level].func; if ((strategy != s->strategy || func != configuration_table[level].func) && s->high_water) { /* Flush the last buffer: */ int err = deflate(strm, Z_BLOCK); if (err == Z_STREAM_ERROR) return err; if (strm->avail_out == 0) return Z_BUF_ERROR; } |
︙ | ︙ | |||
1667 1668 1669 1670 1671 1672 1673 | /* maximum stored block length that will fit in avail_out: */ have = s->strm->avail_out - have; left = s->strstart - s->block_start; /* bytes left in window */ if (len > (ulg)left + s->strm->avail_in) len = left + s->strm->avail_in; /* limit len to the input */ if (len > have) len = have; /* limit len to the output */ | < < | | < > > > | 1668 1669 1670 1671 1672 1673 1674 1675 1676 1677 1678 1679 1680 1681 1682 1683 1684 1685 1686 1687 1688 1689 1690 1691 1692 1693 1694 1695 1696 1697 1698 1699 1700 1701 1702 1703 1704 1705 1706 1707 1708 1709 1710 1711 1712 1713 1714 1715 1716 1717 | /* maximum stored block length that will fit in avail_out: */ have = s->strm->avail_out - have; left = s->strstart - s->block_start; /* bytes left in window */ if (len > (ulg)left + s->strm->avail_in) len = left + s->strm->avail_in; /* limit len to the input */ if (len > have) len = have; /* limit len to the output */ /* If the stored block would be less than min_block in length, or if * unable to copy all of the available input when flushing, then try * copying to the window and the pending buffer instead. Also don't * write an empty block when flushing -- deflate() does that. */ if (len < min_block && ((len == 0 && flush != Z_FINISH) || flush == Z_NO_FLUSH || len != left + s->strm->avail_in)) break; /* Make a dummy stored block in pending to get the header bytes, * including any pending bits. This also updates the debugging counts. */ last = flush == Z_FINISH && len == left + s->strm->avail_in ? 1 : 0; _tr_stored_block(s, (char *)0, 0L, last); /* Replace the lengths in the dummy stored block with len. */ s->pending_buf[s->pending - 4] = len; s->pending_buf[s->pending - 3] = len >> 8; s->pending_buf[s->pending - 2] = ~len; s->pending_buf[s->pending - 1] = ~len >> 8; /* Write the stored block header bytes. */ flush_pending(s->strm); #ifdef ZLIB_DEBUG /* Update debugging counts for the data about to be copied. */ s->compressed_len += len << 3; s->bits_sent += len << 3; #endif /* Copy uncompressed bytes from the window to next_out. */ if (left) { if (left > len) left = len; zmemcpy(s->strm->next_out, s->window + s->block_start, left); s->strm->next_out += left; s->strm->avail_out -= left; s->strm->total_out += left; s->block_start += left; len -= left; } |
︙ | ︙ | |||
1752 1753 1754 1755 1756 1757 1758 1759 1760 1761 1762 1763 1764 1765 | } zmemcpy(s->window + s->strstart, s->strm->next_in - used, used); s->strstart += used; } s->block_start = s->strstart; s->insert += MIN(used, s->w_size - s->insert); } /* If the last block was written to next_out, then done. */ if (last) return finish_done; /* If flushing and all input has been consumed, then done. */ if (flush != Z_NO_FLUSH && flush != Z_FINISH && | > > | 1753 1754 1755 1756 1757 1758 1759 1760 1761 1762 1763 1764 1765 1766 1767 1768 | } zmemcpy(s->window + s->strstart, s->strm->next_in - used, used); s->strstart += used; } s->block_start = s->strstart; s->insert += MIN(used, s->w_size - s->insert); } if (s->high_water < s->strstart) s->high_water = s->strstart; /* If the last block was written to next_out, then done. */ if (last) return finish_done; /* If flushing and all input has been consumed, then done. */ if (flush != Z_NO_FLUSH && flush != Z_FINISH && |
︙ | ︙ | |||
1779 1780 1781 1782 1783 1784 1785 1786 1787 1788 1789 1790 1791 1792 | } if (have > s->strm->avail_in) have = s->strm->avail_in; if (have) { read_buf(s->strm, s->window + s->strstart, have); s->strstart += have; } /* There was not enough avail_out to write a complete worthy or flushed * stored block to next_out. Write a stored block to pending instead, if we * have enough input for a worthy block, or if flushing and there is enough * room for the remaining input as a stored block in the pending buffer. */ have = (s->bi_valid + 42) >> 3; /* number of header bytes */ | > > | 1782 1783 1784 1785 1786 1787 1788 1789 1790 1791 1792 1793 1794 1795 1796 1797 | } if (have > s->strm->avail_in) have = s->strm->avail_in; if (have) { read_buf(s->strm, s->window + s->strstart, have); s->strstart += have; } if (s->high_water < s->strstart) s->high_water = s->strstart; /* There was not enough avail_out to write a complete worthy or flushed * stored block to next_out. Write a stored block to pending instead, if we * have enough input for a worthy block, or if flushing and there is enough * room for the remaining input as a stored block in the pending buffer. */ have = (s->bi_valid + 42) >> 3; /* number of header bytes */ |
︙ | ︙ |
Deleted compat/zlib/doc/algorithm.txt.
|
| < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < |
Deleted compat/zlib/doc/rfc1950.txt.
|
| < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < |
Deleted compat/zlib/doc/rfc1951.txt.
|
| < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < |
Deleted compat/zlib/doc/rfc1952.txt.
|
| < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < |
Deleted compat/zlib/doc/txtvsbin.txt.
|
| < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < |
Changes to compat/zlib/gzlib.c.
1 | /* gzlib.c -- zlib functions common to reading and writing gzip files | | | 1 2 3 4 5 6 7 8 9 | /* gzlib.c -- zlib functions common to reading and writing gzip files * Copyright (C) 2004-2017 Mark Adler * For conditions of distribution and use, see copyright notice in zlib.h */ #include "gzguts.h" #if defined(_WIN32) && !defined(__BORLANDC__) && !defined(__MINGW32__) # define LSEEK _lseeki64 |
︙ | ︙ |
Changes to compat/zlib/gzwrite.c.
1 | /* gzwrite.c -- zlib functions for writing gzip files | | | 1 2 3 4 5 6 7 8 9 | /* gzwrite.c -- zlib functions for writing gzip files * Copyright (C) 2004-2017 Mark Adler * For conditions of distribution and use, see copyright notice in zlib.h */ #include "gzguts.h" /* Local functions */ local int gz_init OF((gz_statep)); |
︙ | ︙ |
Changes to compat/zlib/inffast.c.
1 | /* inffast.c -- fast decoding | | | 1 2 3 4 5 6 7 8 9 | /* inffast.c -- fast decoding * Copyright (C) 1995-2017 Mark Adler * For conditions of distribution and use, see copyright notice in zlib.h */ #include "zutil.h" #include "inftrees.h" #include "inflate.h" #include "inffast.h" |
︙ | ︙ |
Changes to compat/zlib/inftrees.c.
1 2 3 4 5 6 7 8 9 10 11 | /* inftrees.c -- generate Huffman trees for efficient decoding * Copyright (C) 1995-2017 Mark Adler * For conditions of distribution and use, see copyright notice in zlib.h */ #include "zutil.h" #include "inftrees.h" #define MAXBITS 15 const char inflate_copyright[] = | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | /* inftrees.c -- generate Huffman trees for efficient decoding * Copyright (C) 1995-2017 Mark Adler * For conditions of distribution and use, see copyright notice in zlib.h */ #include "zutil.h" #include "inftrees.h" #define MAXBITS 15 const char inflate_copyright[] = " inflate 1.2.11 Copyright 1995-2017 Mark Adler "; /* If you use the zlib library in a product, an acknowledgment is welcome in the documentation of your product. If for some reason you cannot include such an acknowledgment, I would appreciate that you keep this copyright string in the executable of your product. */ |
︙ | ︙ | |||
58 59 60 61 62 63 64 | unsigned short count[MAXBITS+1]; /* number of codes of each length */ unsigned short offs[MAXBITS+1]; /* offsets in table for each length */ static const unsigned short lbase[31] = { /* Length codes 257..285 base */ 3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 15, 17, 19, 23, 27, 31, 35, 43, 51, 59, 67, 83, 99, 115, 131, 163, 195, 227, 258, 0, 0}; static const unsigned short lext[31] = { /* Length codes 257..285 extra */ 16, 16, 16, 16, 16, 16, 16, 16, 17, 17, 17, 17, 18, 18, 18, 18, | | | 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 | unsigned short count[MAXBITS+1]; /* number of codes of each length */ unsigned short offs[MAXBITS+1]; /* offsets in table for each length */ static const unsigned short lbase[31] = { /* Length codes 257..285 base */ 3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 15, 17, 19, 23, 27, 31, 35, 43, 51, 59, 67, 83, 99, 115, 131, 163, 195, 227, 258, 0, 0}; static const unsigned short lext[31] = { /* Length codes 257..285 extra */ 16, 16, 16, 16, 16, 16, 16, 16, 17, 17, 17, 17, 18, 18, 18, 18, 19, 19, 19, 19, 20, 20, 20, 20, 21, 21, 21, 21, 16, 77, 202}; static const unsigned short dbase[32] = { /* Distance codes 0..29 base */ 1, 2, 3, 4, 5, 7, 9, 13, 17, 25, 33, 49, 65, 97, 129, 193, 257, 385, 513, 769, 1025, 1537, 2049, 3073, 4097, 6145, 8193, 12289, 16385, 24577, 0, 0}; static const unsigned short dext[32] = { /* Distance codes 0..29 extra */ 16, 16, 16, 16, 17, 17, 18, 18, 19, 19, 20, 20, 21, 21, 22, 22, 23, 23, 24, 24, 25, 25, 26, 26, 27, 27, |
︙ | ︙ |
Changes to compat/zlib/os400/README400.
|
| | | 1 2 3 4 5 6 7 8 | ZLIB version 1.2.11 for OS/400 installation instructions 1) Download and unpack the zlib tarball to some IFS directory. (i.e.: /path/to/the/zlib/ifs/source/directory) If the installed IFS command suppors gzip format, this is straightforward, else you have to unpack first to some directory on a system supporting it, then move the whole directory to the IFS via the network (via SMB or FTP). |
︙ | ︙ |
Changes to compat/zlib/os400/make.sh.
︙ | ︙ | |||
256 257 258 259 260 261 262 | # Create and compile the identification source file. echo '#pragma comment(user, "ZLIB version '"${VERSION}"'")' > os400.c echo '#pragma comment(user, __DATE__)' >> os400.c echo '#pragma comment(user, __TIME__)' >> os400.c | | | 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 | # Create and compile the identification source file. echo '#pragma comment(user, "ZLIB version '"${VERSION}"'")' > os400.c echo '#pragma comment(user, __DATE__)' >> os400.c echo '#pragma comment(user, __TIME__)' >> os400.c echo '#pragma comment(copyright, "Copyright (C) 1995-2017 Jean-Loup Gailly, Mark Adler. OS/400 version by P. Monnerat.")' >> os400.c make_module OS400 os400.c LINK= # No need to rebuild service program yet. MODULES= # Get source list. |
︙ | ︙ |
Changes to compat/zlib/os400/zlib.inc.
1 2 3 | * ZLIB.INC - Interface to the general purpose compression library * * ILE RPG400 version by Patrick Monnerat, DATASPHERE. | | | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 | * ZLIB.INC - Interface to the general purpose compression library * * ILE RPG400 version by Patrick Monnerat, DATASPHERE. * Version 1.2.11 * * * WARNING: * Procedures inflateInit(), inflateInit2(), deflateInit(), * deflateInit2() and inflateBackInit() need to be called with * two additional arguments: * the package version string and the stream control structure. * size. This is needed because RPG lacks some macro feature. * Call these procedures as: * inflateInit(...: ZLIB_VERSION: %size(z_stream)) * /if not defined(ZLIB_H_) /define ZLIB_H_ * ************************************************************************** * Constants ************************************************************************** * * Versioning information. * D ZLIB_VERSION C '1.2.11' D ZLIB_VERNUM C X'12a0' D ZLIB_VER_MAJOR C 1 D ZLIB_VER_MINOR C 2 D ZLIB_VER_REVISION... D C 11 D ZLIB_VER_SUBREVISION... D C 0 * * Other equates. * D Z_NO_FLUSH C 0 D Z_PARTIAL_FLUSH... |
︙ | ︙ |
Changes to compat/zlib/qnx/package.qpg.
︙ | ︙ | |||
21 22 23 24 25 26 27 | <QPG:EmailAddress></QPG:EmailAddress> </QPG:Responsible> <QPG:Values> <QPG:Files> <QPG:Add file="../zconf.h" install="/opt/include/" user="root:sys" permission="644"/> <QPG:Add file="../zlib.h" install="/opt/include/" user="root:sys" permission="644"/> | | | | | | 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 | <QPG:EmailAddress></QPG:EmailAddress> </QPG:Responsible> <QPG:Values> <QPG:Files> <QPG:Add file="../zconf.h" install="/opt/include/" user="root:sys" permission="644"/> <QPG:Add file="../zlib.h" install="/opt/include/" user="root:sys" permission="644"/> <QPG:Add file="../libz.so.1.2.11" install="/opt/lib/" user="root:bin" permission="644"/> <QPG:Add file="libz.so" install="/opt/lib/" component="dev" filetype="symlink" linkto="libz.so.1.2.11"/> <QPG:Add file="libz.so.1" install="/opt/lib/" filetype="symlink" linkto="libz.so.1.2.11"/> <QPG:Add file="../libz.so.1.2.11" install="/opt/lib/" component="slib"/> </QPG:Files> <QPG:PackageFilter> <QPM:PackageManifest> <QPM:PackageDescription> <QPM:PackageType>Library</QPM:PackageType> <QPM:PackageReleaseNotes></QPM:PackageReleaseNotes> |
︙ | ︙ | |||
59 60 61 62 63 64 65 | <QPM:ProductDescriptionShort>A massively spiffy yet delicately unobtrusive compression library.</QPM:ProductDescriptionShort> <QPM:ProductDescriptionLong>zlib is designed to be a free, general-purpose, legally unencumbered, lossless data compression library for use on virtually any computer hardware and operating system.</QPM:ProductDescriptionLong> <QPM:ProductDescriptionURL>http://www.gzip.org/zlib</QPM:ProductDescriptionURL> <QPM:ProductDescriptionEmbedURL></QPM:ProductDescriptionEmbedURL> </QPM:ProductDescription> <QPM:ReleaseDescription> | | | 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 | <QPM:ProductDescriptionShort>A massively spiffy yet delicately unobtrusive compression library.</QPM:ProductDescriptionShort> <QPM:ProductDescriptionLong>zlib is designed to be a free, general-purpose, legally unencumbered, lossless data compression library for use on virtually any computer hardware and operating system.</QPM:ProductDescriptionLong> <QPM:ProductDescriptionURL>http://www.gzip.org/zlib</QPM:ProductDescriptionURL> <QPM:ProductDescriptionEmbedURL></QPM:ProductDescriptionEmbedURL> </QPM:ProductDescription> <QPM:ReleaseDescription> <QPM:ReleaseVersion>1.2.11</QPM:ReleaseVersion> <QPM:ReleaseUrgency>Medium</QPM:ReleaseUrgency> <QPM:ReleaseStability>Stable</QPM:ReleaseStability> <QPM:ReleaseNoteMinor></QPM:ReleaseNoteMinor> <QPM:ReleaseNoteMajor></QPM:ReleaseNoteMajor> <QPM:ExcludeCountries> <QPM:Country></QPM:Country> </QPM:ExcludeCountries> |
︙ | ︙ |
Changes to compat/zlib/treebuild.xml.
1 | <?xml version="1.0" ?> | | | | 1 2 3 4 5 6 7 8 9 10 | <?xml version="1.0" ?> <package name="zlib" version="1.2.11"> <library name="zlib" dlversion="1.2.11" dlname="z"> <property name="description"> zip compression library </property> <property name="include-target-dir" value="$(@PACKAGE/install-includedir)" /> <!-- fixme: not implemented yet --> <property name="compiler/c/inline" value="yes" /> <include-file name="zlib.h" scope="public" mode="644" /> |
︙ | ︙ |
Changes to compat/zlib/trees.c.
1 | /* trees.c -- output deflated data using Huffman coding | | | 1 2 3 4 5 6 7 8 9 | /* trees.c -- output deflated data using Huffman coding * Copyright (C) 1995-2017 Jean-loup Gailly * detect_data_type() function provided freely by Cosmin Truta, 2006 * For conditions of distribution and use, see copyright notice in zlib.h */ /* * ALGORITHM * |
︙ | ︙ | |||
902 903 904 905 906 907 908 | s->compressed_len += 10L; /* 3 for block type, 7 for EOB */ #endif bi_flush(s); } /* =========================================================================== * Determine the best encoding for the current block: dynamic trees, static | | | 902 903 904 905 906 907 908 909 910 911 912 913 914 915 916 | s->compressed_len += 10L; /* 3 for block type, 7 for EOB */ #endif bi_flush(s); } /* =========================================================================== * Determine the best encoding for the current block: dynamic trees, static * trees or store, and write out the encoded block. */ void ZLIB_INTERNAL _tr_flush_block(s, buf, stored_len, last) deflate_state *s; charf *buf; /* input block, or NULL if too old */ ulg stored_len; /* length of input block */ int last; /* one if this is the last block for a file */ { |
︙ | ︙ |
Changes to compat/zlib/win32/Makefile.msc.
1 | # Makefile for zlib using Microsoft (Visual) C | | | 1 2 3 4 5 6 7 8 9 | # Makefile for zlib using Microsoft (Visual) C # zlib is copyright (C) 1995-2017 Jean-loup Gailly and Mark Adler # # Usage: # nmake -f win32/Makefile.msc (standard build) # nmake -f win32/Makefile.msc LOC=-DFOO (nonstandard build) # nmake -f win32/Makefile.msc LOC="-DASMV -DASMINF" \ # OBJA="inffas32.obj match686.obj" (use ASM code, x86) # nmake -f win32/Makefile.msc AS=ml64 LOC="-DASMV -DASMINF -I." \ |
︙ | ︙ |
Changes to compat/zlib/win32/README-WIN32.txt.
1 2 | ZLIB DATA COMPRESSION LIBRARY | | | 1 2 3 4 5 6 7 8 9 10 | ZLIB DATA COMPRESSION LIBRARY zlib 1.2.11 is a general purpose data compression library. All the code is thread safe. The data format used by the zlib library is described by RFCs (Request for Comments) 1950 to 1952 in the files http://www.ietf.org/rfc/rfc1950.txt (zlib format), rfc1951.txt (deflate format) and rfc1952.txt (gzip format). All functions of the compression library are documented in the file zlib.h (volunteer to write man pages welcome, contact [email protected]). Two compiled |
︙ | ︙ | |||
18 19 20 21 22 23 24 | PLEASE read DLL_FAQ.txt, and the the zlib FAQ http://zlib.net/zlib_faq.html before asking for help. Manifest: | | | 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 | PLEASE read DLL_FAQ.txt, and the the zlib FAQ http://zlib.net/zlib_faq.html before asking for help. Manifest: The package zlib-1.2.11-win32-x86.zip will contain the following files: README-WIN32.txt This document ChangeLog Changes since previous zlib packages DLL_FAQ.txt Frequently asked questions about zlib1.dll zlib.3.pdf Documentation of this library in Adobe Acrobat format example.exe A statically-bound example (using zlib.lib, not the dll) |
︙ | ︙ | |||
68 69 70 71 72 73 74 | zlib specifications were written by L. Peter Deutsch. Thanks to all the people who reported problems and suggested various improvements in zlib; they are too numerous to cite here. Copyright notice: | | | 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 | zlib specifications were written by L. Peter Deutsch. Thanks to all the people who reported problems and suggested various improvements in zlib; they are too numerous to cite here. Copyright notice: (C) 1995-2017 Jean-loup Gailly and Mark Adler This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software. Permission is granted to anyone to use this software for any purpose, including commercial applications, and to alter it and redistribute it |
︙ | ︙ |
Changes to compat/zlib/win32/README.txt.
1 2 3 4 5 6 7 8 | What's here =========== The official ZLIB1.DLL Source ====== | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | What's here =========== The official ZLIB1.DLL Source ====== zlib version 1.2.11 available at http://www.gzip.org/zlib/ Specification and rationale =========================== See the accompanying DLL_FAQ.txt |
︙ | ︙ | |||
33 34 35 36 37 38 39 | i686-w64-mingw32-gcc -c -DASMINF -I. -O3 contrib/inflate86/inffas86.c make -f win32/Makefile.gcc PREFIX=i686-w64-mingw32- LOC="-mms-bitfields -DASMV -DASMINF" OBJA="inffas86.o match.o" Finally, from VS commandline (VS2005 or higher): lib -machine:X86 -name:zlib1.dll -def:zlib.def -out:zdll.lib Copyright notice ================ | | | 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 | i686-w64-mingw32-gcc -c -DASMINF -I. -O3 contrib/inflate86/inffas86.c make -f win32/Makefile.gcc PREFIX=i686-w64-mingw32- LOC="-mms-bitfields -DASMV -DASMINF" OBJA="inffas86.o match.o" Finally, from VS commandline (VS2005 or higher): lib -machine:X86 -name:zlib1.dll -def:zlib.def -out:zdll.lib Copyright notice ================ Copyright (C) 1995-2017 Jean-loup Gailly and Mark Adler This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software. Permission is granted to anyone to use this software for any purpose, including commercial applications, and to alter it and redistribute it |
︙ | ︙ |
Changes to compat/zlib/win32/USAGE.txt.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | Installing ZLIB1.DLL ==================== Copy ZLIB1.DLL to the SYSTEM or the SYSTEM32 directory. Using ZLIB1.DLL with Microsoft Visual C++ ========================================= 1. Install the supplied header files "zlib.h" and "zconf.h" into a directory found in the INCLUDE path list. 2. Install the supplied library file "zdll.lib" into a directory found in the LIB path list. 3. Add "zdll.lib" to your project. Using ZLIB1.DLL with gcc/MinGW ============================== 1. Install the supplied header files "zlib.h" and "zconf.h" into the INCLUDE directory. | > > > | > > > > > | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 | Installing ZLIB1.DLL ==================== Copy ZLIB1.DLL to the SYSTEM or the SYSTEM32 directory. If you want to install the 32-bit dll on a 64-bit machine, use the SysWOW64 directory instead. Using ZLIB1.DLL with Microsoft Visual C++ ========================================= 1. Install the supplied header files "zlib.h" and "zconf.h" into a directory found in the INCLUDE path list. 2. Install the supplied library file "zdll.lib" into a directory found in the LIB path list. 3. Add "zdll.lib" to your project. Using ZLIB1.DLL with gcc/MinGW ============================== 1. Install the supplied header files "zlib.h" and "zconf.h" into the INCLUDE directory. 2. (32-bit): Copy the supplied library file "zdll.lib" to "libzdll.a": cp lib/zdll.lib lib/libzdll.a OR 2'. (64-bit): Copy the supplied library file "libz.dll.a" to "libzdll.a": cp lib/libz.dll.a lib/libzdll.a OR 2'' Build the import library from the supplied "zlib.def": dlltool -D zlib1.dll -d lib/zlib.def -l lib/libzdll.a 3. Install "libzdll.a" into the LIB directory. 4. Add "libzdll.a" to your project, or use the -lzdll option. |
︙ | ︙ |
Changes to compat/zlib/win32/VisualC.txt.
1 2 | To build zlib using the Microsoft Visual C++ environment, | | | 1 2 3 | To build zlib using the Microsoft Visual C++ environment, use the appropriate project from the contrib/vstudio/ directory. |
Changes to compat/zlib/win32/zdll.lib.
cannot compute difference between binary files
Changes to compat/zlib/win32/zlib1.dll.
cannot compute difference between binary files
Changes to compat/zlib/win32/zlib1.rc.
︙ | ︙ | |||
22 23 24 25 26 27 28 | BEGIN BLOCK "040904E4" //language ID = U.S. English, char set = Windows, Multilingual BEGIN VALUE "FileDescription", "zlib data compression library\0" VALUE "FileVersion", ZLIB_VERSION "\0" VALUE "InternalName", "zlib1.dll\0" | | | 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 | BEGIN BLOCK "040904E4" //language ID = U.S. English, char set = Windows, Multilingual BEGIN VALUE "FileDescription", "zlib data compression library\0" VALUE "FileVersion", ZLIB_VERSION "\0" VALUE "InternalName", "zlib1.dll\0" VALUE "LegalCopyright", "(C) 1995-2017 Jean-loup Gailly & Mark Adler\0" VALUE "OriginalFilename", "zlib1.dll\0" VALUE "ProductName", "zlib\0" VALUE "ProductVersion", ZLIB_VERSION "\0" VALUE "Comments", "For more information visit http://www.zlib.net/\0" END END BLOCK "VarFileInfo" |
︙ | ︙ |
Changes to compat/zlib/win64/libz.dll.a.
cannot compute difference between binary files
Changes to compat/zlib/win64/zdll.lib.
cannot compute difference between binary files
Changes to compat/zlib/win64/zlib1.dll.
cannot compute difference between binary files
Changes to compat/zlib/zlib.3.
|
| | | 1 2 3 4 5 6 7 8 | .TH ZLIB 3 "15 Jan 2017" .SH NAME zlib \- compression/decompression library .SH SYNOPSIS [see .I zlib.h for full description] .SH DESCRIPTION |
︙ | ︙ | |||
101 102 103 104 105 106 107 | .IP http://zlib.net/zlib_faq.html .LP before asking for help. Send questions and/or comments to [email protected], or (for the Windows DLL version) to Gilles Vollant ([email protected]). .SH AUTHORS AND LICENSE | | | 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 | .IP http://zlib.net/zlib_faq.html .LP before asking for help. Send questions and/or comments to [email protected], or (for the Windows DLL version) to Gilles Vollant ([email protected]). .SH AUTHORS AND LICENSE Version 1.2.11 .LP Copyright (C) 1995-2017 Jean-loup Gailly and Mark Adler .LP This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software. .LP |
︙ | ︙ |
Changes to compat/zlib/zlib.3.pdf.
cannot compute difference between binary files
Changes to compat/zlib/zlib.h.
1 | /* zlib.h -- interface of the 'zlib' general purpose compression library | | | 1 2 3 4 5 6 7 8 9 | /* zlib.h -- interface of the 'zlib' general purpose compression library version 1.2.11, January 15th, 2017 Copyright (C) 1995-2017 Jean-loup Gailly and Mark Adler This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software. |
︙ | ︙ | |||
33 34 35 36 37 38 39 | #include "zconf.h" #ifdef __cplusplus extern "C" { #endif | | | | | 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 | #include "zconf.h" #ifdef __cplusplus extern "C" { #endif #define ZLIB_VERSION "1.2.11" #define ZLIB_VERNUM 0x12b0 #define ZLIB_VER_MAJOR 1 #define ZLIB_VER_MINOR 2 #define ZLIB_VER_REVISION 11 #define ZLIB_VER_SUBREVISION 0 /* The 'zlib' compression library provides in-memory compression and decompression functions, including integrity checks of the uncompressed data. This version of the library supports only one compression method (deflation) but other algorithms will be added later and will have the same stream |
︙ | ︙ | |||
708 709 710 711 712 713 714 | int strategy)); /* Dynamically update the compression level and compression strategy. The interpretation of level and strategy is as in deflateInit2(). This can be used to switch between compression and straight copy of the input data, or to switch to a different kind of input data requiring a different strategy. If the compression approach (which is a function of the level) or the | > | | | | | 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 | int strategy)); /* Dynamically update the compression level and compression strategy. The interpretation of level and strategy is as in deflateInit2(). This can be used to switch between compression and straight copy of the input data, or to switch to a different kind of input data requiring a different strategy. If the compression approach (which is a function of the level) or the strategy is changed, and if any input has been consumed in a previous deflate() call, then the input available so far is compressed with the old level and strategy using deflate(strm, Z_BLOCK). There are three approaches for the compression levels 0, 1..3, and 4..9 respectively. The new level and strategy will take effect at the next call of deflate(). If a deflate(strm, Z_BLOCK) is performed by deflateParams(), and it does not have enough output space to complete, then the parameter change will not take effect. In this case, deflateParams() can be called again with the same parameters and more output space to try again. In order to assure a change in the parameters on the first try, the |
︙ | ︙ |
Changes to compat/zlib/zutil.c.
1 | /* zutil.c -- target dependent utility functions for the compression library | | | 1 2 3 4 5 6 7 8 9 | /* zutil.c -- target dependent utility functions for the compression library * Copyright (C) 1995-2017 Jean-loup Gailly * For conditions of distribution and use, see copyright notice in zlib.h */ /* @(#) $Id$ */ #include "zutil.h" #ifndef Z_SOLO |
︙ | ︙ |
Changes to doc/Eval.3.
︙ | ︙ | |||
201 202 203 204 205 206 207 | about to be returned from the topmost \fBTcl_EvalObjEx\fR invocation for \fIinterp\fR, it converts the return code to \fBTCL_ERROR\fR and sets \fIinterp\fR's result to an error message indicating that the \fBreturn\fR, \fBbreak\fR, or \fBcontinue\fR command was invoked in an inappropriate place. This means that top-level applications should never see a return code | | | 201 202 203 204 205 206 207 208 209 210 211 | about to be returned from the topmost \fBTcl_EvalObjEx\fR invocation for \fIinterp\fR, it converts the return code to \fBTCL_ERROR\fR and sets \fIinterp\fR's result to an error message indicating that the \fBreturn\fR, \fBbreak\fR, or \fBcontinue\fR command was invoked in an inappropriate place. This means that top-level applications should never see a return code from \fBTcl_EvalObjEx\fR other than \fBTCL_OK\fR or \fBTCL_ERROR\fR. .SH KEYWORDS execute, file, global, result, script, value |
Changes to doc/IntObj.3.
︙ | ︙ | |||
93 94 95 96 97 98 99 | with which values might be exchanged. The C integral types for which Tcl provides value exchange routines are \fBint\fR, \fBlong int\fR, \fBTcl_WideInt\fR, and \fBmp_int\fR. The \fBint\fR and \fBlong int\fR types are provided by the C language standard. The \fBTcl_WideInt\fR type is a typedef defined to be whatever signed integral type covers at least the 64-bit integer range (-9223372036854775808 to 9223372036854775807). Depending on the platform and the C compiler, the actual type might be | | | 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 | with which values might be exchanged. The C integral types for which Tcl provides value exchange routines are \fBint\fR, \fBlong int\fR, \fBTcl_WideInt\fR, and \fBmp_int\fR. The \fBint\fR and \fBlong int\fR types are provided by the C language standard. The \fBTcl_WideInt\fR type is a typedef defined to be whatever signed integral type covers at least the 64-bit integer range (-9223372036854775808 to 9223372036854775807). Depending on the platform and the C compiler, the actual type might be \fBlong int\fR, \fBlong long int\fR, \fB__int64\fR, or something else. The \fBmp_int\fR type is a multiple-precision integer type defined by the LibTomMath multiple-precision integer library. .PP The \fBTcl_NewIntObj\fR, \fBTcl_NewLongObj\fR, \fBTcl_NewWideIntObj\fR, and \fBTcl_NewBignumObj\fR routines each create and return a new Tcl value initialized to the integral value of the argument. The returned Tcl value is unshared. |
︙ | ︙ |
Changes to doc/LinkVar.3.
︙ | ︙ | |||
57 58 59 60 61 62 63 | \fBTCL_LINK_READ_ONLY\fR: .TP \fBTCL_LINK_INT\fR The C variable is of type \fBint\fR. Any value written into the Tcl variable must have a proper integer form acceptable to \fBTcl_GetIntFromObj\fR; attempts to write non-integer values into \fIvarName\fR will be rejected with | | > > | > > | > > | > > | > > | > > | > > | > > | > > | > > | > > | > > | 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 | \fBTCL_LINK_READ_ONLY\fR: .TP \fBTCL_LINK_INT\fR The C variable is of type \fBint\fR. Any value written into the Tcl variable must have a proper integer form acceptable to \fBTcl_GetIntFromObj\fR; attempts to write non-integer values into \fIvarName\fR will be rejected with Tcl errors. Incomplete integer representations (like the empty string, '+', '-' or the hex/octal/binary prefix) are accepted as if they are valid too. .TP \fBTCL_LINK_UINT\fR The C variable is of type \fBunsigned int\fR. Any value written into the Tcl variable must have a proper unsigned integer form acceptable to \fBTcl_GetWideIntFromObj\fR and in the platform's defined range for the \fBunsigned int\fR type; attempts to write non-integer values (or values outside the range) into \fIvarName\fR will be rejected with Tcl errors. Incomplete integer representations (like the empty string, '+', '-' or the hex/octal/binary prefix) are accepted as if they are valid too. .TP \fBTCL_LINK_CHAR\fR The C variable is of type \fBchar\fR. Any value written into the Tcl variable must have a proper integer form acceptable to \fBTcl_GetIntFromObj\fR and be in the range of the \fBchar\fR datatype; attempts to write non-integer or out-of-range values into \fIvarName\fR will be rejected with Tcl errors. Incomplete integer representations (like the empty string, '+', '-' or the hex/octal/binary prefix) are accepted as if they are valid too. .TP \fBTCL_LINK_UCHAR\fR The C variable is of type \fBunsigned char\fR. Any value written into the Tcl variable must have a proper unsigned integer form acceptable to \fBTcl_GetIntFromObj\fR and in the platform's defined range for the \fBunsigned char\fR type; attempts to write non-integer values (or values outside the range) into \fIvarName\fR will be rejected with Tcl errors. Incomplete integer representations (like the empty string, '+', '-' or the hex/octal/binary prefix) are accepted as if they are valid too. .TP \fBTCL_LINK_SHORT\fR The C variable is of type \fBshort\fR. Any value written into the Tcl variable must have a proper integer form acceptable to \fBTcl_GetIntFromObj\fR and be in the range of the \fBshort\fR datatype; attempts to write non-integer or out-of-range values into \fIvarName\fR will be rejected with Tcl errors. Incomplete integer representations (like the empty string, '+', '-' or the hex/octal/binary prefix) are accepted as if they are valid too. .TP \fBTCL_LINK_USHORT\fR The C variable is of type \fBunsigned short\fR. Any value written into the Tcl variable must have a proper unsigned integer form acceptable to \fBTcl_GetIntFromObj\fR and in the platform's defined range for the \fBunsigned short\fR type; attempts to write non-integer values (or values outside the range) into \fIvarName\fR will be rejected with Tcl errors. Incomplete integer representations (like the empty string, '+', '-' or the hex/octal/binary prefix) are accepted as if they are valid too. .TP \fBTCL_LINK_LONG\fR The C variable is of type \fBlong\fR. Any value written into the Tcl variable must have a proper integer form acceptable to \fBTcl_GetLongFromObj\fR; attempts to write non-integer or out-of-range values into \fIvarName\fR will be rejected with Tcl errors. Incomplete integer representations (like the empty string, '+', '-' or the hex/octal/binary prefix) are accepted as if they are valid too. .TP \fBTCL_LINK_ULONG\fR The C variable is of type \fBunsigned long\fR. Any value written into the Tcl variable must have a proper unsigned integer form acceptable to \fBTcl_GetWideIntFromObj\fR and in the platform's defined range for the \fBunsigned long\fR type; attempts to write non-integer values (or values outside the range) into \fIvarName\fR will be rejected with Tcl errors. Incomplete integer representations (like the empty string, '+', '-' or the hex/octal/binary prefix) are accepted as if they are valid too. .TP \fBTCL_LINK_DOUBLE\fR The C variable is of type \fBdouble\fR. Any value written into the Tcl variable must have a proper real form acceptable to \fBTcl_GetDoubleFromObj\fR; attempts to write non-real values into \fIvarName\fR will be rejected with Tcl errors. Incomplete integer or real representations (like the empty string, '.', '+', '-' or the hex/octal/binary prefix) are accepted as if they are valid too. .TP \fBTCL_LINK_FLOAT\fR The C variable is of type \fBfloat\fR. Any value written into the Tcl variable must have a proper real form acceptable to \fBTcl_GetDoubleFromObj\fR and must be within the range acceptable for a \fBfloat\fR; attempts to write non-real values (or values outside the range) into \fIvarName\fR will be rejected with Tcl errors. Incomplete integer or real representations (like the empty string, '.', '+', '-' or the hex/octal/binary prefix) are accepted as if they are valid too. .TP \fBTCL_LINK_WIDE_INT\fR The C variable is of type \fBTcl_WideInt\fR (which is an integer type at least 64-bits wide on all platforms that can support it.) Any value written into the Tcl variable must have a proper integer form acceptable to \fBTcl_GetWideIntFromObj\fR; attempts to write non-integer values into \fIvarName\fR will be rejected with Tcl errors. Incomplete integer representations (like the empty string, '+', '-' or the hex/octal/binary prefix) are accepted as if they are valid too. .TP \fBTCL_LINK_WIDE_UINT\fR The C variable is of type \fBTcl_WideUInt\fR (which is an unsigned integer type at least 64-bits wide on all platforms that can support it.) Any value written into the Tcl variable must have a proper unsigned integer form acceptable to \fBTcl_GetWideIntFromObj\fR (it will be cast to unsigned); .\" FIXME! Use bignums instead. attempts to write non-integer values into \fIvarName\fR will be rejected with Tcl errors. Incomplete integer representations (like the empty string, '+', '-' or the hex/octal/binary prefix) are accepted as if they are valid too. .TP \fBTCL_LINK_BOOLEAN\fR The C variable is of type \fBint\fR. If its value is zero then it will read from Tcl as .QW 0 ; otherwise it will read from Tcl as .QW 1 . |
︙ | ︙ |
Changes to doc/RecEvalObj.3.
︙ | ︙ | |||
28 29 30 31 32 33 34 | the command at global level instead of the current stack level. .BE .SH DESCRIPTION .PP \fBTcl_RecordAndEvalObj\fR is invoked to record a command as an event on the history list and then execute it using \fBTcl_EvalObjEx\fR | < < | 28 29 30 31 32 33 34 35 36 37 38 39 40 41 | the command at global level instead of the current stack level. .BE .SH DESCRIPTION .PP \fBTcl_RecordAndEvalObj\fR is invoked to record a command as an event on the history list and then execute it using \fBTcl_EvalObjEx\fR It returns a completion code such as \fBTCL_OK\fR just like \fBTcl_EvalObjEx\fR, as well as a result value containing additional information (a result value or error message) that can be retrieved using \fBTcl_GetObjResult\fR. If you do not want the command recorded on the history list then you should invoke \fBTcl_EvalObjEx\fR instead of \fBTcl_RecordAndEvalObj\fR. Normally \fBTcl_RecordAndEvalObj\fR is only called with top-level |
︙ | ︙ |
Changes to doc/info.n.
︙ | ︙ | |||
293 294 295 296 297 298 299 | \fBinfo library\fR . Returns the name of the library directory in which standard Tcl scripts are stored. This is actually the value of the \fBtcl_library\fR variable and may be changed by setting \fBtcl_library\fR. .TP | | | 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 | \fBinfo library\fR . Returns the name of the library directory in which standard Tcl scripts are stored. This is actually the value of the \fBtcl_library\fR variable and may be changed by setting \fBtcl_library\fR. .TP \fBinfo loaded \fR?\fIinterp\fR? ?\fIpackage\fR? . Returns the filename loaded as part of \fIpackage\fR. If \fIpackage\fR is not specified, returns a list describing all of the packages that have been loaded into \fIinterp\fR with the \fBload\fR command. Each list element is a sub-list with two elements consisting of the name of the file from which the package was loaded and the name of the package. |
︙ | ︙ |
Changes to doc/lsort.n.
︙ | ︙ | |||
36 37 38 39 40 41 42 | \fB\-dictionary\fR . Use dictionary-style comparison. This is the same as \fB\-ascii\fR except (a) case is ignored except as a tie-breaker and (b) if two strings contain embedded numbers, the numbers compare as integers, not characters. For example, in \fB\-dictionary\fR mode, \fBbigBoy\fR sorts between \fBbigbang\fR and \fBbigboy\fR, and \fBx10y\fR | | > | 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 | \fB\-dictionary\fR . Use dictionary-style comparison. This is the same as \fB\-ascii\fR except (a) case is ignored except as a tie-breaker and (b) if two strings contain embedded numbers, the numbers compare as integers, not characters. For example, in \fB\-dictionary\fR mode, \fBbigBoy\fR sorts between \fBbigbang\fR and \fBbigboy\fR, and \fBx10y\fR sorts between \fBx9y\fR and \fBx11y\fR. Overrides the \fB\-nocase\fR option. .TP \fB\-integer\fR . Convert list elements to integers and use integer comparison. .TP \fB\-real\fR . |
︙ | ︙ |
Changes to doc/re_syntax.n.
︙ | ︙ | |||
289 290 291 292 293 294 295 | and \fB=]\fR is an equivalence class, standing for the sequences of characters of all collating elements equivalent to that one, including itself. (If there are no other equivalent collating elements, the treatment is as if the enclosing delimiters were .QW \fB[.\fR \& and .QW \fB.]\fR .) | | | | | 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 | and \fB=]\fR is an equivalence class, standing for the sequences of characters of all collating elements equivalent to that one, including itself. (If there are no other equivalent collating elements, the treatment is as if the enclosing delimiters were .QW \fB[.\fR \& and .QW \fB.]\fR .) For example, if \fBo\fR and \fB\[^o]\fR are the members of an equivalence class, then .QW \fB[[=o=]]\fR , .QW \fB[[=\[^o]=]]\fR , and .QW \fB[o\[^o]]\fR \& are all synonymous. An equivalence class may not be an endpoint of a range. .RS .PP (\fINote:\fR Tcl implements only the Unicode locale. It does not define any equivalence classes. The examples above are just illustrations.) .RE .SH ESCAPES |
︙ | ︙ |
Changes to generic/tcl.decls.
︙ | ︙ | |||
1055 1056 1057 1058 1059 1060 1061 | int Tcl_EvalObjv(Tcl_Interp *interp, int objc, Tcl_Obj *const objv[], int flags) } declare 293 { int Tcl_EvalObjEx(Tcl_Interp *interp, Tcl_Obj *objPtr, int flags) } declare 294 { | | | 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 | int Tcl_EvalObjv(Tcl_Interp *interp, int objc, Tcl_Obj *const objv[], int flags) } declare 293 { int Tcl_EvalObjEx(Tcl_Interp *interp, Tcl_Obj *objPtr, int flags) } declare 294 { TCL_NORETURN void Tcl_ExitThread(int status) } declare 295 { int Tcl_ExternalToUtf(Tcl_Interp *interp, Tcl_Encoding encoding, const char *src, int srcLen, int flags, Tcl_EncodingState *statePtr, char *dst, int dstLen, int *srcReadPtr, int *dstWrotePtr, int *dstCharsPtr) } |
︙ | ︙ | |||
2325 2326 2327 2328 2329 2330 2331 | } # ----- BASELINE -- FOR -- 8.6.0 ----- # # TIP #456 declare 631 { Tcl_Channel Tcl_OpenTcpServerEx(Tcl_Interp *interp, const char *service, | | | > > > > > | 2325 2326 2327 2328 2329 2330 2331 2332 2333 2334 2335 2336 2337 2338 2339 2340 2341 2342 2343 2344 2345 | } # ----- BASELINE -- FOR -- 8.6.0 ----- # # TIP #456 declare 631 { Tcl_Channel Tcl_OpenTcpServerEx(Tcl_Interp *interp, const char *service, const char *host, unsigned int flags, int backlog, Tcl_TcpAcceptProc *acceptProc, ClientData callbackData) } declare 632 { Tcl_Channel Tcl_OpenTcpClientEx(Tcl_Interp *interp, const char *service, const char *host, const char *myaddr, const char *myservice, unsigned int flags) } # ----- BASELINE -- FOR -- 8.7.0 ----- # ############################################################################## |
︙ | ︙ |
Changes to generic/tcl.h.
︙ | ︙ | |||
37 38 39 40 41 42 43 | * When version numbers change here, must also go into the following files and * update the version numbers: * * library/init.tcl (1 LOC patch) * unix/configure.ac (2 LOC Major, 2 LOC minor, 1 LOC patch) * win/configure.ac (as above) * win/tcl.m4 (not patchlevel) | < | 37 38 39 40 41 42 43 44 45 46 47 48 49 50 | * When version numbers change here, must also go into the following files and * update the version numbers: * * library/init.tcl (1 LOC patch) * unix/configure.ac (2 LOC Major, 2 LOC minor, 1 LOC patch) * win/configure.ac (as above) * win/tcl.m4 (not patchlevel) * README (sections 0 and 2, with and without separator) * macosx/Tcl.pbproj/project.pbxproj (not patchlevel) 1 LOC * macosx/Tcl.pbproj/default.pbxuser (not patchlevel) 1 LOC * macosx/Tcl.xcode/project.pbxproj (not patchlevel) 2 LOC * macosx/Tcl.xcode/default.pbxuser (not patchlevel) 1 LOC * macosx/Tcl-Common.xcconfig (not patchlevel) 1 LOC * win/README (not patchlevel) (sections 0 and 2) |
︙ | ︙ | |||
372 373 374 375 376 377 378 | /* * Define Tcl_WideInt to be a type that is (at least) 64-bits wide, and define * Tcl_WideUInt to be the unsigned variant of that type (assuming that where * we have one, we can have the other.) * * Also defines the following macros: | | | < < < | < | 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 | /* * Define Tcl_WideInt to be a type that is (at least) 64-bits wide, and define * Tcl_WideUInt to be the unsigned variant of that type (assuming that where * we have one, we can have the other.) * * Also defines the following macros: * TCL_WIDE_INT_IS_LONG - if wide ints are really longs (i.e. we're on a * LP64 system such as modern Solaris or Linux ... not including Win64) * Tcl_WideAsLong - forgetful converter from wideInt to long. * Tcl_LongAsWide - sign-extending converter from long to wideInt. * Tcl_WideAsDouble - converter from wideInt to double. * Tcl_DoubleAsWide - converter from double to wideInt. * * The following invariant should hold for any long value 'longVal': * longVal == Tcl_WideAsLong(Tcl_LongAsWide(longVal)) * * Note on converting between Tcl_WideInt and strings. This implementation (in * tclObj.c) depends on the function * sprintf(...,"%" TCL_LL_MODIFIER "d",...). */ #if !defined(TCL_WIDE_INT_TYPE)&&!defined(TCL_WIDE_INT_IS_LONG) # if defined(_WIN32) # define TCL_WIDE_INT_TYPE __int64 # define TCL_LL_MODIFIER "I64" # elif defined(__GNUC__) # define TCL_WIDE_INT_TYPE long long # define TCL_LL_MODIFIER "ll" # else /* ! _WIN32 && ! __GNUC__ */ /* * Don't know what platform it is and configure hasn't discovered what is * going on for us. Try to guess... |
︙ | ︙ | |||
420 421 422 423 424 425 426 | # define TCL_WIDE_INT_TYPE long #endif /* TCL_WIDE_INT_IS_LONG */ typedef TCL_WIDE_INT_TYPE Tcl_WideInt; typedef unsigned TCL_WIDE_INT_TYPE Tcl_WideUInt; #ifdef TCL_WIDE_INT_IS_LONG | < < < < > > | | | | < | 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 | # define TCL_WIDE_INT_TYPE long #endif /* TCL_WIDE_INT_IS_LONG */ typedef TCL_WIDE_INT_TYPE Tcl_WideInt; typedef unsigned TCL_WIDE_INT_TYPE Tcl_WideUInt; #ifdef TCL_WIDE_INT_IS_LONG # ifndef TCL_LL_MODIFIER # define TCL_LL_MODIFIER "l" # endif /* !TCL_LL_MODIFIER */ #else /* TCL_WIDE_INT_IS_LONG */ /* * The next short section of defines are only done when not running on Windows * or some other strange platform. */ # ifndef TCL_LL_MODIFIER # define TCL_LL_MODIFIER "ll" # endif /* !TCL_LL_MODIFIER */ #endif /* TCL_WIDE_INT_IS_LONG */ #define Tcl_WideAsLong(val) ((long)((Tcl_WideInt)(val))) #define Tcl_LongAsWide(val) ((Tcl_WideInt)((long)(val))) #define Tcl_WideAsDouble(val) ((double)((Tcl_WideInt)(val))) #define Tcl_DoubleAsWide(val) ((Tcl_WideInt)((double)(val))) #if defined(_WIN32) # ifdef __BORLANDC__ typedef struct stati64 Tcl_StatBuf; # elif defined(_WIN64) typedef struct __stat64 Tcl_StatBuf; # elif (defined(_MSC_VER) && (_MSC_VER < 1400)) || defined(_USE_32BIT_TIME_T) typedef struct _stati64 Tcl_StatBuf; |
︙ | ︙ | |||
1143 1144 1145 1146 1147 1148 1149 1150 1151 1152 1153 1154 1155 1156 1157 1158 | #define TCL_LINK_STRING 4 #define TCL_LINK_WIDE_INT 5 #define TCL_LINK_CHAR 6 #define TCL_LINK_UCHAR 7 #define TCL_LINK_SHORT 8 #define TCL_LINK_USHORT 9 #define TCL_LINK_UINT 10 #define TCL_LINK_LONG 11 #define TCL_LINK_ULONG 12 #define TCL_LINK_FLOAT 13 #define TCL_LINK_WIDE_UINT 14 #define TCL_LINK_READ_ONLY 0x80 /* *---------------------------------------------------------------------------- * Forward declarations of Tcl_HashTable and related types. | > > > > > | 1135 1136 1137 1138 1139 1140 1141 1142 1143 1144 1145 1146 1147 1148 1149 1150 1151 1152 1153 1154 1155 | #define TCL_LINK_STRING 4 #define TCL_LINK_WIDE_INT 5 #define TCL_LINK_CHAR 6 #define TCL_LINK_UCHAR 7 #define TCL_LINK_SHORT 8 #define TCL_LINK_USHORT 9 #define TCL_LINK_UINT 10 #if defined(TCL_WIDE_INT_IS_LONG) || defined(_WIN32) || defined(__CYGWIN__) #define TCL_LINK_LONG ((sizeof(long) != sizeof(int)) ? TCL_LINK_WIDE_INT : TCL_LINK_INT) #define TCL_LINK_ULONG ((sizeof(long) != sizeof(int)) ? TCL_LINK_WIDE_UINT : TCL_LINK_UINT) #else #define TCL_LINK_LONG 11 #define TCL_LINK_ULONG 12 #endif #define TCL_LINK_FLOAT 13 #define TCL_LINK_WIDE_UINT 14 #define TCL_LINK_READ_ONLY 0x80 /* *---------------------------------------------------------------------------- * Forward declarations of Tcl_HashTable and related types. |
︙ | ︙ | |||
2530 2531 2532 2533 2534 2535 2536 | #ifdef TCL_MEM_DEBUG # undef Tcl_NewBignumObj # define Tcl_NewBignumObj(val) \ Tcl_DbNewBignumObj(val, __FILE__, __LINE__) # undef Tcl_NewBooleanObj # define Tcl_NewBooleanObj(val) \ | | | 2527 2528 2529 2530 2531 2532 2533 2534 2535 2536 2537 2538 2539 2540 2541 | #ifdef TCL_MEM_DEBUG # undef Tcl_NewBignumObj # define Tcl_NewBignumObj(val) \ Tcl_DbNewBignumObj(val, __FILE__, __LINE__) # undef Tcl_NewBooleanObj # define Tcl_NewBooleanObj(val) \ Tcl_DbNewLongObj((val)!=0, __FILE__, __LINE__) # undef Tcl_NewByteArrayObj # define Tcl_NewByteArrayObj(bytes, len) \ Tcl_DbNewByteArrayObj(bytes, len, __FILE__, __LINE__) # undef Tcl_NewDoubleObj # define Tcl_NewDoubleObj(val) \ Tcl_DbNewDoubleObj(val, __FILE__, __LINE__) # undef Tcl_NewIntObj |
︙ | ︙ |
Changes to generic/tclAssembly.c.
︙ | ︙ | |||
133 134 135 136 137 138 139 140 141 142 143 144 145 146 | typedef enum TalInstType { ASSEM_1BYTE, /* Fixed arity, 1-byte instruction */ ASSEM_BEGIN_CATCH, /* Begin catch: one 4-byte jump offset to be * converted to appropriate exception * ranges */ ASSEM_BOOL, /* One Boolean operand */ ASSEM_BOOL_LVT4, /* One Boolean, one 4-byte LVT ref. */ ASSEM_CONCAT1, /* 1-byte unsigned-integer operand count, must * be strictly positive, consumes N, produces * 1 */ ASSEM_DICT_GET, /* 'dict get' and related - consumes N+1 * operands, produces 1, N > 0 */ ASSEM_DICT_SET, /* specifies key count and LVT index, consumes * N+1 operands, produces 1, N > 0 */ | > > | 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 | typedef enum TalInstType { ASSEM_1BYTE, /* Fixed arity, 1-byte instruction */ ASSEM_BEGIN_CATCH, /* Begin catch: one 4-byte jump offset to be * converted to appropriate exception * ranges */ ASSEM_BOOL, /* One Boolean operand */ ASSEM_BOOL_LVT4, /* One Boolean, one 4-byte LVT ref. */ ASSEM_CLOCK_READ, /* 1-byte unsigned-integer case number, in the * range 0-3 */ ASSEM_CONCAT1, /* 1-byte unsigned-integer operand count, must * be strictly positive, consumes N, produces * 1 */ ASSEM_DICT_GET, /* 'dict get' and related - consumes N+1 * operands, produces 1, N > 0 */ ASSEM_DICT_SET, /* specifies key count and LVT index, consumes * N+1 operands, produces 1, N > 0 */ |
︙ | ︙ | |||
346 347 348 349 350 351 352 353 354 355 356 357 358 359 | {"arrayMakeStk", ASSEM_1BYTE, INST_ARRAY_MAKE_STK, 1, 0}, {"beginCatch", ASSEM_BEGIN_CATCH, INST_BEGIN_CATCH4, 0, 0}, {"bitand", ASSEM_1BYTE, INST_BITAND, 2, 1}, {"bitnot", ASSEM_1BYTE, INST_BITNOT, 1, 1}, {"bitor", ASSEM_1BYTE, INST_BITOR, 2, 1}, {"bitxor", ASSEM_1BYTE, INST_BITXOR, 2, 1}, {"concat", ASSEM_CONCAT1, INST_STR_CONCAT1, INT_MIN,1}, {"concatStk", ASSEM_LIST, INST_CONCAT_STK, INT_MIN,1}, {"coroName", ASSEM_1BYTE, INST_COROUTINE_NAME, 0, 1}, {"currentNamespace",ASSEM_1BYTE, INST_NS_CURRENT, 0, 1}, {"dictAppend", ASSEM_LVT4, INST_DICT_APPEND, 2, 1}, {"dictExists", ASSEM_DICT_GET, INST_DICT_EXISTS, INT_MIN,1}, {"dictExpand", ASSEM_1BYTE, INST_DICT_EXPAND, 3, 1}, | > | 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 | {"arrayMakeStk", ASSEM_1BYTE, INST_ARRAY_MAKE_STK, 1, 0}, {"beginCatch", ASSEM_BEGIN_CATCH, INST_BEGIN_CATCH4, 0, 0}, {"bitand", ASSEM_1BYTE, INST_BITAND, 2, 1}, {"bitnot", ASSEM_1BYTE, INST_BITNOT, 1, 1}, {"bitor", ASSEM_1BYTE, INST_BITOR, 2, 1}, {"bitxor", ASSEM_1BYTE, INST_BITXOR, 2, 1}, {"clockRead", ASSEM_CLOCK_READ, INST_CLOCK_READ, 0, 1}, {"concat", ASSEM_CONCAT1, INST_STR_CONCAT1, INT_MIN,1}, {"concatStk", ASSEM_LIST, INST_CONCAT_STK, INT_MIN,1}, {"coroName", ASSEM_1BYTE, INST_COROUTINE_NAME, 0, 1}, {"currentNamespace",ASSEM_1BYTE, INST_NS_CURRENT, 0, 1}, {"dictAppend", ASSEM_LVT4, INST_DICT_APPEND, 2, 1}, {"dictExists", ASSEM_DICT_GET, INST_DICT_EXISTS, INT_MIN,1}, {"dictExpand", ASSEM_1BYTE, INST_DICT_EXPAND, 3, 1}, |
︙ | ︙ | |||
1356 1357 1358 1359 1360 1361 1362 1363 1364 1365 1366 1367 1368 1369 | localVar = FindLocalVar(assemEnvPtr, &tokenPtr); if (localVar < 0) { goto cleanup; } BBEmitInstInt1(assemEnvPtr, tblIdx, opnd, 0); TclEmitInt4(localVar, envPtr); break; case ASSEM_CONCAT1: if (parsePtr->numWords != 2) { Tcl_WrongNumArgs(interp, 1, &instNameObj, "imm8"); goto cleanup; } if (GetIntegerOperand(assemEnvPtr, &tokenPtr, &opnd) != TCL_OK | > > > > > > > > > > > > > > > > > | 1359 1360 1361 1362 1363 1364 1365 1366 1367 1368 1369 1370 1371 1372 1373 1374 1375 1376 1377 1378 1379 1380 1381 1382 1383 1384 1385 1386 1387 1388 1389 | localVar = FindLocalVar(assemEnvPtr, &tokenPtr); if (localVar < 0) { goto cleanup; } BBEmitInstInt1(assemEnvPtr, tblIdx, opnd, 0); TclEmitInt4(localVar, envPtr); break; case ASSEM_CLOCK_READ: if (parsePtr->numWords != 2) { Tcl_WrongNumArgs(interp, 1, &instNameObj, "imm8"); goto cleanup; } if (GetIntegerOperand(assemEnvPtr, &tokenPtr, &opnd) != TCL_OK) { goto cleanup; } if (opnd < 0 || opnd > 3) { Tcl_SetObjResult(interp, Tcl_NewStringObj("operand must be [0..3]", -1)); Tcl_SetErrorCode(interp, "TCL", "ASSEM", "OPERAND<0,>3", NULL); goto cleanup; } BBEmitInstInt1(assemEnvPtr, tblIdx, opnd, opnd); break; case ASSEM_CONCAT1: if (parsePtr->numWords != 2) { Tcl_WrongNumArgs(interp, 1, &instNameObj, "imm8"); goto cleanup; } if (GetIntegerOperand(assemEnvPtr, &tokenPtr, &opnd) != TCL_OK |
︙ | ︙ | |||
4242 4243 4244 4245 4246 4247 4248 | Tcl_AddErrorInfo(interp, "\n in assembly code between lines "); lineNo = Tcl_NewIntObj(bbPtr->startLine); Tcl_IncrRefCount(lineNo); Tcl_AppendObjToErrorInfo(interp, lineNo); Tcl_AddErrorInfo(interp, " and "); if (bbPtr->successor1 != NULL) { | | | 4262 4263 4264 4265 4266 4267 4268 4269 4270 4271 4272 4273 4274 4275 4276 | Tcl_AddErrorInfo(interp, "\n in assembly code between lines "); lineNo = Tcl_NewIntObj(bbPtr->startLine); Tcl_IncrRefCount(lineNo); Tcl_AppendObjToErrorInfo(interp, lineNo); Tcl_AddErrorInfo(interp, " and "); if (bbPtr->successor1 != NULL) { TclSetLongObj(lineNo, bbPtr->successor1->startLine); Tcl_AppendObjToErrorInfo(interp, lineNo); } else { Tcl_AddErrorInfo(interp, "end of assembly code"); } Tcl_DecrRefCount(lineNo); } |
︙ | ︙ |
Changes to generic/tclBasic.c.
︙ | ︙ | |||
199 200 201 202 203 204 205 | /* * Commands in the generic core. */ {"append", Tcl_AppendObjCmd, TclCompileAppendCmd, NULL, CMD_IS_SAFE}, {"apply", Tcl_ApplyObjCmd, NULL, TclNRApplyObjCmd, CMD_IS_SAFE}, {"break", Tcl_BreakObjCmd, TclCompileBreakCmd, NULL, CMD_IS_SAFE}, | | | 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 | /* * Commands in the generic core. */ {"append", Tcl_AppendObjCmd, TclCompileAppendCmd, NULL, CMD_IS_SAFE}, {"apply", Tcl_ApplyObjCmd, NULL, TclNRApplyObjCmd, CMD_IS_SAFE}, {"break", Tcl_BreakObjCmd, TclCompileBreakCmd, NULL, CMD_IS_SAFE}, #ifndef TCL_NO_DEPRECATED {"case", Tcl_CaseObjCmd, NULL, NULL, CMD_IS_SAFE}, #endif {"catch", Tcl_CatchObjCmd, TclCompileCatchCmd, TclNRCatchObjCmd, CMD_IS_SAFE}, {"concat", Tcl_ConcatObjCmd, TclCompileConcatCmd, NULL, CMD_IS_SAFE}, {"continue", Tcl_ContinueObjCmd, TclCompileContinueCmd, NULL, CMD_IS_SAFE}, {"coroutine", NULL, NULL, TclNRCoroutineObjCmd, CMD_IS_SAFE}, {"error", Tcl_ErrorObjCmd, TclCompileErrorCmd, NULL, CMD_IS_SAFE}, |
︙ | ︙ | |||
261 262 263 264 265 266 267 | * Commands in the OS-interface. Note that many of these are unsafe. */ {"after", Tcl_AfterObjCmd, NULL, NULL, CMD_IS_SAFE}, {"cd", Tcl_CdObjCmd, NULL, NULL, 0}, {"close", Tcl_CloseObjCmd, NULL, NULL, CMD_IS_SAFE}, {"eof", Tcl_EofObjCmd, NULL, NULL, CMD_IS_SAFE}, | < | 261 262 263 264 265 266 267 268 269 270 271 272 273 274 | * Commands in the OS-interface. Note that many of these are unsafe. */ {"after", Tcl_AfterObjCmd, NULL, NULL, CMD_IS_SAFE}, {"cd", Tcl_CdObjCmd, NULL, NULL, 0}, {"close", Tcl_CloseObjCmd, NULL, NULL, CMD_IS_SAFE}, {"eof", Tcl_EofObjCmd, NULL, NULL, CMD_IS_SAFE}, {"exec", Tcl_ExecObjCmd, NULL, NULL, 0}, {"exit", Tcl_ExitObjCmd, NULL, NULL, 0}, {"fblocked", Tcl_FblockedObjCmd, NULL, NULL, CMD_IS_SAFE}, {"fconfigure", Tcl_FconfigureObjCmd, NULL, NULL, 0}, {"fcopy", Tcl_FcopyObjCmd, NULL, NULL, CMD_IS_SAFE}, {"fileevent", Tcl_FileEventObjCmd, NULL, NULL, CMD_IS_SAFE}, {"flush", Tcl_FlushObjCmd, NULL, NULL, CMD_IS_SAFE}, |
︙ | ︙ | |||
507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 | * (whose name is ""; an alias is "::"). This also initializes the Tcl * object type table and other object management code. */ iPtr = ckalloc(sizeof(Interp)); interp = (Tcl_Interp *) iPtr; iPtr->result = iPtr->resultSpace; iPtr->freeProc = NULL; iPtr->errorLine = 0; iPtr->objResultPtr = Tcl_NewObj(); Tcl_IncrRefCount(iPtr->objResultPtr); iPtr->handle = TclHandleCreate(iPtr); iPtr->globalNsPtr = NULL; iPtr->hiddenCmdTablePtr = NULL; | > > > > | 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 | * (whose name is ""; an alias is "::"). This also initializes the Tcl * object type table and other object management code. */ iPtr = ckalloc(sizeof(Interp)); interp = (Tcl_Interp *) iPtr; #ifdef TCL_NO_DEPRECATED iPtr->result = &tclEmptyString; #else iPtr->result = iPtr->resultSpace; #endif iPtr->freeProc = NULL; iPtr->errorLine = 0; iPtr->objResultPtr = Tcl_NewObj(); Tcl_IncrRefCount(iPtr->objResultPtr); iPtr->handle = TclHandleCreate(iPtr); iPtr->globalNsPtr = NULL; iPtr->hiddenCmdTablePtr = NULL; |
︙ | ︙ | |||
567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 | Tcl_IncrRefCount(iPtr->ecVar); iPtr->returnLevel = 1; iPtr->returnCode = TCL_OK; iPtr->rootFramePtr = NULL; /* Initialise as soon as :: is available */ iPtr->lookupNsPtr = NULL; iPtr->appendResult = NULL; iPtr->appendAvl = 0; iPtr->appendUsed = 0; Tcl_InitHashTable(&iPtr->packageTable, TCL_STRING_KEYS); iPtr->packageUnknown = NULL; /* TIP #268 */ #if (TCL_RELEASE_LEVEL == TCL_FINAL_RELEASE) if (getenv("TCL_PKG_PREFER_LATEST") == NULL) { | > > | 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 | Tcl_IncrRefCount(iPtr->ecVar); iPtr->returnLevel = 1; iPtr->returnCode = TCL_OK; iPtr->rootFramePtr = NULL; /* Initialise as soon as :: is available */ iPtr->lookupNsPtr = NULL; #ifndef TCL_NO_DEPRECATED iPtr->appendResult = NULL; iPtr->appendAvl = 0; iPtr->appendUsed = 0; #endif Tcl_InitHashTable(&iPtr->packageTable, TCL_STRING_KEYS); iPtr->packageUnknown = NULL; /* TIP #268 */ #if (TCL_RELEASE_LEVEL == TCL_FINAL_RELEASE) if (getenv("TCL_PKG_PREFER_LATEST") == NULL) { |
︙ | ︙ | |||
599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 | iPtr->activeCmdTracePtr = NULL; iPtr->activeInterpTracePtr = NULL; iPtr->assocData = NULL; iPtr->execEnvPtr = NULL; /* Set after namespaces initialized. */ iPtr->emptyObjPtr = Tcl_NewObj(); /* Another empty object. */ Tcl_IncrRefCount(iPtr->emptyObjPtr); iPtr->resultSpace[0] = 0; iPtr->threadId = Tcl_GetCurrentThread(); /* TIP #378 */ #ifdef TCL_INTERP_DEBUG_FRAME iPtr->flags |= INTERP_DEBUG_FRAME; #else if (getenv("TCL_INTERP_DEBUG_FRAME") != NULL) { | > > | 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 | iPtr->activeCmdTracePtr = NULL; iPtr->activeInterpTracePtr = NULL; iPtr->assocData = NULL; iPtr->execEnvPtr = NULL; /* Set after namespaces initialized. */ iPtr->emptyObjPtr = Tcl_NewObj(); /* Another empty object. */ Tcl_IncrRefCount(iPtr->emptyObjPtr); #ifndef TCL_NO_DEPRECATED iPtr->resultSpace[0] = 0; #endif iPtr->threadId = Tcl_GetCurrentThread(); /* TIP #378 */ #ifdef TCL_INTERP_DEBUG_FRAME iPtr->flags |= INTERP_DEBUG_FRAME; #else if (getenv("TCL_INTERP_DEBUG_FRAME") != NULL) { |
︙ | ︙ | |||
786 787 788 789 790 791 792 | cmdPtr->tracePtr = NULL; cmdPtr->nreProc = cmdInfoPtr->nreProc; Tcl_SetHashValue(hPtr, cmdPtr); } } /* | | | | | > | 793 794 795 796 797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 812 813 814 815 816 817 | cmdPtr->tracePtr = NULL; cmdPtr->nreProc = cmdInfoPtr->nreProc; Tcl_SetHashValue(hPtr, cmdPtr); } } /* * Create the "array", "binary", "chan", "clock", "dict", "encoding", * "file", "info", "namespace" and "string" ensembles. Note that all these * commands (and their subcommands that are not present in the global * namespace) are wholly safe *except* for "clock", "encoding" and "file". */ TclInitArrayCmd(interp); TclInitBinaryCmd(interp); TclInitChanCmd(interp); TclInitDictCmd(interp); TclInitEncodingCmd(interp); TclInitFileCmd(interp); TclInitInfoCmd(interp); TclInitNamespaceCmd(interp); TclInitStringCmd(interp); TclInitPrefixCmd(interp); /* |
︙ | ︙ | |||
1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 | return TCL_ERROR; } for (cmdInfoPtr = builtInCmds; cmdInfoPtr->name != NULL; cmdInfoPtr++) { if (!(cmdInfoPtr->flags & CMD_IS_SAFE)) { Tcl_HideCommand(interp, cmdInfoPtr->name, cmdInfoPtr->name); } } TclMakeFileCommandSafe(interp); /* Ugh! */ return TCL_OK; } /* *-------------------------------------------------------------- * | > | 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 | return TCL_ERROR; } for (cmdInfoPtr = builtInCmds; cmdInfoPtr->name != NULL; cmdInfoPtr++) { if (!(cmdInfoPtr->flags & CMD_IS_SAFE)) { Tcl_HideCommand(interp, cmdInfoPtr->name, cmdInfoPtr->name); } } TclMakeEncodingCommandSafe(interp); /* Ugh! */ TclMakeFileCommandSafe(interp); /* Ugh! */ return TCL_OK; } /* *-------------------------------------------------------------- * |
︙ | ︙ | |||
1530 1531 1532 1533 1534 1535 1536 1537 1538 1539 1540 1541 1542 1543 1544 1545 1546 1547 | Tcl_DecrRefCount(iPtr->upLiteral); Tcl_DecrRefCount(iPtr->callLiteral); Tcl_DecrRefCount(iPtr->innerLiteral); Tcl_DecrRefCount(iPtr->innerContext); if (iPtr->returnOpts) { Tcl_DecrRefCount(iPtr->returnOpts); } if (iPtr->appendResult != NULL) { ckfree(iPtr->appendResult); iPtr->appendResult = NULL; } TclFreePackageInfo(iPtr); while (iPtr->tracePtr != NULL) { Tcl_DeleteTrace((Tcl_Interp *) iPtr, (Tcl_Trace) iPtr->tracePtr); } if (iPtr->execEnvPtr != NULL) { TclDeleteExecEnv(iPtr->execEnvPtr); } | > > | 1539 1540 1541 1542 1543 1544 1545 1546 1547 1548 1549 1550 1551 1552 1553 1554 1555 1556 1557 1558 | Tcl_DecrRefCount(iPtr->upLiteral); Tcl_DecrRefCount(iPtr->callLiteral); Tcl_DecrRefCount(iPtr->innerLiteral); Tcl_DecrRefCount(iPtr->innerContext); if (iPtr->returnOpts) { Tcl_DecrRefCount(iPtr->returnOpts); } #ifndef TCL_NO_DEPRECATED if (iPtr->appendResult != NULL) { ckfree(iPtr->appendResult); iPtr->appendResult = NULL; } #endif TclFreePackageInfo(iPtr); while (iPtr->tracePtr != NULL) { Tcl_DeleteTrace((Tcl_Interp *) iPtr, (Tcl_Trace) iPtr->tracePtr); } if (iPtr->execEnvPtr != NULL) { TclDeleteExecEnv(iPtr->execEnvPtr); } |
︙ | ︙ | |||
4701 4702 4703 4704 4705 4706 4707 | Command **cmdPtrPtr, Tcl_Obj *commandPtr, int objc, Tcl_Obj *const objv[]) { Interp *iPtr = (Interp *) interp; Command *cmdPtr = *cmdPtrPtr; | | | 4712 4713 4714 4715 4716 4717 4718 4719 4720 4721 4722 4723 4724 4725 4726 | Command **cmdPtrPtr, Tcl_Obj *commandPtr, int objc, Tcl_Obj *const objv[]) { Interp *iPtr = (Interp *) interp; Command *cmdPtr = *cmdPtrPtr; size_t newEpoch, cmdEpoch = cmdPtr->cmdEpoch; int length, traceCode = TCL_OK; const char *command = TclGetStringFromObj(commandPtr, &length); /* * Call trace functions. * Execute any command or execution traces. Note that we bump up the * command's reference count for the duration of the calling of the |
︙ | ︙ | |||
5846 5847 5848 5849 5850 5851 5852 5853 5854 5855 5856 5857 5858 5859 | * * Side effects: * Can be almost arbitrary, depending on the commands in the script. * *---------------------------------------------------------------------- */ #undef Tcl_Eval int Tcl_Eval( Tcl_Interp *interp, /* Token for command interpreter (returned by * previous call to Tcl_CreateInterp). */ const char *script) /* Pointer to TCL command to execute. */ { | > | 5857 5858 5859 5860 5861 5862 5863 5864 5865 5866 5867 5868 5869 5870 5871 | * * Side effects: * Can be almost arbitrary, depending on the commands in the script. * *---------------------------------------------------------------------- */ #ifndef TCL_NO_DEPRECATED #undef Tcl_Eval int Tcl_Eval( Tcl_Interp *interp, /* Token for command interpreter (returned by * previous call to Tcl_CreateInterp). */ const char *script) /* Pointer to TCL command to execute. */ { |
︙ | ︙ | |||
5898 5899 5900 5901 5902 5903 5904 5905 5906 5907 5908 5909 5910 5911 | int Tcl_GlobalEvalObj( Tcl_Interp *interp, Tcl_Obj *objPtr) { return Tcl_EvalObjEx(interp, objPtr, TCL_EVAL_GLOBAL); } /* *---------------------------------------------------------------------- * * Tcl_EvalObjEx, TclEvalObjEx -- * * Execute Tcl commands stored in a Tcl object. These commands are | > | 5910 5911 5912 5913 5914 5915 5916 5917 5918 5919 5920 5921 5922 5923 5924 | int Tcl_GlobalEvalObj( Tcl_Interp *interp, Tcl_Obj *objPtr) { return Tcl_EvalObjEx(interp, objPtr, TCL_EVAL_GLOBAL); } #endif /* TCL_NO_DEPRECATED */ /* *---------------------------------------------------------------------- * * Tcl_EvalObjEx, TclEvalObjEx -- * * Execute Tcl commands stored in a Tcl object. These commands are |
︙ | ︙ | |||
6051 6052 6053 6054 6055 6056 6057 | flags |= TCL_EVAL_SOURCE_IN_FRAME; } TclMarkTailcall(interp); TclNRAddCallback(interp, TEOEx_ListCallback, listPtr, eoFramePtr, objPtr, NULL); | | | 6064 6065 6066 6067 6068 6069 6070 6071 6072 6073 6074 6075 6076 6077 6078 | flags |= TCL_EVAL_SOURCE_IN_FRAME; } TclMarkTailcall(interp); TclNRAddCallback(interp, TEOEx_ListCallback, listPtr, eoFramePtr, objPtr, NULL); TclListObjGetElements(NULL, listPtr, &objc, &objv); return TclNREvalObjv(interp, objc, objv, flags, NULL); } if (!(flags & TCL_EVAL_DIRECT)) { /* * Let the compiler/engine subsystem do the evaluation. * |
︙ | ︙ | |||
6698 6699 6700 6701 6702 6703 6704 | #undef Tcl_AddObjErrorInfo void Tcl_AppendObjToErrorInfo( Tcl_Interp *interp, /* Interpreter to which error information * pertains. */ Tcl_Obj *objPtr) /* Message to record. */ { | < | | | 6711 6712 6713 6714 6715 6716 6717 6718 6719 6720 6721 6722 6723 6724 6725 6726 6727 6728 | #undef Tcl_AddObjErrorInfo void Tcl_AppendObjToErrorInfo( Tcl_Interp *interp, /* Interpreter to which error information * pertains. */ Tcl_Obj *objPtr) /* Message to record. */ { const char *message = TclGetString(objPtr); Tcl_IncrRefCount(objPtr); Tcl_AddObjErrorInfo(interp, message, objPtr->length); Tcl_DecrRefCount(objPtr); } /* *---------------------------------------------------------------------- * * Tcl_AddErrorInfo -- |
︙ | ︙ | |||
6725 6726 6727 6728 6729 6730 6731 6732 6733 6734 6735 6736 6737 6738 6739 6740 6741 6742 6743 6744 6745 6746 6747 | * The contents of message are appended to the errorInfo field. If we are * just starting to log an error, errorInfo is initialized from the error * message in the interpreter's result. * *---------------------------------------------------------------------- */ #undef Tcl_AddErrorInfo void Tcl_AddErrorInfo( Tcl_Interp *interp, /* Interpreter to which error information * pertains. */ const char *message) /* Message to record. */ { Tcl_AddObjErrorInfo(interp, message, -1); } /* *---------------------------------------------------------------------- * * Tcl_AddObjErrorInfo -- * * Add information to the errorInfo field that describes the current | > > | 6737 6738 6739 6740 6741 6742 6743 6744 6745 6746 6747 6748 6749 6750 6751 6752 6753 6754 6755 6756 6757 6758 6759 6760 6761 | * The contents of message are appended to the errorInfo field. If we are * just starting to log an error, errorInfo is initialized from the error * message in the interpreter's result. * *---------------------------------------------------------------------- */ #ifndef TCL_NO_DEPRECATED #undef Tcl_AddErrorInfo void Tcl_AddErrorInfo( Tcl_Interp *interp, /* Interpreter to which error information * pertains. */ const char *message) /* Message to record. */ { Tcl_AddObjErrorInfo(interp, message, -1); } #endif /* TCL_NO_DEPRECATED */ /* *---------------------------------------------------------------------- * * Tcl_AddObjErrorInfo -- * * Add information to the errorInfo field that describes the current |
︙ | ︙ | |||
6906 6907 6908 6909 6910 6911 6912 6913 6914 6915 6916 6917 6918 6919 6920 6921 6922 6923 6924 6925 6926 6927 6928 6929 6930 6931 6932 6933 6934 6935 6936 | * The command string is executed in interp, and the execution is carried * out in the variable context of global level (no functions active), * just as if an "uplevel #0" command were being executed. * *---------------------------------------------------------------------- */ #undef Tcl_GlobalEval int Tcl_GlobalEval( Tcl_Interp *interp, /* Interpreter in which to evaluate * command. */ const char *command) /* Command to evaluate. */ { register Interp *iPtr = (Interp *) interp; int result; CallFrame *savedVarFramePtr; savedVarFramePtr = iPtr->varFramePtr; iPtr->varFramePtr = iPtr->rootFramePtr; result = Tcl_EvalEx(interp, command, -1, 0); iPtr->varFramePtr = savedVarFramePtr; return result; } /* *---------------------------------------------------------------------- * * Tcl_SetRecursionLimit -- * * Set the maximum number of recursive calls that may be active for an | > > | 6920 6921 6922 6923 6924 6925 6926 6927 6928 6929 6930 6931 6932 6933 6934 6935 6936 6937 6938 6939 6940 6941 6942 6943 6944 6945 6946 6947 6948 6949 6950 6951 6952 | * The command string is executed in interp, and the execution is carried * out in the variable context of global level (no functions active), * just as if an "uplevel #0" command were being executed. * *---------------------------------------------------------------------- */ #ifndef TCL_NO_DEPRECATED #undef Tcl_GlobalEval int Tcl_GlobalEval( Tcl_Interp *interp, /* Interpreter in which to evaluate * command. */ const char *command) /* Command to evaluate. */ { register Interp *iPtr = (Interp *) interp; int result; CallFrame *savedVarFramePtr; savedVarFramePtr = iPtr->varFramePtr; iPtr->varFramePtr = iPtr->rootFramePtr; result = Tcl_EvalEx(interp, command, -1, 0); iPtr->varFramePtr = savedVarFramePtr; return result; } #endif /* TCL_NO_DEPRECATED */ /* *---------------------------------------------------------------------- * * Tcl_SetRecursionLimit -- * * Set the maximum number of recursive calls that may be active for an |
︙ | ︙ |
Changes to generic/tclCkalloc.c.
︙ | ︙ | |||
85 86 87 88 89 90 91 | * mem_header. It is used to get back to the header pointer from the body * pointer that's used by clients. */ #define BODY_OFFSET \ ((size_t) (&((struct mem_header *) 0)->body)) | | | | | | | | 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 | * mem_header. It is used to get back to the header pointer from the body * pointer that's used by clients. */ #define BODY_OFFSET \ ((size_t) (&((struct mem_header *) 0)->body)) static unsigned int total_mallocs = 0; static unsigned int total_frees = 0; static size_t current_bytes_malloced = 0; static size_t maximum_bytes_malloced = 0; static unsigned int current_malloc_packets = 0; static unsigned int maximum_malloc_packets = 0; static unsigned int break_on_malloc = 0; static unsigned int trace_on_at_malloc = 0; static int alloc_tracing = FALSE; static int init_malloced_bodies = TRUE; #ifdef MEM_VALIDATE static int validate_memory = TRUE; #else static int validate_memory = FALSE; #endif |
︙ | ︙ | |||
180 181 182 183 184 185 186 | { char buf[1024]; if (clientData == NULL) { return 0; } sprintf(buf, | | | | | | | | | | 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 | { char buf[1024]; if (clientData == NULL) { return 0; } sprintf(buf, "total mallocs %10u\n" "total frees %10u\n" "current packets allocated %10u\n" "current bytes allocated %10" TCL_LL_MODIFIER "u\n" "maximum packets allocated %10u\n" "maximum bytes allocated %10" TCL_LL_MODIFIER "u\n", total_mallocs, total_frees, current_malloc_packets, (Tcl_WideInt)current_bytes_malloced, maximum_malloc_packets, (Tcl_WideInt)maximum_bytes_malloced); if (flags == 0) { fprintf((FILE *)clientData, "%s", buf); } else { /* Assume objPtr to append to */ Tcl_AppendToObj((Tcl_Obj *) clientData, buf, -1); } return 1; |
︙ | ︙ | |||
355 356 357 358 359 360 361 | return TCL_ERROR; } } Tcl_MutexLock(ckallocMutexPtr); for (memScanP = allocHead; memScanP != NULL; memScanP = memScanP->flink) { address = &memScanP->body[0]; | | < | | 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 | return TCL_ERROR; } } Tcl_MutexLock(ckallocMutexPtr); for (memScanP = allocHead; memScanP != NULL; memScanP = memScanP->flink) { address = &memScanP->body[0]; fprintf(fileP, "%p - %p %" TCL_LL_MODIFIER "d @ %s %d %s", address, address + memScanP->length - 1, (Tcl_WideInt)memScanP->length, memScanP->file, memScanP->line, (memScanP->tagPtr == NULL) ? "" : memScanP->tagPtr->string); (void) fputc('\n', fileP); } Tcl_MutexUnlock(ckallocMutexPtr); if (fileP != stderr) { |
︙ | ︙ | |||
446 447 448 449 450 451 452 | allocHead->blink = result; } allocHead = result; total_mallocs++; if (trace_on_at_malloc && (total_mallocs >= trace_on_at_malloc)) { (void) fflush(stdout); | | | | 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 | allocHead->blink = result; } allocHead = result; total_mallocs++; if (trace_on_at_malloc && (total_mallocs >= trace_on_at_malloc)) { (void) fflush(stdout); fprintf(stderr, "reached malloc trace enable point (%u)\n", total_mallocs); fflush(stderr); alloc_tracing = TRUE; trace_on_at_malloc = 0; } if (alloc_tracing) { fprintf(stderr,"ckalloc %p %u %s %d\n", result->body, size, file, line); } if (break_on_malloc && (total_mallocs >= break_on_malloc)) { break_on_malloc = 0; (void) fflush(stdout); Tcl_Panic("reached malloc break limit (%u)", total_mallocs); } current_malloc_packets++; if (current_malloc_packets > maximum_malloc_packets) { maximum_malloc_packets = current_malloc_packets; } current_bytes_malloced += size; |
︙ | ︙ | |||
844 845 846 847 848 849 850 851 852 853 | Tcl_SetObjResult(interp, Tcl_ObjPrintf("error accessing %s: %s", argv[2], Tcl_PosixError(interp))); return TCL_ERROR; } return TCL_OK; } if (strcmp(argv[1],"break_on_malloc") == 0) { if (argc != 3) { goto argError; } | > | > | | | | 843 844 845 846 847 848 849 850 851 852 853 854 855 856 857 858 859 860 861 862 863 864 865 866 867 868 869 870 871 872 873 874 | Tcl_SetObjResult(interp, Tcl_ObjPrintf("error accessing %s: %s", argv[2], Tcl_PosixError(interp))); return TCL_ERROR; } return TCL_OK; } if (strcmp(argv[1],"break_on_malloc") == 0) { int value; if (argc != 3) { goto argError; } if (Tcl_GetInt(interp, argv[2], &value) != TCL_OK) { return TCL_ERROR; } break_on_malloc = (unsigned int) value; return TCL_OK; } if (strcmp(argv[1],"info") == 0) { Tcl_SetObjResult(interp, Tcl_ObjPrintf( "%-25s %10u\n%-25s %10u\n%-25s %10u\n%-25s %10" TCL_LL_MODIFIER"u\n%-25s %10u\n%-25s %10" TCL_LL_MODIFIER "u\n", "total mallocs", total_mallocs, "total frees", total_frees, "current packets allocated", current_malloc_packets, "current bytes allocated", (Tcl_WideInt)current_bytes_malloced, "maximum packets allocated", maximum_malloc_packets, "maximum bytes allocated", (Tcl_WideInt)maximum_bytes_malloced)); return TCL_OK; } if (strcmp(argv[1], "init") == 0) { if (argc != 3) { goto bad_suboption; } init_malloced_bodies = (strcmp(argv[2],"on") == 0); |
︙ | ︙ | |||
930 931 932 933 934 935 936 937 938 939 | goto bad_suboption; } alloc_tracing = (strcmp(argv[2],"on") == 0); return TCL_OK; } if (strcmp(argv[1],"trace_on_at_malloc") == 0) { if (argc != 3) { goto argError; } | > | > | 931 932 933 934 935 936 937 938 939 940 941 942 943 944 945 946 947 948 949 950 951 952 | goto bad_suboption; } alloc_tracing = (strcmp(argv[2],"on") == 0); return TCL_OK; } if (strcmp(argv[1],"trace_on_at_malloc") == 0) { int value; if (argc != 3) { goto argError; } if (Tcl_GetInt(interp, argv[2], &value) != TCL_OK) { return TCL_ERROR; } trace_on_at_malloc = value; return TCL_OK; } if (strcmp(argv[1],"validate") == 0) { if (argc != 3) { goto bad_suboption; } validate_memory = (strcmp(argv[2],"on") == 0); |
︙ | ︙ |
Changes to generic/tclClock.c.
︙ | ︙ | |||
204 205 206 207 208 209 210 | * the end of the table. */ Tcl_ObjCmdProc *objCmdProc; /* Function that implements the command. This * will always have the ClockClientData sent * to it, but may well ignore this data. */ }; static const struct ClockCommand clockCommands[] = { | < < < < | 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 | * the end of the table. */ Tcl_ObjCmdProc *objCmdProc; /* Function that implements the command. This * will always have the ClockClientData sent * to it, but may well ignore this data. */ }; static const struct ClockCommand clockCommands[] = { { "getenv", ClockGetenvObjCmd }, { "Oldscan", TclClockOldscanObjCmd }, { "ConvertLocalToUTC", ClockConvertlocaltoutcObjCmd }, { "GetDateFields", ClockGetdatefieldsObjCmd }, { "GetJulianDayFromEraYearMonthDay", ClockGetjuliandayfromerayearmonthdayObjCmd }, { "GetJulianDayFromEraYearWeekDay", ClockGetjuliandayfromerayearweekdayObjCmd }, |
︙ | ︙ | |||
249 250 251 252 253 254 255 256 257 258 259 260 261 262 | const struct ClockCommand *clockCmdPtr; char cmdName[50]; /* Buffer large enough to hold the string *::tcl::clock::GetJulianDayFromEraYearMonthDay * plus a terminating NUL. */ ClockClientData *data; int i; /* * Safe interps get [::clock] as alias to a master, so do not need their * own copies of the support routines. */ if (Tcl_IsSafe(interp)) { return; | > > > > > > > > > > > > > | 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 | const struct ClockCommand *clockCmdPtr; char cmdName[50]; /* Buffer large enough to hold the string *::tcl::clock::GetJulianDayFromEraYearMonthDay * plus a terminating NUL. */ ClockClientData *data; int i; /* Structure of the 'clock' ensemble */ static const EnsembleImplMap clockImplMap[] = { {"add", NULL, TclCompileBasicMin1ArgCmd, NULL, NULL, 0}, {"clicks", ClockClicksObjCmd, TclCompileClockClicksCmd, NULL, NULL, 0}, {"format", NULL, TclCompileBasicMin1ArgCmd, NULL, NULL, 0}, {"microseconds", ClockMicrosecondsObjCmd, TclCompileClockReadingCmd, NULL, INT2PTR(1), 0}, {"milliseconds", ClockMillisecondsObjCmd, TclCompileClockReadingCmd, NULL, INT2PTR(2), 0}, {"scan", NULL, TclCompileBasicMin1ArgCmd, NULL, NULL , 0}, {"seconds", ClockSecondsObjCmd, TclCompileClockReadingCmd, NULL, INT2PTR(3), 0}, {NULL, NULL, NULL, NULL, NULL, 0} }; /* * Safe interps get [::clock] as alias to a master, so do not need their * own copies of the support routines. */ if (Tcl_IsSafe(interp)) { return; |
︙ | ︙ | |||
272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 | for (i = 0; i < LIT__END; ++i) { data->literals[i] = Tcl_NewStringObj(literals[i], -1); Tcl_IncrRefCount(data->literals[i]); } /* * Install the commands. */ #define TCL_CLOCK_PREFIX_LEN 14 /* == strlen("::tcl::clock::") */ memcpy(cmdName, "::tcl::clock::", TCL_CLOCK_PREFIX_LEN); for (clockCmdPtr=clockCommands ; clockCmdPtr->name!=NULL ; clockCmdPtr++) { strcpy(cmdName + TCL_CLOCK_PREFIX_LEN, clockCmdPtr->name); data->refCount++; Tcl_CreateObjCommand(interp, cmdName, clockCmdPtr->objCmdProc, data, ClockDeleteCmdProc); } } /* *---------------------------------------------------------------------- * * ClockConvertlocaltoutcObjCmd -- * | > > > > > | 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 | for (i = 0; i < LIT__END; ++i) { data->literals[i] = Tcl_NewStringObj(literals[i], -1); Tcl_IncrRefCount(data->literals[i]); } /* * Install the commands. * TODO - Let Tcl_MakeEnsemble do this? */ #define TCL_CLOCK_PREFIX_LEN 14 /* == strlen("::tcl::clock::") */ memcpy(cmdName, "::tcl::clock::", TCL_CLOCK_PREFIX_LEN); for (clockCmdPtr=clockCommands ; clockCmdPtr->name!=NULL ; clockCmdPtr++) { strcpy(cmdName + TCL_CLOCK_PREFIX_LEN, clockCmdPtr->name); data->refCount++; Tcl_CreateObjCommand(interp, cmdName, clockCmdPtr->objCmdProc, data, ClockDeleteCmdProc); } /* Make the clock ensemble */ TclMakeEnsemble(interp, "clock", clockImplMap); } /* *---------------------------------------------------------------------- * * ClockConvertlocaltoutcObjCmd -- * |
︙ | ︙ |
Changes to generic/tclCmdAH.c.
︙ | ︙ | |||
42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 | /* * Prototypes for local procedures defined in this file: */ static int CheckAccess(Tcl_Interp *interp, Tcl_Obj *pathPtr, int mode); static int EncodingDirsObjCmd(ClientData dummy, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]); static inline int ForeachAssignments(Tcl_Interp *interp, struct ForeachState *statePtr); static inline void ForeachCleanup(Tcl_Interp *interp, struct ForeachState *statePtr); static int GetStatBuf(Tcl_Interp *interp, Tcl_Obj *pathPtr, Tcl_FSStatProc *statProc, Tcl_StatBuf *statPtr); | > > > > > > > > > > > > > > > | 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 | /* * Prototypes for local procedures defined in this file: */ static int CheckAccess(Tcl_Interp *interp, Tcl_Obj *pathPtr, int mode); static int BadEncodingSubcommand(ClientData dummy, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]); static int EncodingConvertfromObjCmd(ClientData dummy, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]); static int EncodingConverttoObjCmd(ClientData dummy, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]); static int EncodingDirsObjCmd(ClientData dummy, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]); static int EncodingNamesObjCmd(ClientData dummy, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]); static int EncodingSystemObjCmd(ClientData dummy, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]); static inline int ForeachAssignments(Tcl_Interp *interp, struct ForeachState *statePtr); static inline void ForeachCleanup(Tcl_Interp *interp, struct ForeachState *statePtr); static int GetStatBuf(Tcl_Interp *interp, Tcl_Obj *pathPtr, Tcl_FSStatProc *statProc, Tcl_StatBuf *statPtr); |
︙ | ︙ | |||
145 146 147 148 149 150 151 | * A standard Tcl object result. * * Side effects: * See the user documentation. * *---------------------------------------------------------------------- */ | | | 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 | * A standard Tcl object result. * * Side effects: * See the user documentation. * *---------------------------------------------------------------------- */ #ifndef TCL_NO_DEPRECATED /* ARGSUSED */ int Tcl_CaseObjCmd( ClientData dummy, /* Not used. */ Tcl_Interp *interp, /* Current interpreter. */ int objc, /* Number of arguments. */ Tcl_Obj *const objv[]) /* Argument objects. */ |
︙ | ︙ | |||
263 264 265 266 267 268 269 270 271 272 273 274 275 276 | /* * Nothing matched: return nothing. */ return TCL_OK; } /* *---------------------------------------------------------------------- * * Tcl_CatchObjCmd -- * * This object-based procedure is invoked to process the "catch" Tcl | > | 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 | /* * Nothing matched: return nothing. */ return TCL_OK; } #endif /* !TCL_NO_DEPRECATED */ /* *---------------------------------------------------------------------- * * Tcl_CatchObjCmd -- * * This object-based procedure is invoked to process the "catch" Tcl |
︙ | ︙ | |||
537 538 539 540 541 542 543 | if (Tcl_GetIndexFromObj(interp, objv[1], optionStrings, "option", 0, &index) != TCL_OK) { return TCL_ERROR; } switch ((enum options) index) { case ENC_CONVERTTO: | > | < < < < < | < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < | < > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | > > > > > > > > | > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | < < | > > > | > > > | > > > > > > | > > > | > > | 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 812 813 814 815 816 817 818 819 820 821 822 823 824 825 826 827 828 829 830 831 832 833 834 835 836 837 838 839 840 | if (Tcl_GetIndexFromObj(interp, objv[1], optionStrings, "option", 0, &index) != TCL_OK) { return TCL_ERROR; } switch ((enum options) index) { case ENC_CONVERTTO: return EncodingConverttoObjCmd(dummy, interp, objc, objv); case ENC_CONVERTFROM: return EncodingConvertfromObjCmd(dummy, interp, objc, objv); case ENC_DIRS: return EncodingDirsObjCmd(dummy, interp, objc, objv); case ENC_NAMES: return EncodingNamesObjCmd(dummy, interp, objc, objv); case ENC_SYSTEM: return EncodingSystemObjCmd(dummy, interp, objc, objv); } return TCL_OK; } /* *----------------------------------------------------------------------------- * * TclInitEncodingCmd -- * * This function creates the 'encoding' ensemble. * * Results: * Returns the Tcl_Command so created. * * Side effects: * The ensemble is initialized. * * This command is hidden in a safe interpreter. */ Tcl_Command TclInitEncodingCmd( Tcl_Interp* interp) /* Tcl interpreter */ { static const EnsembleImplMap encodingImplMap[] = { {"convertfrom", EncodingConvertfromObjCmd, TclCompileBasic1Or2ArgCmd, NULL, NULL, 0}, {"convertto", EncodingConverttoObjCmd, TclCompileBasic1Or2ArgCmd, NULL, NULL, 0}, {"dirs", EncodingDirsObjCmd, TclCompileBasic0Or1ArgCmd, NULL, NULL, 0}, {"names", EncodingNamesObjCmd, TclCompileBasic0ArgCmd, NULL, NULL, 0}, {"system", EncodingSystemObjCmd, TclCompileBasic0Or1ArgCmd, NULL, NULL, 0}, {NULL, NULL, NULL, NULL, NULL, 0} }; return TclMakeEnsemble(interp, "encoding", encodingImplMap); } /* *----------------------------------------------------------------------------- * * TclMakeEncodingCommandSafe -- * * This function hides the unsafe 'dirs' and 'system' subcommands of * the "encoding" Tcl command ensemble. It must be called only from * TclHideUnsafeCommands. * * Results: * A standard Tcl result * * Side effects: * Adds commands to the table of hidden commands. * *----------------------------------------------------------------------------- */ int TclMakeEncodingCommandSafe( Tcl_Interp* interp) /* Tcl interpreter */ { static const struct { const char *cmdName; int unsafe; } unsafeInfo[] = { {"convertfrom", 0}, {"convertto", 0}, {"dirs", 1}, {"names", 0}, {"system", 0}, {NULL, 0} }; int i; Tcl_DString oldBuf, newBuf; Tcl_DStringInit(&oldBuf); TclDStringAppendLiteral(&oldBuf, "::tcl::encoding::"); Tcl_DStringInit(&newBuf); TclDStringAppendLiteral(&newBuf, "tcl:encoding:"); for (i=0 ; unsafeInfo[i].cmdName != NULL ; i++) { if (unsafeInfo[i].unsafe) { const char *oldName, *newName; Tcl_DStringSetLength(&oldBuf, 17); oldName = Tcl_DStringAppend(&oldBuf, unsafeInfo[i].cmdName, -1); Tcl_DStringSetLength(&newBuf, 13); newName = Tcl_DStringAppend(&newBuf, unsafeInfo[i].cmdName, -1); if (TclRenameCommand(interp, oldName, "___tmp") != TCL_OK || Tcl_HideCommand(interp, "___tmp", newName) != TCL_OK) { Tcl_Panic("problem making 'encoding %s' safe: %s", unsafeInfo[i].cmdName, Tcl_GetString(Tcl_GetObjResult(interp))); } Tcl_CreateObjCommand(interp, oldName, BadEncodingSubcommand, (ClientData) unsafeInfo[i].cmdName, NULL); } } Tcl_DStringFree(&oldBuf); Tcl_DStringFree(&newBuf); /* * Ugh. The [encoding] command is now actually safe, but it is assumed by * scripts that it is not, which messes up security policies. */ if (Tcl_HideCommand(interp, "encoding", "encoding") != TCL_OK) { Tcl_Panic("problem making 'encoding' safe: %s", Tcl_GetString(Tcl_GetObjResult(interp))); } return TCL_OK; } /* *---------------------------------------------------------------------- * * BadEncodingSubcommand -- * * Command used to act as a backstop implementation when subcommands of * "encoding" are unsafe (the real implementations of the subcommands are * hidden). The clientData is always the full official subcommand name. * * Results: * A standard Tcl result (always a TCL_ERROR). * * Side effects: * None. * *---------------------------------------------------------------------- */ static int BadEncodingSubcommand( ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) { const char *subcommandName = (const char *) clientData; Tcl_SetObjResult(interp, Tcl_ObjPrintf( "not allowed to invoke subcommand %s of encoding", subcommandName)); Tcl_SetErrorCode(interp, "TCL", "SAFE", "SUBCOMMAND", NULL); return TCL_ERROR; } /* *---------------------------------------------------------------------- * * EncodingConvertfromObjCmd -- * * This command converts a byte array in an external encoding into a * Tcl string * * Results: * A standard Tcl result. * *---------------------------------------------------------------------- */ int EncodingConvertfromObjCmd( ClientData dummy, /* Not used. */ Tcl_Interp *interp, /* Current interpreter. */ int objc, /* Number of arguments. */ Tcl_Obj *const objv[]) /* Argument objects. */ { Tcl_Obj *data; /* Byte array to convert */ Tcl_DString ds; /* Buffer to hold the string */ Tcl_Encoding encoding; /* Encoding to use */ int length; /* Length of the byte array being converted */ const char *bytesPtr; /* Pointer to the first byte of the array */ if (objc == 2) { encoding = Tcl_GetEncoding(interp, NULL); data = objv[1]; } else if (objc == 3) { if (Tcl_GetEncodingFromObj(interp, objv[1], &encoding) != TCL_OK) { return TCL_ERROR; } data = objv[2]; } else { Tcl_WrongNumArgs(interp, 1, objv, "?encoding? data"); return TCL_ERROR; } /* * Convert the string into a byte array in 'ds' */ bytesPtr = (char *) Tcl_GetByteArrayFromObj(data, &length); Tcl_ExternalToUtfDString(encoding, bytesPtr, length, &ds); /* * Note that we cannot use Tcl_DStringResult here because it will * truncate the string at the first null byte. */ Tcl_SetObjResult(interp, TclDStringToObj(&ds)); /* * We're done with the encoding */ Tcl_FreeEncoding(encoding); return TCL_OK; } /* *---------------------------------------------------------------------- * * EncodingConverttoObjCmd -- * * This command converts a Tcl string into a byte array that * encodes the string according to some encoding. * * Results: * A standard Tcl result. * *---------------------------------------------------------------------- */ int EncodingConverttoObjCmd( ClientData dummy, /* Not used. */ Tcl_Interp *interp, /* Current interpreter. */ int objc, /* Number of arguments. */ Tcl_Obj *const objv[]) /* Argument objects. */ { Tcl_Obj *data; /* String to convert */ Tcl_DString ds; /* Buffer to hold the byte array */ Tcl_Encoding encoding; /* Encoding to use */ int length; /* Length of the string being converted */ const char *stringPtr; /* Pointer to the first byte of the string */ /* TODO - ADJUST OBJ INDICES WHEN ENSEMBLIFYING THIS */ if (objc == 2) { encoding = Tcl_GetEncoding(interp, NULL); data = objv[1]; } else if (objc == 3) { if (Tcl_GetEncodingFromObj(interp, objv[1], &encoding) != TCL_OK) { return TCL_ERROR; } data = objv[2]; } else { Tcl_WrongNumArgs(interp, 1, objv, "?encoding? data"); return TCL_ERROR; } /* * Convert the string to a byte array in 'ds' */ stringPtr = TclGetStringFromObj(data, &length); Tcl_UtfToExternalDString(encoding, stringPtr, length, &ds); Tcl_SetObjResult(interp, Tcl_NewByteArrayObj((unsigned char*) Tcl_DStringValue(&ds), Tcl_DStringLength(&ds))); Tcl_DStringFree(&ds); /* * We're done with the encoding */ Tcl_FreeEncoding(encoding); return TCL_OK; } /* *---------------------------------------------------------------------- * * EncodingDirsObjCmd -- * |
︙ | ︙ | |||
637 638 639 640 641 642 643 | ClientData dummy, /* Not used. */ Tcl_Interp *interp, /* Current interpreter. */ int objc, /* Number of arguments. */ Tcl_Obj *const objv[]) /* Argument objects. */ { Tcl_Obj *dirListObj; | | | | | > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 854 855 856 857 858 859 860 861 862 863 864 865 866 867 868 869 870 871 872 873 874 875 876 877 878 879 880 881 882 883 884 885 886 887 888 889 890 891 892 893 894 895 896 897 898 899 900 901 902 903 904 905 906 907 908 909 910 911 912 913 914 915 916 917 918 919 920 921 922 923 924 925 926 927 928 929 930 931 932 933 934 935 936 937 938 939 940 941 942 943 944 945 946 947 948 949 950 | ClientData dummy, /* Not used. */ Tcl_Interp *interp, /* Current interpreter. */ int objc, /* Number of arguments. */ Tcl_Obj *const objv[]) /* Argument objects. */ { Tcl_Obj *dirListObj; if (objc > 2) { Tcl_WrongNumArgs(interp, 1, objv, "?dirList?"); return TCL_ERROR; } if (objc == 1) { Tcl_SetObjResult(interp, Tcl_GetEncodingSearchPath()); return TCL_OK; } dirListObj = objv[1]; if (Tcl_SetEncodingSearchPath(dirListObj) == TCL_ERROR) { Tcl_SetObjResult(interp, Tcl_ObjPrintf( "expected directory list but got \"%s\"", TclGetString(dirListObj))); Tcl_SetErrorCode(interp, "TCL", "OPERATION", "ENCODING", "BADPATH", NULL); return TCL_ERROR; } Tcl_SetObjResult(interp, dirListObj); return TCL_OK; } /* *----------------------------------------------------------------------------- * * EncodingNamesObjCmd -- * * This command returns a list of the available encoding names * * Results: * Returns a standard Tcl result * *----------------------------------------------------------------------------- */ int EncodingNamesObjCmd(ClientData dummy, /* Unused */ Tcl_Interp* interp, /* Tcl interpreter */ int objc, /* Number of command line args */ Tcl_Obj* const objv[]) /* Vector of command line args */ { if (objc > 1) { Tcl_WrongNumArgs(interp, 1, objv, NULL); return TCL_ERROR; } Tcl_GetEncodingNames(interp); return TCL_OK; } /* *----------------------------------------------------------------------------- * * EncodingSystemObjCmd -- * * This command retrieves or changes the system encoding * * Results: * Returns a standard Tcl result * * Side effects: * May change the system encoding. * *----------------------------------------------------------------------------- */ int EncodingSystemObjCmd(ClientData dummy, /* Unused */ Tcl_Interp* interp, /* Tcl interpreter */ int objc, /* Number of command line args */ Tcl_Obj* const objv[]) /* Vector of command line args */ { if (objc > 2) { Tcl_WrongNumArgs(interp, 1, objv, "?encoding?"); return TCL_ERROR; } if (objc == 1) { Tcl_SetObjResult(interp, Tcl_NewStringObj(Tcl_GetEncodingName(NULL), -1)); } else { return Tcl_SetSystemEncoding(interp, TclGetString(objv[1])); } return TCL_OK; } /* *---------------------------------------------------------------------- * * Tcl_ErrorObjCmd -- * * This procedure is invoked to process the "error" Tcl command. See the |
︙ | ︙ |
Changes to generic/tclCmdMZ.c.
︙ | ︙ | |||
985 986 987 988 989 990 991 992 | ClientData dummy, /* Not used. */ Tcl_Interp *interp, /* Current interpreter. */ int objc, /* Number of arguments. */ Tcl_Obj *const objv[]) /* Argument objects. */ { const char *encodingName = NULL; Tcl_Obj *fileName; | > > > | > > > > > > > | > > > | > > > > > > | > > > > > | 985 986 987 988 989 990 991 992 993 994 995 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 | ClientData dummy, /* Not used. */ Tcl_Interp *interp, /* Current interpreter. */ int objc, /* Number of arguments. */ Tcl_Obj *const objv[]) /* Argument objects. */ { const char *encodingName = NULL; Tcl_Obj *fileName; int result; void **pkgFiles = NULL; void *names = NULL; if (objc < 2 || objc > 4) { Tcl_WrongNumArgs(interp, 1, objv, "?-encoding name? fileName"); return TCL_ERROR; } fileName = objv[objc-1]; if (objc == 4) { static const char *const options[] = { "-encoding", NULL }; int index; if (TCL_ERROR == Tcl_GetIndexFromObj(interp, objv[1], options, "option", TCL_EXACT, &index)) { return TCL_ERROR; } encodingName = TclGetString(objv[2]); } else if (objc == 3) { /* Handle undocumented -nopkg option. This should only be * used by the internal ::tcl::Pkg::source utility function. */ static const char *const nopkgoptions[] = { "-nopkg", NULL }; int index; if (TCL_ERROR == Tcl_GetIndexFromObj(interp, objv[1], nopkgoptions, "option", TCL_EXACT, &index)) { return TCL_ERROR; } pkgFiles = Tcl_GetAssocData(interp, "tclPkgFiles", NULL); /* Make sure that during the following TclNREvalFile no filenames * are recorded for inclusion in the "package files" command */ names = *pkgFiles; *pkgFiles = NULL; } result = TclNREvalFile(interp, fileName, encodingName); if (pkgFiles) { /* restore "tclPkgFiles" assocdata to how it was. */ *pkgFiles = names; } return result; } /* *---------------------------------------------------------------------- * * Tcl_SplitObjCmd -- * |
︙ | ︙ |
Changes to generic/tclCompCmds.c.
︙ | ︙ | |||
727 728 729 730 731 732 733 734 735 736 737 738 739 740 | TclEmitInstInt4( INST_REVERSE, 2, envPtr); if (resultIndex != -1) { Emit14Inst( INST_STORE_SCALAR, resultIndex, envPtr); } TclEmitOpcode( INST_POP, envPtr); TclCheckStackDepth(depth+1, envPtr); return TCL_OK; } /* *---------------------------------------------------------------------- * * TclCompileConcatCmd -- | > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 812 813 814 815 816 817 818 819 820 821 822 823 824 825 826 827 828 829 830 831 832 833 834 835 836 837 838 839 | TclEmitInstInt4( INST_REVERSE, 2, envPtr); if (resultIndex != -1) { Emit14Inst( INST_STORE_SCALAR, resultIndex, envPtr); } TclEmitOpcode( INST_POP, envPtr); TclCheckStackDepth(depth+1, envPtr); return TCL_OK; } /*---------------------------------------------------------------------- * * TclCompileClockClicksCmd -- * * Procedure called to compile the "tcl::clock::clicks" command. * * Results: * Returns TCL_OK for a successful compile. Returns TCL_ERROR to defer * evaluation to run time. * * Side effects: * Instructions are added to envPtr to execute the "clock clicks" * command at runtime. * *---------------------------------------------------------------------- */ int TclCompileClockClicksCmd( Tcl_Interp* interp, /* Tcl interpreter */ Tcl_Parse *parsePtr, /* Points to a parse structure for the command * created by Tcl_ParseCommand. */ Command *cmdPtr, /* Points to defintion of command being * compiled. */ CompileEnv *envPtr) /* Holds resulting instructions. */ { Tcl_Token* tokenPtr; switch (parsePtr->numWords) { case 1: /* * No args */ TclEmitInstInt1(INST_CLOCK_READ, 0, envPtr); break; case 2: /* * -milliseconds or -microseconds */ tokenPtr = TokenAfter(parsePtr->tokenPtr); if (tokenPtr->type != TCL_TOKEN_SIMPLE_WORD || tokenPtr[1].size < 4 || tokenPtr[1].size > 13) { return TCL_ERROR; } else if (!strncmp(tokenPtr[1].start, "-microseconds", tokenPtr[1].size)) { TclEmitInstInt1(INST_CLOCK_READ, 1, envPtr); break; } else if (!strncmp(tokenPtr[1].start, "-milliseconds", tokenPtr[1].size)) { TclEmitInstInt1(INST_CLOCK_READ, 2, envPtr); break; } else { return TCL_ERROR; } default: return TCL_ERROR; } return TCL_OK; } /*---------------------------------------------------------------------- * * TclCompileClockReadingCmd -- * * Procedure called to compile the "tcl::clock::microseconds", * "tcl::clock::milliseconds" and "tcl::clock::seconds" commands. * * Results: * Returns TCL_OK for a successful compile. Returns TCL_ERROR to defer * evaluation to run time. * * Side effects: * Instructions are added to envPtr to execute the "clock clicks" * command at runtime. * * Client data is 1 for microseconds, 2 for milliseconds, 3 for seconds. *---------------------------------------------------------------------- */ int TclCompileClockReadingCmd( Tcl_Interp* interp, /* Tcl interpreter */ Tcl_Parse *parsePtr, /* Points to a parse structure for the command * created by Tcl_ParseCommand. */ Command *cmdPtr, /* Points to defintion of command being * compiled. */ CompileEnv *envPtr) /* Holds resulting instructions. */ { if (parsePtr->numWords != 1) { return TCL_ERROR; } TclEmitInstInt1(INST_CLOCK_READ, PTR2INT(cmdPtr->objClientData), envPtr); return TCL_OK; } /* *---------------------------------------------------------------------- * * TclCompileConcatCmd -- |
︙ | ︙ |
Changes to generic/tclCompile.c.
︙ | ︙ | |||
649 650 651 652 653 654 655 656 657 658 659 660 661 662 | * Stack: ... elem list => ... listVarContents */ {"lappendListArrayStk", 1, -2, 0, {OPERAND_NONE}}, /* Lappend list to array element. * Stack: ... arrayName elem list => ... listVarContents */ {"lappendListStk", 1, -1, 0, {OPERAND_NONE}}, /* Lappend list to general variable. * Stack: ... varName list => ... listVarContents */ {NULL, 0, 0, 0, {OPERAND_NONE}} }; /* * Prototypes for procedures defined later in this file: */ | > > > > > | 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 | * Stack: ... elem list => ... listVarContents */ {"lappendListArrayStk", 1, -2, 0, {OPERAND_NONE}}, /* Lappend list to array element. * Stack: ... arrayName elem list => ... listVarContents */ {"lappendListStk", 1, -1, 0, {OPERAND_NONE}}, /* Lappend list to general variable. * Stack: ... varName list => ... listVarContents */ {"clockRead", 2, +1, 1, {OPERAND_UINT1}}, /* Read clock out to the stack. Operand is which clock to read * 0=clicks, 1=microseconds, 2=milliseconds, 3=seconds. * Stack: ... => ... time */ {NULL, 0, 0, 0, {OPERAND_NONE}} }; /* * Prototypes for procedures defined later in this file: */ |
︙ | ︙ |
Changes to generic/tclCompile.h.
︙ | ︙ | |||
421 422 423 424 425 426 427 | * ByteCode was compiled. Used to invalidate * code when, e.g., commands with compile * procs are redefined. */ Namespace *nsPtr; /* Namespace context in which this code was * compiled. If the code is executed if a * different namespace, it must be * recompiled. */ | | | 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 | * ByteCode was compiled. Used to invalidate * code when, e.g., commands with compile * procs are redefined. */ Namespace *nsPtr; /* Namespace context in which this code was * compiled. If the code is executed if a * different namespace, it must be * recompiled. */ size_t nsEpoch; /* Value of nsPtr->resolverEpoch when this * ByteCode was compiled. Used to invalidate * code when new namespace resolution rules * are put into effect. */ int refCount; /* Reference count: set 1 when created plus 1 * for each execution of the code currently * active. This structure can be freed when * refCount becomes zero. */ |
︙ | ︙ | |||
817 818 819 820 821 822 823 824 | #define INST_STR_CLASS 184 #define INST_LAPPEND_LIST 185 #define INST_LAPPEND_LIST_ARRAY 186 #define INST_LAPPEND_LIST_ARRAY_STK 187 #define INST_LAPPEND_LIST_STK 188 /* The last opcode */ | > > | | 817 818 819 820 821 822 823 824 825 826 827 828 829 830 831 832 833 834 | #define INST_STR_CLASS 184 #define INST_LAPPEND_LIST 185 #define INST_LAPPEND_LIST_ARRAY 186 #define INST_LAPPEND_LIST_ARRAY_STK 187 #define INST_LAPPEND_LIST_STK 188 #define INST_CLOCK_READ 189 /* The last opcode */ #define LAST_INST_OPCODE 189 /* * Table describing the Tcl bytecode instructions: their name (for displaying * code), total number of code bytes required (including operand bytes), and a * description of the type of each operand. These operand types include signed * and unsigned integers of length one and four bytes. The unsigned integers * are used for indexes or for, e.g., the count of objects to push in a "push" |
︙ | ︙ |
Changes to generic/tclDecls.h.
︙ | ︙ | |||
874 875 876 877 878 879 880 | /* 292 */ EXTERN int Tcl_EvalObjv(Tcl_Interp *interp, int objc, Tcl_Obj *const objv[], int flags); /* 293 */ EXTERN int Tcl_EvalObjEx(Tcl_Interp *interp, Tcl_Obj *objPtr, int flags); /* 294 */ | | | 874 875 876 877 878 879 880 881 882 883 884 885 886 887 888 | /* 292 */ EXTERN int Tcl_EvalObjv(Tcl_Interp *interp, int objc, Tcl_Obj *const objv[], int flags); /* 293 */ EXTERN int Tcl_EvalObjEx(Tcl_Interp *interp, Tcl_Obj *objPtr, int flags); /* 294 */ EXTERN TCL_NORETURN void Tcl_ExitThread(int status); /* 295 */ EXTERN int Tcl_ExternalToUtf(Tcl_Interp *interp, Tcl_Encoding encoding, const char *src, int srcLen, int flags, Tcl_EncodingState *statePtr, char *dst, int dstLen, int *srcReadPtr, int *dstWrotePtr, int *dstCharsPtr); |
︙ | ︙ | |||
1815 1816 1817 1818 1819 1820 1821 | /* 630 */ EXTERN void Tcl_ZlibStreamSetCompressionDictionary( Tcl_ZlibStream zhandle, Tcl_Obj *compressionDictionaryObj); /* 631 */ EXTERN Tcl_Channel Tcl_OpenTcpServerEx(Tcl_Interp *interp, const char *service, const char *host, | | > > > > > | 1815 1816 1817 1818 1819 1820 1821 1822 1823 1824 1825 1826 1827 1828 1829 1830 1831 1832 1833 1834 1835 1836 | /* 630 */ EXTERN void Tcl_ZlibStreamSetCompressionDictionary( Tcl_ZlibStream zhandle, Tcl_Obj *compressionDictionaryObj); /* 631 */ EXTERN Tcl_Channel Tcl_OpenTcpServerEx(Tcl_Interp *interp, const char *service, const char *host, unsigned int flags, int backlog, Tcl_TcpAcceptProc *acceptProc, ClientData callbackData); /* 632 */ EXTERN Tcl_Channel Tcl_OpenTcpClientEx(Tcl_Interp *interp, const char *service, const char *host, const char *myaddr, const char *myservice, unsigned int flags); typedef struct { const struct TclPlatStubs *tclPlatStubs; const struct TclIntStubs *tclIntStubs; const struct TclIntPlatStubs *tclIntPlatStubs; } TclStubHooks; |
︙ | ︙ | |||
2147 2148 2149 2150 2151 2152 2153 | Tcl_Encoding (*tcl_CreateEncoding) (const Tcl_EncodingType *typePtr); /* 287 */ void (*tcl_CreateThreadExitHandler) (Tcl_ExitProc *proc, ClientData clientData); /* 288 */ void (*tcl_DeleteThreadExitHandler) (Tcl_ExitProc *proc, ClientData clientData); /* 289 */ void (*tcl_DiscardResult) (Tcl_SavedResult *statePtr); /* 290 */ int (*tcl_EvalEx) (Tcl_Interp *interp, const char *script, int numBytes, int flags); /* 291 */ int (*tcl_EvalObjv) (Tcl_Interp *interp, int objc, Tcl_Obj *const objv[], int flags); /* 292 */ int (*tcl_EvalObjEx) (Tcl_Interp *interp, Tcl_Obj *objPtr, int flags); /* 293 */ | | | 2152 2153 2154 2155 2156 2157 2158 2159 2160 2161 2162 2163 2164 2165 2166 | Tcl_Encoding (*tcl_CreateEncoding) (const Tcl_EncodingType *typePtr); /* 287 */ void (*tcl_CreateThreadExitHandler) (Tcl_ExitProc *proc, ClientData clientData); /* 288 */ void (*tcl_DeleteThreadExitHandler) (Tcl_ExitProc *proc, ClientData clientData); /* 289 */ void (*tcl_DiscardResult) (Tcl_SavedResult *statePtr); /* 290 */ int (*tcl_EvalEx) (Tcl_Interp *interp, const char *script, int numBytes, int flags); /* 291 */ int (*tcl_EvalObjv) (Tcl_Interp *interp, int objc, Tcl_Obj *const objv[], int flags); /* 292 */ int (*tcl_EvalObjEx) (Tcl_Interp *interp, Tcl_Obj *objPtr, int flags); /* 293 */ TCL_NORETURN1 void (*tcl_ExitThread) (int status); /* 294 */ int (*tcl_ExternalToUtf) (Tcl_Interp *interp, Tcl_Encoding encoding, const char *src, int srcLen, int flags, Tcl_EncodingState *statePtr, char *dst, int dstLen, int *srcReadPtr, int *dstWrotePtr, int *dstCharsPtr); /* 295 */ char * (*tcl_ExternalToUtfDString) (Tcl_Encoding encoding, const char *src, int srcLen, Tcl_DString *dsPtr); /* 296 */ void (*tcl_FinalizeThread) (void); /* 297 */ void (*tcl_FinalizeNotifier) (ClientData clientData); /* 298 */ void (*tcl_FreeEncoding) (Tcl_Encoding encoding); /* 299 */ Tcl_ThreadId (*tcl_GetCurrentThread) (void); /* 300 */ Tcl_Encoding (*tcl_GetEncoding) (Tcl_Interp *interp, const char *name); /* 301 */ |
︙ | ︙ | |||
2484 2485 2486 2487 2488 2489 2490 | int (*tcl_CloseEx) (Tcl_Interp *interp, Tcl_Channel chan, int flags); /* 624 */ int (*tcl_NRExprObj) (Tcl_Interp *interp, Tcl_Obj *objPtr, Tcl_Obj *resultPtr); /* 625 */ int (*tcl_NRSubstObj) (Tcl_Interp *interp, Tcl_Obj *objPtr, int flags); /* 626 */ int (*tcl_LoadFile) (Tcl_Interp *interp, Tcl_Obj *pathPtr, const char *const symv[], int flags, void *procPtrs, Tcl_LoadHandle *handlePtr); /* 627 */ void * (*tcl_FindSymbol) (Tcl_Interp *interp, Tcl_LoadHandle handle, const char *symbol); /* 628 */ int (*tcl_FSUnloadFile) (Tcl_Interp *interp, Tcl_LoadHandle handlePtr); /* 629 */ void (*tcl_ZlibStreamSetCompressionDictionary) (Tcl_ZlibStream zhandle, Tcl_Obj *compressionDictionaryObj); /* 630 */ | | > | 2489 2490 2491 2492 2493 2494 2495 2496 2497 2498 2499 2500 2501 2502 2503 2504 | int (*tcl_CloseEx) (Tcl_Interp *interp, Tcl_Channel chan, int flags); /* 624 */ int (*tcl_NRExprObj) (Tcl_Interp *interp, Tcl_Obj *objPtr, Tcl_Obj *resultPtr); /* 625 */ int (*tcl_NRSubstObj) (Tcl_Interp *interp, Tcl_Obj *objPtr, int flags); /* 626 */ int (*tcl_LoadFile) (Tcl_Interp *interp, Tcl_Obj *pathPtr, const char *const symv[], int flags, void *procPtrs, Tcl_LoadHandle *handlePtr); /* 627 */ void * (*tcl_FindSymbol) (Tcl_Interp *interp, Tcl_LoadHandle handle, const char *symbol); /* 628 */ int (*tcl_FSUnloadFile) (Tcl_Interp *interp, Tcl_LoadHandle handlePtr); /* 629 */ void (*tcl_ZlibStreamSetCompressionDictionary) (Tcl_ZlibStream zhandle, Tcl_Obj *compressionDictionaryObj); /* 630 */ Tcl_Channel (*tcl_OpenTcpServerEx) (Tcl_Interp *interp, const char *service, const char *host, unsigned int flags, int backlog, Tcl_TcpAcceptProc *acceptProc, ClientData callbackData); /* 631 */ Tcl_Channel (*tcl_OpenTcpClientEx) (Tcl_Interp *interp, const char *service, const char *host, const char *myaddr, const char *myservice, unsigned int flags); /* 632 */ } TclStubs; extern const TclStubs *tclStubsPtr; #ifdef __cplusplus } #endif |
︙ | ︙ | |||
3779 3780 3781 3782 3783 3784 3785 3786 3787 3788 3789 3790 3791 3792 3793 3794 3795 3796 3797 3798 3799 | (tclStubsPtr->tcl_FindSymbol) /* 628 */ #define Tcl_FSUnloadFile \ (tclStubsPtr->tcl_FSUnloadFile) /* 629 */ #define Tcl_ZlibStreamSetCompressionDictionary \ (tclStubsPtr->tcl_ZlibStreamSetCompressionDictionary) /* 630 */ #define Tcl_OpenTcpServerEx \ (tclStubsPtr->tcl_OpenTcpServerEx) /* 631 */ #endif /* defined(USE_TCL_STUBS) */ /* !END!: Do not edit above this line. */ #if defined(USE_TCL_STUBS) # undef Tcl_CreateInterp # undef Tcl_FindExecutable # undef Tcl_GetStringResult # undef Tcl_Init # undef Tcl_SetPanicProc # undef Tcl_SetVar # undef Tcl_ObjSetVar2 # undef Tcl_StaticPackage | > > < | 3785 3786 3787 3788 3789 3790 3791 3792 3793 3794 3795 3796 3797 3798 3799 3800 3801 3802 3803 3804 3805 3806 3807 3808 3809 3810 3811 3812 3813 3814 | (tclStubsPtr->tcl_FindSymbol) /* 628 */ #define Tcl_FSUnloadFile \ (tclStubsPtr->tcl_FSUnloadFile) /* 629 */ #define Tcl_ZlibStreamSetCompressionDictionary \ (tclStubsPtr->tcl_ZlibStreamSetCompressionDictionary) /* 630 */ #define Tcl_OpenTcpServerEx \ (tclStubsPtr->tcl_OpenTcpServerEx) /* 631 */ #define Tcl_OpenTcpClientEx \ (tclStubsPtr->tcl_OpenTcpClientEx) /* 632 */ #endif /* defined(USE_TCL_STUBS) */ /* !END!: Do not edit above this line. */ #if defined(USE_TCL_STUBS) # undef Tcl_CreateInterp # undef Tcl_FindExecutable # undef Tcl_GetStringResult # undef Tcl_Init # undef Tcl_SetPanicProc # undef Tcl_SetVar # undef Tcl_ObjSetVar2 # undef Tcl_StaticPackage # define Tcl_CreateInterp() (tclStubsPtr->tcl_CreateInterp()) # define Tcl_GetStringResult(interp) (tclStubsPtr->tcl_GetStringResult(interp)) # define Tcl_Init(interp) (tclStubsPtr->tcl_Init(interp)) # define Tcl_SetPanicProc(proc) (tclStubsPtr->tcl_SetPanicProc(proc)) # define Tcl_SetVar(interp, varName, newValue, flags) \ (tclStubsPtr->tcl_SetVar(interp, varName, newValue, flags)) # define Tcl_ObjSetVar2(interp, part1, part2, newValue, flags) \ |
︙ | ︙ | |||
3832 3833 3834 3835 3836 3837 3838 | Tcl_PkgRequireEx(interp, name, version, exact, NULL) #undef Tcl_GetIndexFromObj #define Tcl_GetIndexFromObj(interp, objPtr, tablePtr, msg, flags, indexPtr) \ Tcl_GetIndexFromObjStruct(interp, objPtr, tablePtr, \ sizeof(char *), msg, flags, indexPtr) #undef Tcl_NewBooleanObj #define Tcl_NewBooleanObj(boolValue) \ | | | | 3839 3840 3841 3842 3843 3844 3845 3846 3847 3848 3849 3850 3851 3852 3853 3854 3855 3856 3857 3858 3859 | Tcl_PkgRequireEx(interp, name, version, exact, NULL) #undef Tcl_GetIndexFromObj #define Tcl_GetIndexFromObj(interp, objPtr, tablePtr, msg, flags, indexPtr) \ Tcl_GetIndexFromObjStruct(interp, objPtr, tablePtr, \ sizeof(char *), msg, flags, indexPtr) #undef Tcl_NewBooleanObj #define Tcl_NewBooleanObj(boolValue) \ Tcl_NewLongObj((boolValue)!=0) #undef Tcl_DbNewBooleanObj #define Tcl_DbNewBooleanObj(boolValue, file, line) \ Tcl_DbNewLongObj((boolValue)!=0, file, line) #undef Tcl_SetBooleanObj #define Tcl_SetBooleanObj(objPtr, boolValue) \ Tcl_SetLongObj(objPtr, (boolValue)!=0) #undef Tcl_SetVar #define Tcl_SetVar(interp, varName, newValue, flags) \ Tcl_SetVar2(interp, varName, NULL, newValue, flags) #undef Tcl_UnsetVar #define Tcl_UnsetVar(interp, varName, flags) \ Tcl_UnsetVar2(interp, varName, NULL, flags) #undef Tcl_GetVar |
︙ | ︙ | |||
3860 3861 3862 3863 3864 3865 3866 3867 3868 3869 3870 3871 3872 3873 | Tcl_UntraceVar2(interp, varName, NULL, flags, proc, clientData) #undef Tcl_VarTraceInfo #define Tcl_VarTraceInfo(interp, varName, flags, proc, prevClientData) \ Tcl_VarTraceInfo2(interp, varName, NULL, flags, proc, prevClientData) #undef Tcl_UpVar #define Tcl_UpVar(interp, frameName, varName, localName, flags) \ Tcl_UpVar2(interp, frameName, varName, NULL, localName, flags) #if defined(USE_TCL_STUBS) && !defined(USE_TCL_STUB_PROCS) # if defined(__CYGWIN__) && defined(TCL_WIDE_INT_IS_LONG) /* On Cygwin64, long is 64-bit while on Win64 long is 32-bit. Therefore * we have to make sure that all stub entries on Cygwin64 follow the * Win64 signature. Cygwin64 stubbed extensions cannot use those stub * entries any more, they should use the 64-bit alternatives where | > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 3867 3868 3869 3870 3871 3872 3873 3874 3875 3876 3877 3878 3879 3880 3881 3882 3883 3884 3885 3886 3887 3888 3889 3890 3891 3892 3893 3894 3895 3896 3897 3898 3899 3900 3901 3902 3903 3904 3905 3906 3907 3908 3909 3910 3911 3912 3913 3914 3915 3916 3917 3918 3919 3920 3921 3922 3923 3924 3925 | Tcl_UntraceVar2(interp, varName, NULL, flags, proc, clientData) #undef Tcl_VarTraceInfo #define Tcl_VarTraceInfo(interp, varName, flags, proc, prevClientData) \ Tcl_VarTraceInfo2(interp, varName, NULL, flags, proc, prevClientData) #undef Tcl_UpVar #define Tcl_UpVar(interp, frameName, varName, localName, flags) \ Tcl_UpVar2(interp, frameName, varName, NULL, localName, flags) #undef Tcl_AddErrorInfo #define Tcl_AddErrorInfo(interp, message) \ Tcl_AppendObjToErrorInfo(interp, Tcl_NewStringObj(message, -1)) #undef Tcl_AddObjErrorInfo #define Tcl_AddObjErrorInfo(interp, message, length) \ Tcl_AppendObjToErrorInfo(interp, Tcl_NewStringObj(message, length)) #ifdef TCL_NO_DEPRECATED #undef Tcl_Eval #define Tcl_Eval(interp, objPtr) \ Tcl_EvalEx(interp, objPtr, -1, 0) #undef Tcl_GlobalEval #define Tcl_GlobalEval(interp, objPtr) \ Tcl_EvalEx(interp, objPtr, -1, TCL_EVAL_GLOBAL) #undef Tcl_SaveResult #define Tcl_SaveResult(interp, statePtr) \ do { \ (statePtr)->objResultPtr = Tcl_GetObjResult(interp); \ Tcl_IncrRefCount((statePtr)->objResultPtr); \ Tcl_SetObjResult(interp, Tcl_NewObj()); \ } while(0) #undef Tcl_RestoreResult #define Tcl_RestoreResult(interp, statePtr) \ do { \ Tcl_ResetResult(interp); \ Tcl_SetObjResult(interp, (statePtr)->objResultPtr); \ Tcl_DecrRefCount((statePtr)->objResultPtr); \ } while(0) #undef Tcl_DiscardResult #define Tcl_DiscardResult(statePtr) \ Tcl_DecrRefCount((statePtr)->objResultPtr) #undef Tcl_SetResult #define Tcl_SetResult(interp, result, freeProc) \ do { \ char *__result = result; \ Tcl_FreeProc *__freeProc = freeProc; \ Tcl_SetObjResult(interp, Tcl_NewStringObj(__result, -1)); \ if (__result != NULL && __freeProc != NULL && __freeProc != TCL_VOLATILE) { \ if (__freeProc == TCL_DYNAMIC) { \ ckfree(__result); \ } else { \ (*__freeProc)(__result); \ } \ } \ } while(0) #endif /* TCL_NO_DEPRECATED */ #if defined(USE_TCL_STUBS) && !defined(USE_TCL_STUB_PROCS) # if defined(__CYGWIN__) && defined(TCL_WIDE_INT_IS_LONG) /* On Cygwin64, long is 64-bit while on Win64 long is 32-bit. Therefore * we have to make sure that all stub entries on Cygwin64 follow the * Win64 signature. Cygwin64 stubbed extensions cannot use those stub * entries any more, they should use the 64-bit alternatives where |
︙ | ︙ | |||
3914 3915 3916 3917 3918 3919 3920 | #endif /* * Deprecated Tcl procedures: */ #undef Tcl_EvalObj | | | | | | 3966 3967 3968 3969 3970 3971 3972 3973 3974 3975 3976 3977 3978 3979 | #endif /* * Deprecated Tcl procedures: */ #undef Tcl_EvalObj #define Tcl_EvalObj(interp, objPtr) \ Tcl_EvalObjEx(interp, objPtr, 0) #undef Tcl_GlobalEvalObj #define Tcl_GlobalEvalObj(interp, objPtr) \ Tcl_EvalObjEx(interp, objPtr, TCL_EVAL_GLOBAL) #endif /* _TCLDECLS */ |
Changes to generic/tclDictObj.c.
︙ | ︙ | |||
502 503 504 505 506 507 508 | * is not exposed by any API function... */ int numElems = dict->table.numEntries * 2; /* Handle empty list case first, simplifies what follows */ if (numElems == 0) { | | | 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 | * is not exposed by any API function... */ int numElems = dict->table.numEntries * 2; /* Handle empty list case first, simplifies what follows */ if (numElems == 0) { dictPtr->bytes = &tclEmptyString; dictPtr->length = 0; return; } /* * Pass 1: estimate space, gather flags. */ |
︙ | ︙ |
Changes to generic/tclDisassemble.c.
︙ | ︙ | |||
250 251 252 253 254 255 256 | ByteCode *codePtr = BYTECODE(objPtr); unsigned char *codeStart, *codeLimit, *pc; unsigned char *codeDeltaNext, *codeLengthNext; unsigned char *srcDeltaNext, *srcLengthNext; int codeOffset, codeLen, srcOffset, srcLen, numCmds, delta, i, line; Interp *iPtr = (Interp *) *codePtr->interpHandle; Tcl_Obj *bufferObj, *fileObj; | < < < | | | 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 | ByteCode *codePtr = BYTECODE(objPtr); unsigned char *codeStart, *codeLimit, *pc; unsigned char *codeDeltaNext, *codeLengthNext; unsigned char *srcDeltaNext, *srcLengthNext; int codeOffset, codeLen, srcOffset, srcLen, numCmds, delta, i, line; Interp *iPtr = (Interp *) *codePtr->interpHandle; Tcl_Obj *bufferObj, *fileObj; TclNewObj(bufferObj); if (codePtr->refCount <= 0) { return bufferObj; /* Already freed. */ } codeStart = codePtr->codeStart; codeLimit = codeStart + codePtr->numCodeBytes; numCmds = codePtr->numCommands; /* * Print header lines describing the ByteCode. */ Tcl_AppendPrintfToObj(bufferObj, "ByteCode %p, refCt %u, epoch %u, interp %p (epoch %u)\n", codePtr, codePtr->refCount, codePtr->compileEpoch, iPtr, iPtr->compileEpoch); Tcl_AppendToObj(bufferObj, " Source ", -1); PrintSourceToObj(bufferObj, codePtr->source, TclMin(codePtr->numSrcBytes, 55)); GetLocationInformation(interp, codePtr->procPtr, &fileObj, &line); if (line > -1 && fileObj != NULL) { Tcl_AppendPrintfToObj(bufferObj, "\n File \"%s\" Line %d", |
︙ | ︙ | |||
312 313 314 315 316 317 318 | * procedure's name since ByteCode's can be shared among procedures. */ if (codePtr->procPtr != NULL) { Proc *procPtr = codePtr->procPtr; int numCompiledLocals = procPtr->numCompiledLocals; | < | | | 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 | * procedure's name since ByteCode's can be shared among procedures. */ if (codePtr->procPtr != NULL) { Proc *procPtr = codePtr->procPtr; int numCompiledLocals = procPtr->numCompiledLocals; Tcl_AppendPrintfToObj(bufferObj, " Proc %p, refCt %d, args %d, compiled locals %d\n", procPtr, procPtr->refCount, procPtr->numArgs, numCompiledLocals); if (numCompiledLocals > 0) { CompiledLocal *localPtr = procPtr->firstLocalPtr; for (i = 0; i < numCompiledLocals; i++) { Tcl_AppendPrintfToObj(bufferObj, " slot %d%s%s%s%s%s%s", i, |
︙ | ︙ |
Changes to generic/tclEnsemble.c.
︙ | ︙ | |||
88 89 90 91 92 93 94 | /* * The internal rep for caching ensemble subcommand lookups and * spell corrections. */ typedef struct { | | | 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 | /* * The internal rep for caching ensemble subcommand lookups and * spell corrections. */ typedef struct { size_t epoch; /* Used to confirm when the data in this * really structure matches up with the * ensemble. */ Command *token; /* Reference to the command for which this * structure is a cache of the resolution. */ Tcl_Obj *fix; /* Corrected spelling, if needed. */ Tcl_HashEntry *hPtr; /* Direct link to entry in the subcommand * hash table. */ |
︙ | ︙ |
Changes to generic/tclEvent.c.
︙ | ︙ | |||
1040 1041 1042 1043 1044 1045 1046 | TclInitThreadStorage(); /* Creates master hash table for * thread local storage */ #if USE_TCLALLOC TclInitAlloc(); /* Process wide mutex init */ #endif #if defined(TCL_THREADS) && defined(USE_THREAD_ALLOC) | | | 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 | TclInitThreadStorage(); /* Creates master hash table for * thread local storage */ #if USE_TCLALLOC TclInitAlloc(); /* Process wide mutex init */ #endif #if defined(TCL_THREADS) && defined(USE_THREAD_ALLOC) TclInitThreadAlloc(); /* Setup thread allocator caches */ #endif #ifdef TCL_MEM_DEBUG TclInitDbCkalloc(); /* Process wide mutex init */ #endif TclpInitPlatform(); /* Creates signal handler(s) */ TclInitDoubleConversion(); /* Initializes constants for |
︙ | ︙ |
Changes to generic/tclExecute.c.
︙ | ︙ | |||
508 509 510 511 512 513 514 | ? (((TclIsNaN((objPtr)->internalRep.doubleValue)) \ ? (*(tPtr) = TCL_NUMBER_NAN) \ : (*(tPtr) = TCL_NUMBER_DOUBLE)), \ *(ptrPtr) = (ClientData) \ (&((objPtr)->internalRep.doubleValue)), TCL_OK) : \ ((((objPtr)->typePtr == NULL) && ((objPtr)->bytes == NULL)) || \ (((objPtr)->bytes != NULL) && ((objPtr)->length == 0))) \ | | | | 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 | ? (((TclIsNaN((objPtr)->internalRep.doubleValue)) \ ? (*(tPtr) = TCL_NUMBER_NAN) \ : (*(tPtr) = TCL_NUMBER_DOUBLE)), \ *(ptrPtr) = (ClientData) \ (&((objPtr)->internalRep.doubleValue)), TCL_OK) : \ ((((objPtr)->typePtr == NULL) && ((objPtr)->bytes == NULL)) || \ (((objPtr)->bytes != NULL) && ((objPtr)->length == 0))) \ ? TCL_ERROR : \ TclGetNumberFromObj((interp), (objPtr), (ptrPtr), (tPtr))) #else /* !TCL_WIDE_INT_IS_LONG */ #define GetNumberFromObj(interp, objPtr, ptrPtr, tPtr) \ (((objPtr)->typePtr == &tclIntType) \ ? (*(tPtr) = TCL_NUMBER_LONG, \ *(ptrPtr) = (ClientData) \ (&((objPtr)->internalRep.longValue)), TCL_OK) : \ ((objPtr)->typePtr == &tclWideIntType) \ ? (*(tPtr) = TCL_NUMBER_WIDE, \ *(ptrPtr) = (ClientData) \ (&((objPtr)->internalRep.wideValue)), TCL_OK) : \ ((objPtr)->typePtr == &tclDoubleType) \ ? (((TclIsNaN((objPtr)->internalRep.doubleValue)) \ ? (*(tPtr) = TCL_NUMBER_NAN) \ : (*(tPtr) = TCL_NUMBER_DOUBLE)), \ *(ptrPtr) = (ClientData) \ (&((objPtr)->internalRep.doubleValue)), TCL_OK) : \ ((((objPtr)->typePtr == NULL) && ((objPtr)->bytes == NULL)) || \ (((objPtr)->bytes != NULL) && ((objPtr)->length == 0))) \ ? TCL_ERROR : \ TclGetNumberFromObj((interp), (objPtr), (ptrPtr), (tPtr))) #endif /* TCL_WIDE_INT_IS_LONG */ /* * Macro used in this file to save a function call for common uses of * Tcl_GetBooleanFromObj(). The ANSI C "prototype" is: * |
︙ | ︙ | |||
906 907 908 909 910 911 912 | * [sizeof(Tcl_Obj*)] */ { ExecEnv *eePtr = ckalloc(sizeof(ExecEnv)); ExecStack *esPtr = ckalloc(sizeof(ExecStack) + (size_t) (size-1) * sizeof(Tcl_Obj *)); eePtr->execStackPtr = esPtr; | | | | 906 907 908 909 910 911 912 913 914 915 916 917 918 919 920 921 922 | * [sizeof(Tcl_Obj*)] */ { ExecEnv *eePtr = ckalloc(sizeof(ExecEnv)); ExecStack *esPtr = ckalloc(sizeof(ExecStack) + (size_t) (size-1) * sizeof(Tcl_Obj *)); eePtr->execStackPtr = esPtr; TclNewLongObj(eePtr->constants[0], 0); Tcl_IncrRefCount(eePtr->constants[0]); TclNewLongObj(eePtr->constants[1], 1); Tcl_IncrRefCount(eePtr->constants[1]); eePtr->interp = interp; eePtr->callbackPtr = NULL; eePtr->corPtr = NULL; eePtr->rewind = 0; esPtr->prevPtr = NULL; |
︙ | ︙ | |||
5946 5947 5948 5949 5950 5951 5952 | case INST_LE: case INST_GE: { int iResult = 0, compare = 0; value2Ptr = OBJ_AT_TOS; valuePtr = OBJ_UNDER_TOS; | | > | | < < < < < < < < < < < < < < < | 5946 5947 5948 5949 5950 5951 5952 5953 5954 5955 5956 5957 5958 5959 5960 5961 5962 5963 5964 5965 5966 5967 5968 5969 5970 5971 5972 5973 5974 5975 5976 5977 5978 5979 | case INST_LE: case INST_GE: { int iResult = 0, compare = 0; value2Ptr = OBJ_AT_TOS; valuePtr = OBJ_UNDER_TOS; if (GetNumberFromObj(NULL, valuePtr, &ptr1, &type1) != TCL_OK || GetNumberFromObj(NULL, value2Ptr, &ptr2, &type2) != TCL_OK) { /* * At least one non-numeric argument - compare as strings. */ goto stringCompare; } if (type1 == TCL_NUMBER_NAN || type2 == TCL_NUMBER_NAN) { /* * NaN arg: NaN != to everything, other compares are false. */ iResult = (*pc == INST_NEQ); goto foundResult; } if (valuePtr == value2Ptr) { compare = MP_EQ; goto convertComparison; } if ((type1 == TCL_NUMBER_LONG) && (type2 == TCL_NUMBER_LONG)) { l1 = *((const long *)ptr1); l2 = *((const long *)ptr2); compare = (l1 < l2) ? MP_LT : ((l1 > l2) ? MP_GT : MP_EQ); } else { compare = TclCompareTwoNumbers(valuePtr, value2Ptr); } |
︙ | ︙ | |||
7673 7674 7675 7676 7677 7678 7679 7680 7681 7682 7683 7684 7685 7686 | NEXT_INST_F(5, 2, 0); } /* * End of dictionary-related instructions. * ----------------------------------------------------------------- */ default: Tcl_Panic("TclNRExecuteByteCode: unrecognized opCode %u", *pc); } /* end of switch on opCode */ /* * Block for variables needed to process exception returns. | > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 7659 7660 7661 7662 7663 7664 7665 7666 7667 7668 7669 7670 7671 7672 7673 7674 7675 7676 7677 7678 7679 7680 7681 7682 7683 7684 7685 7686 7687 7688 7689 7690 7691 7692 7693 7694 7695 7696 7697 7698 7699 7700 7701 7702 7703 7704 7705 | NEXT_INST_F(5, 2, 0); } /* * End of dictionary-related instructions. * ----------------------------------------------------------------- */ case INST_CLOCK_READ: { /* Read the wall clock */ Tcl_WideInt wval; Tcl_Time now; switch(TclGetUInt1AtPtr(pc+1)) { case 0: /* clicks */ #ifdef TCL_WIDE_CLICKS wval = TclpGetWideClicks(); #else wval = (Tcl_WideInt) TclpGetClicks(); #endif break; case 1: /* microseconds */ Tcl_GetTime(&now); wval = (Tcl_WideInt) now.sec * 1000000 + now.usec; break; case 2: /* milliseconds */ Tcl_GetTime(&now); wval = (Tcl_WideInt) now.sec * 1000 + now.usec / 1000; break; case 3: /* seconds */ Tcl_GetTime(&now); wval = (Tcl_WideInt) now.sec; break; default: Tcl_Panic("clockRead instruction with unknown clock#"); } /* TclNewWideObj(objResultPtr, wval); doesn't exist */ objResultPtr = Tcl_NewWideIntObj(wval); TRACE_WITH_OBJ(("=> "), objResultPtr); NEXT_INST_F(2, 0, 1); } default: Tcl_Panic("TclNRExecuteByteCode: unrecognized opCode %u", *pc); } /* end of switch on opCode */ /* * Block for variables needed to process exception returns. |
︙ | ︙ |
Changes to generic/tclHistory.c.
︙ | ︙ | |||
58 59 60 61 62 63 64 | const char *cmd, /* Command to record. */ int flags) /* Additional flags. TCL_NO_EVAL means only * record: don't execute command. * TCL_EVAL_GLOBAL means use Tcl_GlobalEval * instead of Tcl_Eval. */ { register Tcl_Obj *cmdPtr; | < | | | 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 | const char *cmd, /* Command to record. */ int flags) /* Additional flags. TCL_NO_EVAL means only * record: don't execute command. * TCL_EVAL_GLOBAL means use Tcl_GlobalEval * instead of Tcl_Eval. */ { register Tcl_Obj *cmdPtr; int result; if (cmd[0]) { /* * Call Tcl_RecordAndEvalObj to do the actual work. */ cmdPtr = Tcl_NewStringObj(cmd, -1); Tcl_IncrRefCount(cmdPtr); result = Tcl_RecordAndEvalObj(interp, cmdPtr, flags); /* * Move the interpreter's object result to the string result, then * reset the object result. */ |
︙ | ︙ |
Changes to generic/tclIO.c.
︙ | ︙ | |||
317 318 319 320 321 322 323 | * a channel name in the context of an interp. Saves the lookup * result and values needed to check its continued validity. */ typedef struct ResolvedChanName { ChannelState *statePtr; /* The saved lookup result */ Tcl_Interp *interp; /* The interp in which the lookup was done. */ | | | 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 | * a channel name in the context of an interp. Saves the lookup * result and values needed to check its continued validity. */ typedef struct ResolvedChanName { ChannelState *statePtr; /* The saved lookup result */ Tcl_Interp *interp; /* The interp in which the lookup was done. */ size_t epoch; /* The epoch of the channel when the lookup * was done. Use to verify validity. */ size_t refCount; /* Share this struct among many Tcl_Obj. */ } ResolvedChanName; static void DupChannelIntRep(Tcl_Obj *objPtr, Tcl_Obj *copyPtr); static void FreeChannelIntRep(Tcl_Obj *objPtr); |
︙ | ︙ | |||
7123 7124 7125 7126 7127 7128 7129 | } return curPos + outputBuffered; } /* *--------------------------------------------------------------------------- * | < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < | 7123 7124 7125 7126 7127 7128 7129 7130 7131 7132 7133 7134 7135 7136 | } return curPos + outputBuffered; } /* *--------------------------------------------------------------------------- * * Tcl_TruncateChannel -- * * Truncate a channel to the given length. * * Results: * TCL_OK on success, TCL_ERROR if the operation failed (e.g. is not * supported by the type of channel, or the underlying OS operation |
︙ | ︙ | |||
9313 9314 9315 9316 9317 9318 9319 | /* Split the overflowing buffer in two */ int extra = (int) (inBytes - csPtr->toRead); /* Note that going with int for extra assumes that inBytes is not too * much over toRead to require a wide itself. If that gets violated * then the calculations involving extra must be made wide too. * * Noted with Win32/MSVC debug build treating the warning (possible of | | | 9272 9273 9274 9275 9276 9277 9278 9279 9280 9281 9282 9283 9284 9285 9286 | /* Split the overflowing buffer in two */ int extra = (int) (inBytes - csPtr->toRead); /* Note that going with int for extra assumes that inBytes is not too * much over toRead to require a wide itself. If that gets violated * then the calculations involving extra must be made wide too. * * Noted with Win32/MSVC debug build treating the warning (possible of * data in __int64 to int conversion) as error. */ bufPtr = AllocChannelBuffer(extra); tail->nextAdded -= extra; memcpy(InsertPoint(bufPtr), InsertPoint(tail), extra); bufPtr->nextAdded += extra; |
︙ | ︙ |
Changes to generic/tclIO.h.
︙ | ︙ | |||
210 211 212 213 214 215 216 | */ Tcl_Obj* chanMsg; Tcl_Obj* unreportedMsg; /* Non-NULL if an error report was deferred * because it happened in the background. The * value is the chanMg, if any. #219's * companion to 'unreportedError'. */ | | | 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 | */ Tcl_Obj* chanMsg; Tcl_Obj* unreportedMsg; /* Non-NULL if an error report was deferred * because it happened in the background. The * value is the chanMg, if any. #219's * companion to 'unreportedError'. */ size_t epoch; /* Used to test validity of stored channelname * lookup results. */ } ChannelState; /* * Values for the flags field in Channel. Any ORed combination of the * following flags can be stored in the field. These flags record various * options and state bits about the channel. In addition to the flags below, |
︙ | ︙ |
Changes to generic/tclIOCmd.c.
︙ | ︙ | |||
1481 1482 1483 1484 1485 1486 1487 | Tcl_SocketObjCmd( ClientData notUsed, /* Not used. */ Tcl_Interp *interp, /* Current interpreter. */ int objc, /* Number of arguments. */ Tcl_Obj *const objv[]) /* Argument objects. */ { static const char *const socketOptions[] = { | | | | | | | 1481 1482 1483 1484 1485 1486 1487 1488 1489 1490 1491 1492 1493 1494 1495 1496 1497 1498 1499 1500 1501 1502 1503 | Tcl_SocketObjCmd( ClientData notUsed, /* Not used. */ Tcl_Interp *interp, /* Current interpreter. */ int objc, /* Number of arguments. */ Tcl_Obj *const objv[]) /* Argument objects. */ { static const char *const socketOptions[] = { "-async", "-backlog", "-myaddr", "-myport", "-reuseaddr", "-reuseport", "-server", NULL }; enum socketOptions { SKT_ASYNC, SKT_BACKLOG, SKT_MYADDR, SKT_MYPORT, SKT_REUSEADDR, SKT_REUSEPORT, SKT_SERVER }; int optionIndex, a, server = 0, async = 0, reusep = -1, reusea = -1, backlog = -1; unsigned int flags = 0; const char *host, *port, *myaddr = NULL, *myport = NULL; Tcl_Obj *script = NULL; Tcl_Channel chan; if (TclpHasSockets(interp) != TCL_OK) { return TCL_ERROR; |
︙ | ︙ | |||
1573 1574 1575 1576 1577 1578 1579 1580 1581 1582 1583 1584 1585 1586 | Tcl_SetObjResult(interp, Tcl_NewStringObj( "no argument given for -reuseport option", -1)); return TCL_ERROR; } if (Tcl_GetBooleanFromObj(interp, objv[a], &reusep) != TCL_OK) { return TCL_ERROR; } break; default: Tcl_Panic("Tcl_SocketObjCmd: bad option index to SocketOptions"); } } if (server) { host = myaddr; /* NULL implies INADDR_ANY */ | > > > > > > > > > > > | 1573 1574 1575 1576 1577 1578 1579 1580 1581 1582 1583 1584 1585 1586 1587 1588 1589 1590 1591 1592 1593 1594 1595 1596 1597 | Tcl_SetObjResult(interp, Tcl_NewStringObj( "no argument given for -reuseport option", -1)); return TCL_ERROR; } if (Tcl_GetBooleanFromObj(interp, objv[a], &reusep) != TCL_OK) { return TCL_ERROR; } break; case SKT_BACKLOG: a++; if (a >= objc) { Tcl_SetObjResult(interp, Tcl_NewStringObj( "no argument given for -backlog option", -1)); return TCL_ERROR; } if (Tcl_GetIntFromObj(interp, objv[a], &backlog) != TCL_OK) { return TCL_ERROR; } break; default: Tcl_Panic("Tcl_SocketObjCmd: bad option index to SocketOptions"); } } if (server) { host = myaddr; /* NULL implies INADDR_ANY */ |
︙ | ︙ | |||
1598 1599 1600 1601 1602 1603 1604 | wrongNumArgs: iPtr = (Interp *) interp; Tcl_WrongNumArgs(interp, 1, objv, "?-myaddr addr? ?-myport myport? ?-async? host port"); iPtr->flags |= INTERP_ALTERNATE_WRONG_ARGS; Tcl_WrongNumArgs(interp, 1, objv, "-server command ?-reuseaddr boolean? ?-reuseport boolean? " | | | | | > | | > > | > > | > | > > | > > | > | | > > | | > > | < | | | 1609 1610 1611 1612 1613 1614 1615 1616 1617 1618 1619 1620 1621 1622 1623 1624 1625 1626 1627 1628 1629 1630 1631 1632 1633 1634 1635 1636 1637 1638 1639 1640 1641 1642 1643 1644 1645 1646 1647 1648 1649 1650 1651 1652 1653 1654 1655 1656 1657 1658 1659 1660 1661 1662 1663 1664 1665 1666 1667 1668 1669 1670 1671 1672 1673 1674 1675 1676 | wrongNumArgs: iPtr = (Interp *) interp; Tcl_WrongNumArgs(interp, 1, objv, "?-myaddr addr? ?-myport myport? ?-async? host port"); iPtr->flags |= INTERP_ALTERNATE_WRONG_ARGS; Tcl_WrongNumArgs(interp, 1, objv, "-server command ?-reuseaddr boolean? ?-reuseport boolean? " "?-myaddr addr? ?-backlog count? port"); return TCL_ERROR; } if (!server && (reusea != -1 || reusep != -1 || backlog != -1)) { Tcl_SetObjResult(interp, Tcl_NewStringObj( "options -backlog, -reuseaddr and -reuseport are only valid " "for servers", -1)); return TCL_ERROR; } /* * Set the options to their default value if the user didn't override * their value. */ if (reusep == -1) { reusep = 0; } if (reusea == -1) { reusea = 1; } /* * Build the bitset with the flags values. */ if (reusea) { flags |= TCL_TCPSERVER_REUSEADDR; } if (reusep) { flags |= TCL_TCPSERVER_REUSEPORT; } /* * All the arguments should have been parsed by now, 'a' points to the * last one, the port number. */ if (a != objc-1) { goto wrongNumArgs; } port = TclGetString(objv[a]); if (server) { AcceptCallback *acceptCallbackPtr = ckalloc(sizeof(AcceptCallback)); Tcl_IncrRefCount(script); acceptCallbackPtr->script = script; acceptCallbackPtr->interp = interp; chan = Tcl_OpenTcpServerEx(interp, port, host, flags, backlog, AcceptCallbackProc, acceptCallbackPtr); if (chan == NULL) { Tcl_DecrRefCount(script); ckfree(acceptCallbackPtr); return TCL_ERROR; } /* |
︙ | ︙ | |||
1661 1662 1663 1664 1665 1666 1667 | * Register a close callback. This callback will inform the * interpreter (if it still exists) that this channel does not need to * be informed when the interpreter is deleted. */ Tcl_CreateCloseHandler(chan, TcpServerCloseProc, acceptCallbackPtr); } else { | | | 1686 1687 1688 1689 1690 1691 1692 1693 1694 1695 1696 1697 1698 1699 1700 | * Register a close callback. This callback will inform the * interpreter (if it still exists) that this channel does not need to * be informed when the interpreter is deleted. */ Tcl_CreateCloseHandler(chan, TcpServerCloseProc, acceptCallbackPtr); } else { chan = Tcl_OpenTcpClientEx(interp, port, host, myaddr, myport, async); if (chan == NULL) { return TCL_ERROR; } } Tcl_RegisterChannel(interp, chan); Tcl_SetObjResult(interp, Tcl_NewStringObj(Tcl_GetChannelName(chan), -1)); |
︙ | ︙ |
Changes to generic/tclIOSock.c.
︙ | ︙ | |||
8 9 10 11 12 13 14 | * See the file "license.terms" for information on usage and redistribution of * this file, and for a DISCLAIMER OF ALL WARRANTIES. */ #include "tclInt.h" #if defined(_WIN32) && defined(UNICODE) | > | > | > > > | 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 | * See the file "license.terms" for information on usage and redistribution of * this file, and for a DISCLAIMER OF ALL WARRANTIES. */ #include "tclInt.h" #if defined(_WIN32) && defined(UNICODE) /* * On Windows, we need to do proper Unicode->UTF-8 conversion. */ typedef struct ThreadSpecificData { int initialized; Tcl_DString errorMsg; /* UTF-8 encoded error-message */ } ThreadSpecificData; static Tcl_ThreadDataKey dataKey; #undef gai_strerror static const char * gai_strerror( int code) { ThreadSpecificData *tsdPtr = TCL_TSD_INIT(&dataKey); if (tsdPtr->initialized) { Tcl_DStringFree(&tsdPtr->errorMsg); } else { tsdPtr->initialized = 1; } |
︙ | ︙ | |||
122 123 124 125 126 127 128 | if (current < size) { len = sizeof(int); setsockopt((SOCKET)(size_t) sock, SOL_SOCKET, SO_SNDBUF, (char *) &size, len); } len = sizeof(int); getsockopt((SOCKET)(size_t) sock, SOL_SOCKET, SO_RCVBUF, | | | 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 | if (current < size) { len = sizeof(int); setsockopt((SOCKET)(size_t) sock, SOL_SOCKET, SO_SNDBUF, (char *) &size, len); } len = sizeof(int); getsockopt((SOCKET)(size_t) sock, SOL_SOCKET, SO_RCVBUF, (char *) ¤t, &len); if (current < size) { len = sizeof(int); setsockopt((SOCKET)(size_t) sock, SOL_SOCKET, SO_RCVBUF, (char *) &size, len); } return TCL_OK; } |
︙ | ︙ | |||
208 209 210 211 212 213 214 | hints.ai_socktype = SOCK_STREAM; #if 0 /* * We found some problems when using AI_ADDRCONFIG, e.g. on systems that * have no networking besides the loopback interface and want to resolve * localhost. See [Bugs 3385024, 3382419, 3382431]. As the advantage of | | | 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 | hints.ai_socktype = SOCK_STREAM; #if 0 /* * We found some problems when using AI_ADDRCONFIG, e.g. on systems that * have no networking besides the loopback interface and want to resolve * localhost. See [Bugs 3385024, 3382419, 3382431]. As the advantage of * using AI_ADDRCONFIG is probably low even in situations where it works, * we'll leave it out for now. After all, it is just an optimisation. * * Missing on: OpenBSD, NetBSD. * Causes failure when used on AIX 5.1 and HP-UX */ #if defined(AI_ADDRCONFIG) && !defined(_AIX) && !defined(__hpux) |
︙ | ︙ | |||
293 294 295 296 297 298 299 | * is left in the interp's result if interp is not NULL. * * Side effects: * Opens a server socket and creates a new channel. * *---------------------------------------------------------------------- */ | > > > | > | > | < | | | 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 | * is left in the interp's result if interp is not NULL. * * Side effects: * Opens a server socket and creates a new channel. * *---------------------------------------------------------------------- */ Tcl_Channel Tcl_OpenTcpServer( Tcl_Interp *interp, int port, const char *host, Tcl_TcpAcceptProc *acceptProc, ClientData callbackData) { char portbuf[TCL_INTEGER_SPACE]; TclFormatInt(portbuf, port); return Tcl_OpenTcpServerEx(interp, portbuf, host, -1, TCL_TCPSERVER_REUSEADDR, acceptProc, callbackData); } /* * Local Variables: * mode: c * c-basic-offset: 4 * fill-column: 78 * End: */ |
Changes to generic/tclIndexObj.c.
︙ | ︙ | |||
97 98 99 100 101 102 103 104 105 106 107 108 109 110 | * Side effects: * The result of the lookup is cached as the internal rep of objPtr, so * that repeated lookups can be done quickly. * *---------------------------------------------------------------------- */ #undef Tcl_GetIndexFromObj int Tcl_GetIndexFromObj( Tcl_Interp *interp, /* Used for error reporting if not NULL. */ Tcl_Obj *objPtr, /* Object containing the string to lookup. */ const char *const*tablePtr, /* Array of strings to compare against the * value of objPtr; last entry must be NULL | > | 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 | * Side effects: * The result of the lookup is cached as the internal rep of objPtr, so * that repeated lookups can be done quickly. * *---------------------------------------------------------------------- */ #ifndef TCL_NO_DEPRECATED #undef Tcl_GetIndexFromObj int Tcl_GetIndexFromObj( Tcl_Interp *interp, /* Used for error reporting if not NULL. */ Tcl_Obj *objPtr, /* Object containing the string to lookup. */ const char *const*tablePtr, /* Array of strings to compare against the * value of objPtr; last entry must be NULL |
︙ | ︙ | |||
133 134 135 136 137 138 139 140 141 142 143 144 145 146 | *indexPtr = indexRep->index; return TCL_OK; } } return Tcl_GetIndexFromObjStruct(interp, objPtr, tablePtr, sizeof(char *), msg, flags, indexPtr); } /* *---------------------------------------------------------------------- * * GetIndexFromObjList -- * * This procedure looks up an object's value in a table of strings and | > | 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 | *indexPtr = indexRep->index; return TCL_OK; } } return Tcl_GetIndexFromObjStruct(interp, objPtr, tablePtr, sizeof(char *), msg, flags, indexPtr); } #endif /* TCL_NO_DEPRECATED */ /* *---------------------------------------------------------------------- * * GetIndexFromObjList -- * * This procedure looks up an object's value in a table of strings and |
︙ | ︙ |
Changes to generic/tclInt.h.
︙ | ︙ | |||
261 262 263 264 265 266 267 | * strings; values have type (Namespace *). */ #else Tcl_HashTable *childTablePtr; /* Contains any child namespaces. Indexed by * strings; values have type (Namespace *). If * NULL, there are no children. */ #endif | | | 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 | * strings; values have type (Namespace *). */ #else Tcl_HashTable *childTablePtr; /* Contains any child namespaces. Indexed by * strings; values have type (Namespace *). If * NULL, there are no children. */ #endif size_t nsId; /* Unique id for the namespace. */ Tcl_Interp *interp; /* The interpreter containing this * namespace. */ int flags; /* OR-ed combination of the namespace status * flags NS_DYING and NS_DEAD listed below. */ int activationCount; /* Number of "activations" or active call * frames for this namespace that are on the * Tcl call stack. The namespace won't be |
︙ | ︙ | |||
295 296 297 298 299 300 301 | * commands; however, no namespace qualifiers * are allowed. NULL if no export patterns are * registered. */ int numExportPatterns; /* Number of export patterns currently * registered using "namespace export". */ int maxExportPatterns; /* Mumber of export patterns for which space * is currently allocated. */ | | | | 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 | * commands; however, no namespace qualifiers * are allowed. NULL if no export patterns are * registered. */ int numExportPatterns; /* Number of export patterns currently * registered using "namespace export". */ int maxExportPatterns; /* Mumber of export patterns for which space * is currently allocated. */ size_t cmdRefEpoch; /* Incremented if a newly added command * shadows a command for which this namespace * has already cached a Command* pointer; this * causes all its cached Command* pointers to * be invalidated. */ size_t resolverEpoch; /* Incremented whenever (a) the name * resolution rules change for this namespace * or (b) a newly added command shadows a * command that is compiled to bytecodes. This * invalidates all byte codes compiled in the * namespace, causing the code to be * recompiled under the new rules.*/ Tcl_ResolveCmdProc *cmdResProc; |
︙ | ︙ | |||
327 328 329 330 331 332 333 | Tcl_ResolveCompiledVarProc *compiledVarResProc; /* If non-null, this procedure overrides the * usual variable resolution mechanism in Tcl. * This procedure is invoked within * LookupCompiledLocal to resolve variable * references within the namespace at compile * time. */ | | | 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 | Tcl_ResolveCompiledVarProc *compiledVarResProc; /* If non-null, this procedure overrides the * usual variable resolution mechanism in Tcl. * This procedure is invoked within * LookupCompiledLocal to resolve variable * references within the namespace at compile * time. */ size_t exportLookupEpoch; /* Incremented whenever a command is added to * a namespace, removed from a namespace or * the exports of a namespace are changed. * Allows TIP#112-driven command lists to be * validated efficiently. */ Tcl_Ensemble *ensembles; /* List of structures that contain the details * of the ensembles that are implemented on * top of this namespace. */ |
︙ | ︙ | |||
428 429 430 431 432 433 434 | typedef struct EnsembleConfig { Namespace *nsPtr; /* The namspace backing this ensemble up. */ Tcl_Command token; /* The token for the command that provides * ensemble support for the namespace, or NULL * if the command has been deleted (or never * existed; the global namespace never has an * ensemble command.) */ | | | 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 | typedef struct EnsembleConfig { Namespace *nsPtr; /* The namspace backing this ensemble up. */ Tcl_Command token; /* The token for the command that provides * ensemble support for the namespace, or NULL * if the command has been deleted (or never * existed; the global namespace never has an * ensemble command.) */ size_t epoch; /* The epoch at which this ensemble's table of * exported commands is valid. */ char **subcommandArrayPtr; /* Array of ensemble subcommand names. At all * consistent points, this will have the same * number of entries as there are entries in * the subcommandTable hash. */ Tcl_HashTable subcommandTable; /* Hash table of ensemble subcommand names, |
︙ | ︙ | |||
1635 1636 1637 1638 1639 1640 1641 | Namespace *nsPtr; /* Points to the namespace containing this * command. */ int refCount; /* 1 if in command hashtable plus 1 for each * reference from a CmdName Tcl object * representing a command's name in a ByteCode * instruction sequence. This structure can be * freed when refCount becomes zero. */ | | | 1635 1636 1637 1638 1639 1640 1641 1642 1643 1644 1645 1646 1647 1648 1649 | Namespace *nsPtr; /* Points to the namespace containing this * command. */ int refCount; /* 1 if in command hashtable plus 1 for each * reference from a CmdName Tcl object * representing a command's name in a ByteCode * instruction sequence. This structure can be * freed when refCount becomes zero. */ size_t cmdEpoch; /* Incremented to invalidate any references * that point to this command when it is * renamed, deleted, hidden, or exposed. */ CompileProc *compileProc; /* Procedure called to compile command. NULL * if no compile proc exists for command. */ Tcl_ObjCmdProc *objProc; /* Object-based command procedure. */ ClientData objClientData; /* Arbitrary value passed to object proc. */ Tcl_CmdProc *proc; /* String-based command procedure. */ |
︙ | ︙ | |||
1858 1859 1860 1861 1862 1863 1864 1865 1866 1867 1868 1869 1870 1871 1872 1873 1874 1875 1876 1877 1878 | * TCL_EVAL_INVOKE call to Tcl_EvalObjv. */ /* * Information used by Tcl_AppendResult to keep track of partial results. * See Tcl_AppendResult code for details. */ char *appendResult; /* Storage space for results generated by * Tcl_AppendResult. Ckalloc-ed. NULL means * not yet allocated. */ int appendAvl; /* Total amount of space available at * partialResult. */ int appendUsed; /* Number of non-null bytes currently stored * at partialResult. */ /* * Information about packages. Used only in tclPkg.c. */ Tcl_HashTable packageTable; /* Describes all of the packages loaded in or * available to this interpreter. Keys are | > > > > > > | 1858 1859 1860 1861 1862 1863 1864 1865 1866 1867 1868 1869 1870 1871 1872 1873 1874 1875 1876 1877 1878 1879 1880 1881 1882 1883 1884 | * TCL_EVAL_INVOKE call to Tcl_EvalObjv. */ /* * Information used by Tcl_AppendResult to keep track of partial results. * See Tcl_AppendResult code for details. */ #ifndef TCL_NO_DEPRECATED char *appendResult; /* Storage space for results generated by * Tcl_AppendResult. Ckalloc-ed. NULL means * not yet allocated. */ int appendAvl; /* Total amount of space available at * partialResult. */ int appendUsed; /* Number of non-null bytes currently stored * at partialResult. */ #else char *appendResultDontUse; int appendAvlDontUse; int appendUsedDontUse; #endif /* * Information about packages. Used only in tclPkg.c. */ Tcl_HashTable packageTable; /* Describes all of the packages loaded in or * available to this interpreter. Keys are |
︙ | ︙ | |||
1926 1927 1928 1929 1930 1931 1932 1933 1934 1935 1936 1937 1938 1939 1940 1941 | struct ExecEnv *execEnvPtr; /* Execution environment for Tcl bytecode * execution. Contains a pointer to the Tcl * evaluation stack. */ Tcl_Obj *emptyObjPtr; /* Points to an object holding an empty * string. Returned by Tcl_ObjSetVar2 when * variable traces change a variable in a * gross way. */ char resultSpace[TCL_RESULT_SIZE+1]; /* Static space holding small results. */ Tcl_Obj *objResultPtr; /* If the last command returned an object * result, this points to it. Should not be * accessed directly; see comment above. */ Tcl_ThreadId threadId; /* ID of thread that owns the interpreter. */ ActiveCommandTrace *activeCmdTracePtr; /* First in list of active command traces for | > > > > | 1932 1933 1934 1935 1936 1937 1938 1939 1940 1941 1942 1943 1944 1945 1946 1947 1948 1949 1950 1951 | struct ExecEnv *execEnvPtr; /* Execution environment for Tcl bytecode * execution. Contains a pointer to the Tcl * evaluation stack. */ Tcl_Obj *emptyObjPtr; /* Points to an object holding an empty * string. Returned by Tcl_ObjSetVar2 when * variable traces change a variable in a * gross way. */ #ifndef TCL_NO_DEPRECATED char resultSpace[TCL_RESULT_SIZE+1]; /* Static space holding small results. */ #else char resultSpaceDontUse[TCL_RESULT_SIZE+1]; #endif Tcl_Obj *objResultPtr; /* If the last command returned an object * result, this points to it. Should not be * accessed directly; see comment above. */ Tcl_ThreadId threadId; /* ID of thread that owns the interpreter. */ ActiveCommandTrace *activeCmdTracePtr; /* First in list of active command traces for |
︙ | ︙ | |||
2741 2742 2743 2744 2745 2746 2747 | /* * Pointer to a heap-allocated string of length zero that the Tcl core uses as * the value of an empty string representation for an object. This value is * shared by all new objects allocated by Tcl_NewObj. */ | < | 2751 2752 2753 2754 2755 2756 2757 2758 2759 2760 2761 2762 2763 2764 | /* * Pointer to a heap-allocated string of length zero that the Tcl core uses as * the value of an empty string representation for an object. This value is * shared by all new objects allocated by Tcl_NewObj. */ MODULE_SCOPE char tclEmptyString; /* *---------------------------------------------------------------- * Procedures shared among Tcl modules but not used by the outside world, * introduced by/for NRE. *---------------------------------------------------------------- |
︙ | ︙ | |||
2941 2942 2943 2944 2945 2946 2947 2948 2949 2950 2951 2952 2953 2954 | MODULE_SCOPE void TclFinalizeLoad(void); MODULE_SCOPE void TclFinalizeLock(void); MODULE_SCOPE void TclFinalizeMemorySubsystem(void); MODULE_SCOPE void TclFinalizeNotifier(void); MODULE_SCOPE void TclFinalizeObjects(void); MODULE_SCOPE void TclFinalizePreserve(void); MODULE_SCOPE void TclFinalizeSynchronization(void); MODULE_SCOPE void TclFinalizeThreadAlloc(void); MODULE_SCOPE void TclFinalizeThreadAllocThread(void); MODULE_SCOPE void TclFinalizeThreadData(int quick); MODULE_SCOPE void TclFinalizeThreadObjects(void); MODULE_SCOPE double TclFloor(const mp_int *a); MODULE_SCOPE void TclFormatNaN(double value, char *buffer); MODULE_SCOPE int TclFSFileAttrIndex(Tcl_Obj *pathPtr, | > | 2950 2951 2952 2953 2954 2955 2956 2957 2958 2959 2960 2961 2962 2963 2964 | MODULE_SCOPE void TclFinalizeLoad(void); MODULE_SCOPE void TclFinalizeLock(void); MODULE_SCOPE void TclFinalizeMemorySubsystem(void); MODULE_SCOPE void TclFinalizeNotifier(void); MODULE_SCOPE void TclFinalizeObjects(void); MODULE_SCOPE void TclFinalizePreserve(void); MODULE_SCOPE void TclFinalizeSynchronization(void); MODULE_SCOPE void TclInitThreadAlloc(void); MODULE_SCOPE void TclFinalizeThreadAlloc(void); MODULE_SCOPE void TclFinalizeThreadAllocThread(void); MODULE_SCOPE void TclFinalizeThreadData(int quick); MODULE_SCOPE void TclFinalizeThreadObjects(void); MODULE_SCOPE double TclFloor(const mp_int *a); MODULE_SCOPE void TclFormatNaN(double value, char *buffer); MODULE_SCOPE int TclFSFileAttrIndex(Tcl_Obj *pathPtr, |
︙ | ︙ | |||
3066 3067 3068 3069 3070 3071 3072 | MODULE_SCOPE void TclpFinalizeMutex(Tcl_Mutex *mutexPtr); MODULE_SCOPE void TclpFinalizePipes(void); MODULE_SCOPE void TclpFinalizeSockets(void); MODULE_SCOPE int TclCreateSocketAddress(Tcl_Interp *interp, struct addrinfo **addrlist, const char *host, const char *service, int willBind, const char **errorMsgPtr); | < < < < | 3076 3077 3078 3079 3080 3081 3082 3083 3084 3085 3086 3087 3088 3089 | MODULE_SCOPE void TclpFinalizeMutex(Tcl_Mutex *mutexPtr); MODULE_SCOPE void TclpFinalizePipes(void); MODULE_SCOPE void TclpFinalizeSockets(void); MODULE_SCOPE int TclCreateSocketAddress(Tcl_Interp *interp, struct addrinfo **addrlist, const char *host, const char *service, int willBind, const char **errorMsgPtr); MODULE_SCOPE int TclpThreadCreate(Tcl_ThreadId *idPtr, Tcl_ThreadCreateProc *proc, ClientData clientData, int stackSize, int flags); MODULE_SCOPE int TclpFindVariable(const char *name, int *lengthPtr); MODULE_SCOPE void TclpInitLibraryPath(char **valuePtr, size_t *lengthPtr, Tcl_Encoding *encodingPtr); MODULE_SCOPE void TclpInitLock(void); |
︙ | ︙ | |||
3114 3115 3116 3117 3118 3119 3120 | MODULE_SCOPE char * TclpReadlink(const char *fileName, Tcl_DString *linkPtr); MODULE_SCOPE void TclpSetInterfaces(void); MODULE_SCOPE void TclpSetVariables(Tcl_Interp *interp); MODULE_SCOPE void * TclThreadStorageKeyGet(Tcl_ThreadDataKey *keyPtr); MODULE_SCOPE void TclThreadStorageKeySet(Tcl_ThreadDataKey *keyPtr, void *data); | | | 3120 3121 3122 3123 3124 3125 3126 3127 3128 3129 3130 3131 3132 3133 3134 | MODULE_SCOPE char * TclpReadlink(const char *fileName, Tcl_DString *linkPtr); MODULE_SCOPE void TclpSetInterfaces(void); MODULE_SCOPE void TclpSetVariables(Tcl_Interp *interp); MODULE_SCOPE void * TclThreadStorageKeyGet(Tcl_ThreadDataKey *keyPtr); MODULE_SCOPE void TclThreadStorageKeySet(Tcl_ThreadDataKey *keyPtr, void *data); MODULE_SCOPE TCL_NORETURN void TclpThreadExit(int status); MODULE_SCOPE void TclRememberCondition(Tcl_Condition *mutex); MODULE_SCOPE void TclRememberJoinableThread(Tcl_ThreadId id); MODULE_SCOPE void TclRememberMutex(Tcl_Mutex *mutex); MODULE_SCOPE void TclRemoveScriptLimitCallbacks(Tcl_Interp *interp); MODULE_SCOPE int TclReToGlob(Tcl_Interp *interp, const char *reStr, int reStrLen, Tcl_DString *dsPtr, int *flagsPtr, int *quantifiersFoundPtr); |
︙ | ︙ | |||
3218 3219 3220 3221 3222 3223 3224 3225 3226 3227 3228 3229 3230 3231 3232 3233 3234 | Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]); MODULE_SCOPE Tcl_Command TclInitArrayCmd(Tcl_Interp *interp); MODULE_SCOPE Tcl_Command TclInitBinaryCmd(Tcl_Interp *interp); MODULE_SCOPE int Tcl_BreakObjCmd(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]); MODULE_SCOPE int Tcl_CaseObjCmd(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]); MODULE_SCOPE int Tcl_CatchObjCmd(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]); MODULE_SCOPE int Tcl_CdObjCmd(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]); MODULE_SCOPE Tcl_Command TclInitChanCmd(Tcl_Interp *interp); | > > | 3224 3225 3226 3227 3228 3229 3230 3231 3232 3233 3234 3235 3236 3237 3238 3239 3240 3241 3242 | Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]); MODULE_SCOPE Tcl_Command TclInitArrayCmd(Tcl_Interp *interp); MODULE_SCOPE Tcl_Command TclInitBinaryCmd(Tcl_Interp *interp); MODULE_SCOPE int Tcl_BreakObjCmd(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]); #ifndef TCL_NO_DEPRECATED MODULE_SCOPE int Tcl_CaseObjCmd(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]); #endif MODULE_SCOPE int Tcl_CatchObjCmd(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]); MODULE_SCOPE int Tcl_CdObjCmd(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]); MODULE_SCOPE Tcl_Command TclInitChanCmd(Tcl_Interp *interp); |
︙ | ︙ | |||
3275 3276 3277 3278 3279 3280 3281 | /* Assemble command function */ MODULE_SCOPE int Tcl_AssembleObjCmd(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]); MODULE_SCOPE int TclNRAssembleObjCmd(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]); | | < | < | 3283 3284 3285 3286 3287 3288 3289 3290 3291 3292 3293 3294 3295 3296 3297 3298 | /* Assemble command function */ MODULE_SCOPE int Tcl_AssembleObjCmd(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]); MODULE_SCOPE int TclNRAssembleObjCmd(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]); MODULE_SCOPE Tcl_Command TclInitEncodingCmd(Tcl_Interp *interp); MODULE_SCOPE int TclMakeEncodingCommandSafe(Tcl_Interp *interp); MODULE_SCOPE int Tcl_EofObjCmd(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]); MODULE_SCOPE int Tcl_ErrorObjCmd(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]); MODULE_SCOPE int Tcl_EvalObjCmd(ClientData clientData, |
︙ | ︙ | |||
3515 3516 3517 3518 3519 3520 3521 3522 3523 3524 3525 3526 3527 3528 | Tcl_Parse *parsePtr, Command *cmdPtr, struct CompileEnv *envPtr); MODULE_SCOPE int TclCompileBreakCmd(Tcl_Interp *interp, Tcl_Parse *parsePtr, Command *cmdPtr, struct CompileEnv *envPtr); MODULE_SCOPE int TclCompileCatchCmd(Tcl_Interp *interp, Tcl_Parse *parsePtr, Command *cmdPtr, struct CompileEnv *envPtr); MODULE_SCOPE int TclCompileConcatCmd(Tcl_Interp *interp, Tcl_Parse *parsePtr, Command *cmdPtr, struct CompileEnv *envPtr); MODULE_SCOPE int TclCompileContinueCmd(Tcl_Interp *interp, Tcl_Parse *parsePtr, Command *cmdPtr, struct CompileEnv *envPtr); | > > > > > > | 3521 3522 3523 3524 3525 3526 3527 3528 3529 3530 3531 3532 3533 3534 3535 3536 3537 3538 3539 3540 | Tcl_Parse *parsePtr, Command *cmdPtr, struct CompileEnv *envPtr); MODULE_SCOPE int TclCompileBreakCmd(Tcl_Interp *interp, Tcl_Parse *parsePtr, Command *cmdPtr, struct CompileEnv *envPtr); MODULE_SCOPE int TclCompileCatchCmd(Tcl_Interp *interp, Tcl_Parse *parsePtr, Command *cmdPtr, struct CompileEnv *envPtr); MODULE_SCOPE int TclCompileClockClicksCmd(Tcl_Interp *interp, Tcl_Parse *parsePtr, Command *cmdPtr, struct CompileEnv *envPtr); MODULE_SCOPE int TclCompileClockReadingCmd(Tcl_Interp *interp, Tcl_Parse *parsePtr, Command *cmdPtr, struct CompileEnv *envPtr); MODULE_SCOPE int TclCompileConcatCmd(Tcl_Interp *interp, Tcl_Parse *parsePtr, Command *cmdPtr, struct CompileEnv *envPtr); MODULE_SCOPE int TclCompileContinueCmd(Tcl_Interp *interp, Tcl_Parse *parsePtr, Command *cmdPtr, struct CompileEnv *envPtr); |
︙ | ︙ | |||
4063 4064 4065 4066 4067 4068 4069 | TclFreeObjStorageEx(NULL, (objPtr)) #ifndef TCL_MEM_DEBUG # define TclNewObj(objPtr) \ TclIncrObjsAllocated(); \ TclAllocObjStorage(objPtr); \ (objPtr)->refCount = 0; \ | | | | 4075 4076 4077 4078 4079 4080 4081 4082 4083 4084 4085 4086 4087 4088 4089 4090 4091 4092 4093 4094 4095 4096 4097 4098 4099 4100 4101 4102 4103 4104 4105 4106 | TclFreeObjStorageEx(NULL, (objPtr)) #ifndef TCL_MEM_DEBUG # define TclNewObj(objPtr) \ TclIncrObjsAllocated(); \ TclAllocObjStorage(objPtr); \ (objPtr)->refCount = 0; \ (objPtr)->bytes = &tclEmptyString; \ (objPtr)->length = 0; \ (objPtr)->typePtr = NULL; \ TCL_DTRACE_OBJ_CREATE(objPtr) /* * Invalidate the string rep first so we can use the bytes value for our * pointer chain, and signal an obj deletion (as opposed to shimmering) with * 'length == -1'. * Use empty 'if ; else' to handle use in unbraced outer if/else conditions. */ # define TclDecrRefCount(objPtr) \ if ((objPtr)->refCount-- > 1) ; else { \ if (!(objPtr)->typePtr || !(objPtr)->typePtr->freeIntRepProc) { \ TCL_DTRACE_OBJ_FREE(objPtr); \ if ((objPtr)->bytes \ && ((objPtr)->bytes != &tclEmptyString)) { \ ckfree((objPtr)->bytes); \ } \ (objPtr)->length = -1; \ TclFreeObjStorage(objPtr); \ TclIncrObjsFreed(); \ } else { \ TclFreeObj(objPtr); \ |
︙ | ︙ | |||
4241 4242 4243 4244 4245 4246 4247 | * This macro should only be called on an unshared objPtr where * objPtr->typePtr->freeIntRepProc == NULL *---------------------------------------------------------------- */ #define TclInitStringRep(objPtr, bytePtr, len) \ if ((len) == 0) { \ | | | 4253 4254 4255 4256 4257 4258 4259 4260 4261 4262 4263 4264 4265 4266 4267 | * This macro should only be called on an unshared objPtr where * objPtr->typePtr->freeIntRepProc == NULL *---------------------------------------------------------------- */ #define TclInitStringRep(objPtr, bytePtr, len) \ if ((len) == 0) { \ (objPtr)->bytes = &tclEmptyString; \ (objPtr)->length = 0; \ } else { \ (objPtr)->bytes = (char *) ckalloc((unsigned) ((len) + 1)); \ memcpy((objPtr)->bytes, (bytePtr), (unsigned) (len)); \ (objPtr)->bytes[len] = '\0'; \ (objPtr)->length = (len); \ } |
︙ | ︙ | |||
4299 4300 4301 4302 4303 4304 4305 | * * MODULE_SCOPE void TclInvalidateStringRep(Tcl_Obj *objPtr); *---------------------------------------------------------------- */ #define TclInvalidateStringRep(objPtr) \ if ((objPtr)->bytes != NULL) { \ | | | 4311 4312 4313 4314 4315 4316 4317 4318 4319 4320 4321 4322 4323 4324 4325 | * * MODULE_SCOPE void TclInvalidateStringRep(Tcl_Obj *objPtr); *---------------------------------------------------------------- */ #define TclInvalidateStringRep(objPtr) \ if ((objPtr)->bytes != NULL) { \ if ((objPtr)->bytes != &tclEmptyString) { \ ckfree((objPtr)->bytes); \ } \ (objPtr)->bytes = NULL; \ } /* *---------------------------------------------------------------- |
︙ | ︙ | |||
4514 4515 4516 4517 4518 4519 4520 | /* *---------------------------------------------------------------- * Macros used by the Tcl core to set a Tcl_Obj's numeric representation * avoiding the corresponding function calls in time critical parts of the * core. They should only be called on unshared objects. The ANSI C * "prototypes" for these macros are: * | < < < < < < < < < < < < < < < | 4526 4527 4528 4529 4530 4531 4532 4533 4534 4535 4536 4537 4538 4539 4540 4541 4542 4543 4544 4545 4546 4547 4548 4549 4550 4551 4552 4553 | /* *---------------------------------------------------------------- * Macros used by the Tcl core to set a Tcl_Obj's numeric representation * avoiding the corresponding function calls in time critical parts of the * core. They should only be called on unshared objects. The ANSI C * "prototypes" for these macros are: * * MODULE_SCOPE void TclSetLongObj(Tcl_Obj *objPtr, long longValue); * MODULE_SCOPE void TclSetWideIntObj(Tcl_Obj *objPtr, Tcl_WideInt w); * MODULE_SCOPE void TclSetDoubleObj(Tcl_Obj *objPtr, double d); *---------------------------------------------------------------- */ #define TclSetLongObj(objPtr, i) \ do { \ TclInvalidateStringRep(objPtr); \ TclFreeIntRep(objPtr); \ (objPtr)->internalRep.longValue = (long)(i); \ (objPtr)->typePtr = &tclIntType; \ } while (0) #ifndef TCL_WIDE_INT_IS_LONG #define TclSetWideIntObj(objPtr, w) \ do { \ TclInvalidateStringRep(objPtr); \ TclFreeIntRep(objPtr); \ (objPtr)->internalRep.wideValue = (Tcl_WideInt)(w); \ (objPtr)->typePtr = &tclWideIntType; \ |
︙ | ︙ | |||
4568 4569 4570 4571 4572 4573 4574 | /* *---------------------------------------------------------------- * Macros used by the Tcl core to create and initialise objects of standard * types, avoiding the corresponding function calls in time critical parts of * the core. The ANSI C "prototypes" for these macros are: * * MODULE_SCOPE void TclNewLongObj(Tcl_Obj *objPtr, long l); | < < < < < < < < | 4565 4566 4567 4568 4569 4570 4571 4572 4573 4574 4575 4576 4577 4578 4579 4580 4581 4582 4583 4584 4585 4586 4587 4588 4589 4590 4591 4592 4593 4594 4595 4596 4597 4598 | /* *---------------------------------------------------------------- * Macros used by the Tcl core to create and initialise objects of standard * types, avoiding the corresponding function calls in time critical parts of * the core. The ANSI C "prototypes" for these macros are: * * MODULE_SCOPE void TclNewLongObj(Tcl_Obj *objPtr, long l); * MODULE_SCOPE void TclNewWideObj(Tcl_Obj *objPtr, Tcl_WideInt w); * MODULE_SCOPE void TclNewDoubleObj(Tcl_Obj *objPtr, double d); * MODULE_SCOPE void TclNewStringObj(Tcl_Obj *objPtr, const char *s, int len); * MODULE_SCOPE void TclNewLiteralStringObj(Tcl_Obj*objPtr, const char *sLiteral); * *---------------------------------------------------------------- */ #ifndef TCL_MEM_DEBUG #define TclNewLongObj(objPtr, i) \ do { \ TclIncrObjsAllocated(); \ TclAllocObjStorage(objPtr); \ (objPtr)->refCount = 0; \ (objPtr)->bytes = NULL; \ (objPtr)->internalRep.longValue = (long)(i); \ (objPtr)->typePtr = &tclIntType; \ TCL_DTRACE_OBJ_CREATE(objPtr); \ } while (0) #define TclNewDoubleObj(objPtr, d) \ do { \ TclIncrObjsAllocated(); \ TclAllocObjStorage(objPtr); \ (objPtr)->refCount = 0; \ (objPtr)->bytes = NULL; \ (objPtr)->internalRep.doubleValue = (double)(d); \ |
︙ | ︙ | |||
4621 4622 4623 4624 4625 4626 4627 | TCL_DTRACE_OBJ_CREATE(objPtr); \ } while (0) #else /* TCL_MEM_DEBUG */ #define TclNewLongObj(objPtr, l) \ (objPtr) = Tcl_NewLongObj(l) | < < < | 4610 4611 4612 4613 4614 4615 4616 4617 4618 4619 4620 4621 4622 4623 | TCL_DTRACE_OBJ_CREATE(objPtr); \ } while (0) #else /* TCL_MEM_DEBUG */ #define TclNewLongObj(objPtr, l) \ (objPtr) = Tcl_NewLongObj(l) #define TclNewDoubleObj(objPtr, d) \ (objPtr) = Tcl_NewDoubleObj(d) #define TclNewStringObj(objPtr, s, len) \ (objPtr) = Tcl_NewStringObj((s), (len)) #endif /* TCL_MEM_DEBUG */ |
︙ | ︙ |
Changes to generic/tclInterp.c.
︙ | ︙ | |||
3529 3530 3531 3532 3533 3534 3535 | /* * Convert everything into a real deletion callback. */ if (deleteProc == (Tcl_LimitHandlerDeleteProc *) TCL_DYNAMIC) { deleteProc = (Tcl_LimitHandlerDeleteProc *) Tcl_Free; } | < < < | 3529 3530 3531 3532 3533 3534 3535 3536 3537 3538 3539 3540 3541 3542 | /* * Convert everything into a real deletion callback. */ if (deleteProc == (Tcl_LimitHandlerDeleteProc *) TCL_DYNAMIC) { deleteProc = (Tcl_LimitHandlerDeleteProc *) Tcl_Free; } /* * Allocate a handler record. */ handlerPtr = ckalloc(sizeof(LimitHandler)); handlerPtr->flags = 0; |
︙ | ︙ |
Changes to generic/tclLink.c.
︙ | ︙ | |||
32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 | union { char c; unsigned char uc; int i; unsigned int ui; short s; unsigned short us; long l; unsigned long ul; Tcl_WideInt w; Tcl_WideUInt uw; float f; double d; } lastValue; /* Last known value of C variable; used to * avoid string conversions. */ int flags; /* Miscellaneous one-bit values; see below for | > > | 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 | union { char c; unsigned char uc; int i; unsigned int ui; short s; unsigned short us; #if !defined(TCL_WIDE_INT_IS_LONG) && !defined(_WIN32) && !defined(__CYGWIN__) long l; unsigned long ul; #endif Tcl_WideInt w; Tcl_WideUInt uw; float f; double d; } lastValue; /* Last known value of C variable; used to * avoid string conversions. */ int flags; /* Miscellaneous one-bit values; see below for |
︙ | ︙ | |||
63 64 65 66 67 68 69 | /* * Forward references to functions defined later in this file: */ static char * LinkTraceProc(ClientData clientData,Tcl_Interp *interp, const char *name1, const char *name2, int flags); static Tcl_Obj * ObjValue(Link *linkPtr); | | | | < | 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 | /* * Forward references to functions defined later in this file: */ static char * LinkTraceProc(ClientData clientData,Tcl_Interp *interp, const char *name1, const char *name2, int flags); static Tcl_Obj * ObjValue(Link *linkPtr); static int GetInvalidIntFromObj(Tcl_Obj *objPtr, int *intPtr); static int GetInvalidWideFromObj(Tcl_Obj *objPtr, Tcl_WideInt *widePtr); static int GetInvalidDoubleFromObj(Tcl_Obj *objPtr, double *doublePtr); /* * Convenience macro for accessing the value of the C variable pointed to by a * link. Note that this macro produces something that may be regarded as an * lvalue or rvalue; it may be assigned to as well as read. Also note that * this macro assumes the name of the variable being accessed (linkPtr); this * is not strictly a good thing, but it keeps the code much shorter and |
︙ | ︙ | |||
126 127 128 129 130 131 132 133 134 135 136 137 138 139 | linkPtr = ckalloc(sizeof(Link)); linkPtr->interp = interp; linkPtr->varName = Tcl_NewStringObj(varName, -1); Tcl_IncrRefCount(linkPtr->varName); linkPtr->addr = addr; linkPtr->type = type & ~TCL_LINK_READ_ONLY; if (type & TCL_LINK_READ_ONLY) { linkPtr->flags = LINK_READ_ONLY; } else { linkPtr->flags = 0; } objPtr = ObjValue(linkPtr); if (Tcl_ObjSetVar2(interp, linkPtr->varName, NULL, objPtr, | > > > > > > > > | 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 | linkPtr = ckalloc(sizeof(Link)); linkPtr->interp = interp; linkPtr->varName = Tcl_NewStringObj(varName, -1); Tcl_IncrRefCount(linkPtr->varName); linkPtr->addr = addr; linkPtr->type = type & ~TCL_LINK_READ_ONLY; #if !defined(TCL_NO_DEPRECATED) && (defined(TCL_WIDE_INT_IS_LONG) \ || defined(_WIN32) || defined(__CYGWIN__)) if (linkPtr->type == 11 /* legacy TCL_LINK_LONG */) { linkPtr->type = TCL_LINK_LONG; } else if (linkPtr->type == 12 /* legacy TCL_LINK_ULONG */) { linkPtr->type = TCL_LINK_ULONG; } #endif if (type & TCL_LINK_READ_ONLY) { linkPtr->flags = LINK_READ_ONLY; } else { linkPtr->flags = 0; } objPtr = ObjValue(linkPtr); if (Tcl_ObjSetVar2(interp, linkPtr->varName, NULL, objPtr, |
︙ | ︙ | |||
259 260 261 262 263 264 265 | ClientData clientData, /* Contains information about the link. */ Tcl_Interp *interp, /* Interpreter containing Tcl variable. */ const char *name1, /* First part of variable name. */ const char *name2, /* Second part of variable name. */ int flags) /* Miscellaneous additional information. */ { Link *linkPtr = clientData; | | > | 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 | ClientData clientData, /* Contains information about the link. */ Tcl_Interp *interp, /* Interpreter containing Tcl variable. */ const char *name1, /* First part of variable name. */ const char *name2, /* Second part of variable name. */ int flags) /* Miscellaneous additional information. */ { Link *linkPtr = clientData; int changed; size_t valueLength; const char *value; char **pp; Tcl_Obj *valueObj; int valueInt; Tcl_WideInt valueWide; double valueDouble; |
︙ | ︙ | |||
331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 | break; case TCL_LINK_USHORT: changed = (LinkedVar(unsigned short) != linkPtr->lastValue.us); break; case TCL_LINK_UINT: changed = (LinkedVar(unsigned int) != linkPtr->lastValue.ui); break; case TCL_LINK_LONG: changed = (LinkedVar(long) != linkPtr->lastValue.l); break; case TCL_LINK_ULONG: changed = (LinkedVar(unsigned long) != linkPtr->lastValue.ul); break; case TCL_LINK_FLOAT: changed = (LinkedVar(float) != linkPtr->lastValue.f); break; case TCL_LINK_STRING: changed = 1; break; default: | > > | 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 | break; case TCL_LINK_USHORT: changed = (LinkedVar(unsigned short) != linkPtr->lastValue.us); break; case TCL_LINK_UINT: changed = (LinkedVar(unsigned int) != linkPtr->lastValue.ui); break; #if !defined(TCL_WIDE_INT_IS_LONG) && !defined(_WIN32) && !defined(__CYGWIN__) case TCL_LINK_LONG: changed = (LinkedVar(long) != linkPtr->lastValue.l); break; case TCL_LINK_ULONG: changed = (LinkedVar(unsigned long) != linkPtr->lastValue.ul); break; #endif case TCL_LINK_FLOAT: changed = (LinkedVar(float) != linkPtr->lastValue.f); break; case TCL_LINK_STRING: changed = 1; break; default: |
︙ | ︙ | |||
378 379 380 381 382 383 384 | */ return (char *) "internal error: linked variable couldn't be read"; } switch (linkPtr->type) { case TCL_LINK_INT: | | < | < | | < | < | < | | < < | < | < | < | > < < | | | | < < | | > < < | | | | < < | | > < < | | | | < < | | > < < | | | | < < | | > < < | | | | < < < < | > | > < < | | | | < < < < | | > < < | | | | < < < < | > | | < | | | | < < < < | | > < < | | | | < < | | | | | 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 | */ return (char *) "internal error: linked variable couldn't be read"; } switch (linkPtr->type) { case TCL_LINK_INT: if (Tcl_GetIntFromObj(NULL, valueObj, &linkPtr->lastValue.i) != TCL_OK && GetInvalidIntFromObj(valueObj, &linkPtr->lastValue.i) != TCL_OK) { Tcl_ObjSetVar2(interp, linkPtr->varName, NULL, ObjValue(linkPtr), TCL_GLOBAL_ONLY); return (char *) "variable must have integer value"; } LinkedVar(int) = linkPtr->lastValue.i; break; case TCL_LINK_WIDE_INT: if (Tcl_GetWideIntFromObj(NULL, valueObj, &linkPtr->lastValue.w) != TCL_OK && GetInvalidWideFromObj(valueObj, &linkPtr->lastValue.w) != TCL_OK) { Tcl_ObjSetVar2(interp, linkPtr->varName, NULL, ObjValue(linkPtr), TCL_GLOBAL_ONLY); return (char *) "variable must have integer value"; } LinkedVar(Tcl_WideInt) = linkPtr->lastValue.w; break; case TCL_LINK_DOUBLE: if (Tcl_GetDoubleFromObj(NULL, valueObj, &linkPtr->lastValue.d) != TCL_OK) { #ifdef ACCEPT_NAN if (valueObj->typePtr != &tclDoubleType) { #endif if (GetInvalidDoubleFromObj(valueObj, &linkPtr->lastValue.d) != TCL_OK) { Tcl_ObjSetVar2(interp, linkPtr->varName, NULL, ObjValue(linkPtr), TCL_GLOBAL_ONLY); return (char *) "variable must have real value"; } #ifdef ACCEPT_NAN } linkPtr->lastValue.d = valueObj->internalRep.doubleValue; #endif } LinkedVar(double) = linkPtr->lastValue.d; break; case TCL_LINK_BOOLEAN: if (Tcl_GetBooleanFromObj(NULL, valueObj, &linkPtr->lastValue.i) != TCL_OK) { Tcl_ObjSetVar2(interp, linkPtr->varName, NULL, ObjValue(linkPtr), TCL_GLOBAL_ONLY); return (char *) "variable must have boolean value"; } LinkedVar(int) = linkPtr->lastValue.i; break; case TCL_LINK_CHAR: if ((Tcl_GetIntFromObj(NULL, valueObj, &valueInt) != TCL_OK && GetInvalidIntFromObj(valueObj, &valueInt) != TCL_OK) || valueInt < SCHAR_MIN || valueInt > SCHAR_MAX) { Tcl_ObjSetVar2(interp, linkPtr->varName, NULL, ObjValue(linkPtr), TCL_GLOBAL_ONLY); return (char *) "variable must have char value"; } LinkedVar(char) = linkPtr->lastValue.c = (char)valueInt; break; case TCL_LINK_UCHAR: if ((Tcl_GetIntFromObj(NULL, valueObj, &valueInt) != TCL_OK && GetInvalidIntFromObj(valueObj, &valueInt) != TCL_OK) || valueInt < 0 || valueInt > UCHAR_MAX) { Tcl_ObjSetVar2(interp, linkPtr->varName, NULL, ObjValue(linkPtr), TCL_GLOBAL_ONLY); return (char *) "variable must have unsigned char value"; } LinkedVar(unsigned char) = linkPtr->lastValue.uc = (unsigned char) valueInt; break; case TCL_LINK_SHORT: if ((Tcl_GetIntFromObj(NULL, valueObj, &valueInt) != TCL_OK && GetInvalidIntFromObj(valueObj, &valueInt) != TCL_OK) || valueInt < SHRT_MIN || valueInt > SHRT_MAX) { Tcl_ObjSetVar2(interp, linkPtr->varName, NULL, ObjValue(linkPtr), TCL_GLOBAL_ONLY); return (char *) "variable must have short value"; } LinkedVar(short) = linkPtr->lastValue.s = (short)valueInt; break; case TCL_LINK_USHORT: if ((Tcl_GetIntFromObj(NULL, valueObj, &valueInt) != TCL_OK && GetInvalidIntFromObj(valueObj, &valueInt) != TCL_OK) || valueInt < 0 || valueInt > USHRT_MAX) { Tcl_ObjSetVar2(interp, linkPtr->varName, NULL, ObjValue(linkPtr), TCL_GLOBAL_ONLY); return (char *) "variable must have unsigned short value"; } LinkedVar(unsigned short) = linkPtr->lastValue.us = (unsigned short)valueInt; break; case TCL_LINK_UINT: if ((Tcl_GetWideIntFromObj(NULL, valueObj, &valueWide) != TCL_OK && GetInvalidWideFromObj(valueObj, &valueWide) != TCL_OK) || valueWide < 0 || valueWide > UINT_MAX) { Tcl_ObjSetVar2(interp, linkPtr->varName, NULL, ObjValue(linkPtr), TCL_GLOBAL_ONLY); return (char *) "variable must have unsigned int value"; } LinkedVar(unsigned int) = linkPtr->lastValue.ui = (unsigned int)valueWide; break; #if !defined(TCL_WIDE_INT_IS_LONG) && !defined(_WIN32) && !defined(__CYGWIN__) case TCL_LINK_LONG: if ((Tcl_GetWideIntFromObj(NULL, valueObj, &valueWide) != TCL_OK && GetInvalidWideFromObj(valueObj, &valueWide) != TCL_OK) || valueWide < LONG_MIN || valueWide > LONG_MAX) { Tcl_ObjSetVar2(interp, linkPtr->varName, NULL, ObjValue(linkPtr), TCL_GLOBAL_ONLY); return (char *) "variable must have long value"; } LinkedVar(long) = linkPtr->lastValue.l = (long)valueWide; break; case TCL_LINK_ULONG: if ((Tcl_GetWideIntFromObj(NULL, valueObj, &valueWide) != TCL_OK && GetInvalidWideFromObj(valueObj, &valueWide) != TCL_OK) || valueWide < 0 || (Tcl_WideUInt) valueWide > ULONG_MAX) { Tcl_ObjSetVar2(interp, linkPtr->varName, NULL, ObjValue(linkPtr), TCL_GLOBAL_ONLY); return (char *) "variable must have unsigned long value"; } LinkedVar(unsigned long) = linkPtr->lastValue.ul = (unsigned long)valueWide; break; #endif case TCL_LINK_WIDE_UINT: /* * FIXME: represent as a bignum. */ if (Tcl_GetWideIntFromObj(NULL, valueObj, &valueWide) != TCL_OK && GetInvalidWideFromObj(valueObj, &valueWide) != TCL_OK) { Tcl_ObjSetVar2(interp, linkPtr->varName, NULL, ObjValue(linkPtr), TCL_GLOBAL_ONLY); return (char *) "variable must have unsigned wide int value"; } LinkedVar(Tcl_WideUInt) = linkPtr->lastValue.uw = (Tcl_WideUInt)valueWide; break; case TCL_LINK_FLOAT: if ((Tcl_GetDoubleFromObj(NULL, valueObj, &valueDouble) != TCL_OK && GetInvalidDoubleFromObj(valueObj, &valueDouble) != TCL_OK) || valueDouble < -FLT_MAX || valueDouble > FLT_MAX) { Tcl_ObjSetVar2(interp, linkPtr->varName, NULL, ObjValue(linkPtr), TCL_GLOBAL_ONLY); return (char *) "variable must have float value"; } LinkedVar(float) = linkPtr->lastValue.f = (float)valueDouble; break; case TCL_LINK_STRING: value = TclGetString(valueObj); valueLength = valueObj->length + 1; pp = (char **) linkPtr->addr; *pp = ckrealloc(*pp, valueLength); memcpy(*pp, value, valueLength); break; default: return (char *) "internal error: bad linked variable type"; } return NULL; } |
︙ | ︙ | |||
638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 | return Tcl_NewIntObj(linkPtr->lastValue.s); case TCL_LINK_USHORT: linkPtr->lastValue.us = LinkedVar(unsigned short); return Tcl_NewIntObj(linkPtr->lastValue.us); case TCL_LINK_UINT: linkPtr->lastValue.ui = LinkedVar(unsigned int); return Tcl_NewWideIntObj((Tcl_WideInt) linkPtr->lastValue.ui); case TCL_LINK_LONG: linkPtr->lastValue.l = LinkedVar(long); return Tcl_NewWideIntObj((Tcl_WideInt) linkPtr->lastValue.l); case TCL_LINK_ULONG: linkPtr->lastValue.ul = LinkedVar(unsigned long); return Tcl_NewWideIntObj((Tcl_WideInt) linkPtr->lastValue.ul); case TCL_LINK_FLOAT: linkPtr->lastValue.f = LinkedVar(float); return Tcl_NewDoubleObj(linkPtr->lastValue.f); case TCL_LINK_WIDE_UINT: linkPtr->lastValue.uw = LinkedVar(Tcl_WideUInt); /* * FIXME: represent as a bignum. | > > | 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 | return Tcl_NewIntObj(linkPtr->lastValue.s); case TCL_LINK_USHORT: linkPtr->lastValue.us = LinkedVar(unsigned short); return Tcl_NewIntObj(linkPtr->lastValue.us); case TCL_LINK_UINT: linkPtr->lastValue.ui = LinkedVar(unsigned int); return Tcl_NewWideIntObj((Tcl_WideInt) linkPtr->lastValue.ui); #if !defined(TCL_WIDE_INT_IS_LONG) && !defined(_WIN32) && !defined(__CYGWIN__) case TCL_LINK_LONG: linkPtr->lastValue.l = LinkedVar(long); return Tcl_NewWideIntObj((Tcl_WideInt) linkPtr->lastValue.l); case TCL_LINK_ULONG: linkPtr->lastValue.ul = LinkedVar(unsigned long); return Tcl_NewWideIntObj((Tcl_WideInt) linkPtr->lastValue.ul); #endif case TCL_LINK_FLOAT: linkPtr->lastValue.f = LinkedVar(float); return Tcl_NewDoubleObj(linkPtr->lastValue.f); case TCL_LINK_WIDE_UINT: linkPtr->lastValue.uw = LinkedVar(Tcl_WideUInt); /* * FIXME: represent as a bignum. |
︙ | ︙ | |||
684 685 686 687 688 689 690 | NULL, /* dupIntRepProc */ NULL, /* updateStringProc */ SetInvalidRealFromAny /* setFromAnyProc */ }; static int SetInvalidRealFromAny(Tcl_Interp *interp, Tcl_Obj *objPtr) { | < | | | | | | | < < | > > > > | > > > | | > > > > > | > | | | < | | > > > > > > | > < < < < | | 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 | NULL, /* dupIntRepProc */ NULL, /* updateStringProc */ SetInvalidRealFromAny /* setFromAnyProc */ }; static int SetInvalidRealFromAny(Tcl_Interp *interp, Tcl_Obj *objPtr) { const char *str; const char *endPtr; str = TclGetString(objPtr); if ((objPtr->length == 1) && (str[0] == '.')){ objPtr->typePtr = &invalidRealType; objPtr->internalRep.doubleValue = 0.0; return TCL_OK; } if (TclParseNumber(NULL, objPtr, NULL, str, objPtr->length, &endPtr, TCL_PARSE_DECIMAL_ONLY) == TCL_OK) { /* If number is followed by [eE][+-]?, then it is an invalid * double, but it could be the start of a valid double. */ if (*endPtr == 'e' || *endPtr == 'E') { ++endPtr; if (*endPtr == '+' || *endPtr == '-') ++endPtr; if (*endPtr == 0) { double doubleValue = 0.0; Tcl_GetDoubleFromObj(NULL, objPtr, &doubleValue); TclFreeIntRep(objPtr); objPtr->typePtr = &invalidRealType; objPtr->internalRep.doubleValue = doubleValue; return TCL_OK; } } } return TCL_ERROR; } /* * This function checks for integer representations, which are valid * when linking with C variables, but which are invalid in other * contexts in Tcl. Handled are "+", "-", "", "0x", "0b" and "0o" * (upperand lowercase). See bug [39f6304c2e]. */ int GetInvalidIntFromObj(Tcl_Obj *objPtr, int *intPtr) { const char *str = TclGetString(objPtr); if ((objPtr->length == 0) || ((objPtr->length == 2) && (str[0] == '0') && strchr("xXbBoO", str[1]))) { *intPtr = 0; return TCL_OK; } else if ((objPtr->length == 1) && strchr("+-", str[0])) { *intPtr = (str[0] == '+'); return TCL_OK; } return TCL_ERROR; } int GetInvalidWideFromObj(Tcl_Obj *objPtr, Tcl_WideInt *widePtr) { int intValue; if (GetInvalidIntFromObj(objPtr, &intValue) != TCL_OK) { return TCL_ERROR; } *widePtr = intValue; return TCL_OK; } /* * This function checks for double representations, which are valid * when linking with C variables, but which are invalid in other * contexts in Tcl. Handled are "+", "-", "", ".", "0x", "0b" and "0o" * (upper- and lowercase) and sequences like "1e-". See bug [39f6304c2e]. */ int GetInvalidDoubleFromObj(Tcl_Obj *objPtr, double *doublePtr) { int intValue; if (objPtr->typePtr == &invalidRealType) { goto gotdouble; } if (GetInvalidIntFromObj(objPtr, &intValue) == TCL_OK) { *doublePtr = (double) intValue; return TCL_OK; } if (SetInvalidRealFromAny(NULL, objPtr) == TCL_OK) { gotdouble: *doublePtr = objPtr->internalRep.doubleValue; return TCL_OK; } return TCL_ERROR; } /* * Local Variables: * mode: c * c-basic-offset: 4 * fill-column: 78 * End: */ |
Changes to generic/tclListObj.c.
︙ | ︙ | |||
370 371 372 373 374 375 376 | * object an empty string rep and a NULL type. */ if (objc > 0) { listRepPtr = NewListIntRep(objc, objv, 1); ListSetIntRep(objPtr, listRepPtr); } else { | | | 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 | * object an empty string rep and a NULL type. */ if (objc > 0) { listRepPtr = NewListIntRep(objc, objv, 1); ListSetIntRep(objPtr, listRepPtr); } else { objPtr->bytes = &tclEmptyString; objPtr->length = 0; } } /* *---------------------------------------------------------------------- * |
︙ | ︙ | |||
461 462 463 464 465 466 467 | * pointers to the list's objects. */ { register List *listRepPtr; if (listPtr->typePtr != &tclListType) { int result; | | | 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 | * pointers to the list's objects. */ { register List *listRepPtr; if (listPtr->typePtr != &tclListType) { int result; if (listPtr->bytes == &tclEmptyString) { *objcPtr = 0; *objvPtr = NULL; return TCL_OK; } result = SetListFromAny(interp, listPtr); if (result != TCL_OK) { return result; |
︙ | ︙ | |||
571 572 573 574 575 576 577 | if (Tcl_IsShared(listPtr)) { Tcl_Panic("%s called with shared object", "Tcl_ListObjAppendElement"); } if (listPtr->typePtr != &tclListType) { int result; | | | 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 | if (Tcl_IsShared(listPtr)) { Tcl_Panic("%s called with shared object", "Tcl_ListObjAppendElement"); } if (listPtr->typePtr != &tclListType) { int result; if (listPtr->bytes == &tclEmptyString) { Tcl_SetListObj(listPtr, 1, &objPtr); return TCL_OK; } result = SetListFromAny(interp, listPtr); if (result != TCL_OK) { return result; } |
︙ | ︙ | |||
735 736 737 738 739 740 741 | Tcl_Obj **objPtrPtr) /* The resulting Tcl_Obj* is stored here. */ { register List *listRepPtr; if (listPtr->typePtr != &tclListType) { int result; | | | 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 | Tcl_Obj **objPtrPtr) /* The resulting Tcl_Obj* is stored here. */ { register List *listRepPtr; if (listPtr->typePtr != &tclListType) { int result; if (listPtr->bytes == &tclEmptyString) { *objPtrPtr = NULL; return TCL_OK; } result = SetListFromAny(interp, listPtr); if (result != TCL_OK) { return result; } |
︙ | ︙ | |||
788 789 790 791 792 793 794 | register int *intPtr) /* The resulting int is stored here. */ { register List *listRepPtr; if (listPtr->typePtr != &tclListType) { int result; | | | 788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 | register int *intPtr) /* The resulting int is stored here. */ { register List *listRepPtr; if (listPtr->typePtr != &tclListType) { int result; if (listPtr->bytes == &tclEmptyString) { *intPtr = 0; return TCL_OK; } result = SetListFromAny(interp, listPtr); if (result != TCL_OK) { return result; } |
︙ | ︙ | |||
859 860 861 862 863 864 865 | register Tcl_Obj **elemPtrs; int needGrow, numElems, numRequired, numAfterLast, start, i, j, isShared; if (Tcl_IsShared(listPtr)) { Tcl_Panic("%s called with shared object", "Tcl_ListObjReplace"); } if (listPtr->typePtr != &tclListType) { | | | 859 860 861 862 863 864 865 866 867 868 869 870 871 872 873 | register Tcl_Obj **elemPtrs; int needGrow, numElems, numRequired, numAfterLast, start, i, j, isShared; if (Tcl_IsShared(listPtr)) { Tcl_Panic("%s called with shared object", "Tcl_ListObjReplace"); } if (listPtr->typePtr != &tclListType) { if (listPtr->bytes == &tclEmptyString) { if (!objc) { return TCL_OK; } Tcl_SetListObj(listPtr, objc, NULL); } else { int result = SetListFromAny(interp, listPtr); |
︙ | ︙ | |||
1646 1647 1648 1649 1650 1651 1652 | if (Tcl_IsShared(listPtr)) { Tcl_Panic("%s called with shared object", "TclListObjSetElement"); } if (listPtr->typePtr != &tclListType) { int result; | | | 1646 1647 1648 1649 1650 1651 1652 1653 1654 1655 1656 1657 1658 1659 1660 | if (Tcl_IsShared(listPtr)) { Tcl_Panic("%s called with shared object", "TclListObjSetElement"); } if (listPtr->typePtr != &tclListType) { int result; if (listPtr->bytes == &tclEmptyString) { if (interp != NULL) { Tcl_SetObjResult(interp, Tcl_NewStringObj("list index out of range", -1)); Tcl_SetErrorCode(interp, "TCL", "OPERATION", "LSET", "BADINDEX", NULL); } return TCL_ERROR; |
︙ | ︙ | |||
1975 1976 1977 1978 1979 1980 1981 | listRepPtr->canonicalFlag = 1; /* * Handle empty list case first, so rest of the routine is simpler. */ if (numElems == 0) { | | | 1975 1976 1977 1978 1979 1980 1981 1982 1983 1984 1985 1986 1987 1988 1989 | listRepPtr->canonicalFlag = 1; /* * Handle empty list case first, so rest of the routine is simpler. */ if (numElems == 0) { listPtr->bytes = &tclEmptyString; listPtr->length = 0; return; } /* * Pass 1: estimate space, gather flags. */ |
︙ | ︙ |
Changes to generic/tclOOCall.c.
︙ | ︙ | |||
615 616 617 618 619 620 621 622 623 624 625 626 627 628 | int isNew; hPtr = Tcl_CreateHashEntry(namesPtr, (char *) namePtr, &isNew); if (isNew) { int isWanted = (!(flags & PUBLIC_METHOD) || (mPtr->flags & PUBLIC_METHOD)) ? IN_LIST : 0; Tcl_SetHashValue(hPtr, INT2PTR(isWanted)); } else if ((PTR2INT(Tcl_GetHashValue(hPtr)) & NO_IMPLEMENTATION) && mPtr->typePtr != NULL) { int isWanted = PTR2INT(Tcl_GetHashValue(hPtr)); isWanted &= ~NO_IMPLEMENTATION; Tcl_SetHashValue(hPtr, INT2PTR(isWanted)); | > | 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 | int isNew; hPtr = Tcl_CreateHashEntry(namesPtr, (char *) namePtr, &isNew); if (isNew) { int isWanted = (!(flags & PUBLIC_METHOD) || (mPtr->flags & PUBLIC_METHOD)) ? IN_LIST : 0; isWanted |= (mPtr->typePtr == NULL ? NO_IMPLEMENTATION : 0); Tcl_SetHashValue(hPtr, INT2PTR(isWanted)); } else if ((PTR2INT(Tcl_GetHashValue(hPtr)) & NO_IMPLEMENTATION) && mPtr->typePtr != NULL) { int isWanted = PTR2INT(Tcl_GetHashValue(hPtr)); isWanted &= ~NO_IMPLEMENTATION; Tcl_SetHashValue(hPtr, INT2PTR(isWanted)); |
︙ | ︙ |
Changes to generic/tclObj.c.
︙ | ︙ | |||
45 46 47 48 49 50 51 | /* * Pointer to a heap-allocated string of length zero that the Tcl core uses as * the value of an empty string representation for an object. This value is * shared by all new objects allocated by Tcl_NewObj. */ char tclEmptyString = '\0'; | < | 45 46 47 48 49 50 51 52 53 54 55 56 57 58 | /* * Pointer to a heap-allocated string of length zero that the Tcl core uses as * the value of an empty string representation for an object. This value is * shared by all new objects allocated by Tcl_NewObj. */ char tclEmptyString = '\0'; #if defined(TCL_MEM_DEBUG) && defined(TCL_THREADS) /* * Structure for tracking the source file and line number where a given * Tcl_Obj was allocated. We also track the pointer to the Tcl_Obj itself, * for sanity checking purposes. */ |
︙ | ︙ | |||
341 342 343 344 345 346 347 | typedef struct ResolvedCmdName { Command *cmdPtr; /* A cached Command pointer. */ Namespace *refNsPtr; /* Points to the namespace containing the * reference (not the namespace that contains * the referenced command). NULL if the name * is fully qualified.*/ | | | | | 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 | typedef struct ResolvedCmdName { Command *cmdPtr; /* A cached Command pointer. */ Namespace *refNsPtr; /* Points to the namespace containing the * reference (not the namespace that contains * the referenced command). NULL if the name * is fully qualified.*/ size_t refNsId; /* refNsPtr's unique namespace id. Used to * verify that refNsPtr is still valid (e.g., * it's possible that the cmd's containing * namespace was deleted and a new one created * at the same address). */ size_t refNsCmdEpoch; /* Value of the referencing namespace's * cmdRefEpoch when the pointer was cached. * Before using the cached pointer, we check * if the namespace's epoch was incremented; * if so, this cached pointer is invalid. */ size_t cmdEpoch; /* Value of the command's cmdEpoch when this * pointer was cached. Before using the cached * pointer, we check if the cmd's epoch was * incremented; if so, the cmd was renamed, * deleted, hidden, or exposed, and so the * pointer is invalid. */ size_t refCount; /* Reference count: 1 for each cmdName object * that has a pointer to this ResolvedCmdName |
︙ | ︙ | |||
1056 1057 1058 1059 1060 1061 1062 | register Tcl_Obj *objPtr, register const char *file, /* The name of the source file calling this * function; used for debugging. */ register int line) /* Line number in the source file; used for * debugging. */ { objPtr->refCount = 0; | | | 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 | register Tcl_Obj *objPtr, register const char *file, /* The name of the source file calling this * function; used for debugging. */ register int line) /* Line number in the source file; used for * debugging. */ { objPtr->refCount = 0; objPtr->bytes = &tclEmptyString; objPtr->length = 0; objPtr->typePtr = NULL; #ifdef TCL_THREADS /* * Add entry to a thread local map used to check if a Tcl_Obj was * allocated by the currently executing thread. |
︙ | ︙ | |||
1729 1730 1731 1732 1733 1734 1735 | * * This function is normally called when not debugging: i.e., when * TCL_MEM_DEBUG is not defined. It creates a new Tcl_Obj and * initializes it from the argument boolean value. A nonzero "boolValue" * is coerced to 1. * * When TCL_MEM_DEBUG is defined, this function just returns the result | | | | | 1728 1729 1730 1731 1732 1733 1734 1735 1736 1737 1738 1739 1740 1741 1742 1743 1744 1745 1746 1747 1748 1749 1750 1751 1752 1753 1754 1755 1756 1757 1758 1759 1760 1761 1762 1763 1764 1765 1766 1767 1768 1769 1770 1771 1772 | * * This function is normally called when not debugging: i.e., when * TCL_MEM_DEBUG is not defined. It creates a new Tcl_Obj and * initializes it from the argument boolean value. A nonzero "boolValue" * is coerced to 1. * * When TCL_MEM_DEBUG is defined, this function just returns the result * of calling the debugging version Tcl_DbNewLongObj. * * Results: * The newly created object is returned. This object will have an invalid * string representation. The returned object has ref count 0. * * Side effects: * None. * *---------------------------------------------------------------------- */ #undef Tcl_NewBooleanObj #ifdef TCL_MEM_DEBUG Tcl_Obj * Tcl_NewBooleanObj( register int boolValue) /* Boolean used to initialize new object. */ { return Tcl_DbNewLongObj(boolValue!=0, "unknown", 0); } #else /* if not TCL_MEM_DEBUG */ Tcl_Obj * Tcl_NewBooleanObj( register int boolValue) /* Boolean used to initialize new object. */ { register Tcl_Obj *objPtr; TclNewLongObj(objPtr, boolValue!=0); return objPtr; } #endif /* TCL_MEM_DEBUG */ /* *---------------------------------------------------------------------- * |
︙ | ︙ | |||
1790 1791 1792 1793 1794 1795 1796 1797 1798 1799 1800 1801 1802 1803 | * * Side effects: * None. * *---------------------------------------------------------------------- */ #undef Tcl_DbNewBooleanObj #ifdef TCL_MEM_DEBUG Tcl_Obj * Tcl_DbNewBooleanObj( register int boolValue, /* Boolean used to initialize new object. */ const char *file, /* The name of the source file calling this | > | 1789 1790 1791 1792 1793 1794 1795 1796 1797 1798 1799 1800 1801 1802 1803 | * * Side effects: * None. * *---------------------------------------------------------------------- */ #ifndef TCL_NO_DEPRECATED #undef Tcl_DbNewBooleanObj #ifdef TCL_MEM_DEBUG Tcl_Obj * Tcl_DbNewBooleanObj( register int boolValue, /* Boolean used to initialize new object. */ const char *file, /* The name of the source file calling this |
︙ | ︙ | |||
1853 1854 1855 1856 1857 1858 1859 | register Tcl_Obj *objPtr, /* Object whose internal rep to init. */ register int boolValue) /* Boolean used to set object's value. */ { if (Tcl_IsShared(objPtr)) { Tcl_Panic("%s called with shared object", "Tcl_SetBooleanObj"); } | | > | 1853 1854 1855 1856 1857 1858 1859 1860 1861 1862 1863 1864 1865 1866 1867 1868 1869 | register Tcl_Obj *objPtr, /* Object whose internal rep to init. */ register int boolValue) /* Boolean used to set object's value. */ { if (Tcl_IsShared(objPtr)) { Tcl_Panic("%s called with shared object", "Tcl_SetBooleanObj"); } TclSetLongObj(objPtr, boolValue!=0); } #endif /* TCL_NO_DEPRECATED */ /* *---------------------------------------------------------------------- * * Tcl_GetBooleanFromObj -- * * Attempt to return a boolean from the Tcl object "objPtr". This |
︙ | ︙ | |||
2000 2001 2002 2003 2004 2005 2006 | return TCL_ERROR; } static int ParseBoolean( register Tcl_Obj *objPtr) /* The object to parse/convert. */ { | | | > | 2001 2002 2003 2004 2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016 2017 2018 | return TCL_ERROR; } static int ParseBoolean( register Tcl_Obj *objPtr) /* The object to parse/convert. */ { int newBool; char lowerCase[6]; const char *str = TclGetString(objPtr); size_t i, length = objPtr->length; if ((length == 0) || (length > 5)) { /* * Longest valid boolean string rep. is "false". */ return TCL_ERROR; |
︙ | ︙ | |||
2054 2055 2056 2057 2058 2059 2060 | } lowerCase[length] = 0; switch (lowerCase[0]) { case 'y': /* * Checking the 'y' is redundant, but makes the code clearer. */ | | | | | | | | 2056 2057 2058 2059 2060 2061 2062 2063 2064 2065 2066 2067 2068 2069 2070 2071 2072 2073 2074 2075 2076 2077 2078 2079 2080 2081 2082 2083 2084 2085 2086 2087 2088 2089 2090 2091 2092 2093 2094 2095 2096 2097 2098 2099 2100 | } lowerCase[length] = 0; switch (lowerCase[0]) { case 'y': /* * Checking the 'y' is redundant, but makes the code clearer. */ if (strncmp(lowerCase, "yes", length) == 0) { newBool = 1; goto goodBoolean; } return TCL_ERROR; case 'n': if (strncmp(lowerCase, "no", length) == 0) { newBool = 0; goto goodBoolean; } return TCL_ERROR; case 't': if (strncmp(lowerCase, "true", length) == 0) { newBool = 1; goto goodBoolean; } return TCL_ERROR; case 'f': if (strncmp(lowerCase, "false", length) == 0) { newBool = 0; goto goodBoolean; } return TCL_ERROR; case 'o': if (length < 2) { return TCL_ERROR; } if (strncmp(lowerCase, "on", length) == 0) { newBool = 1; goto goodBoolean; } else if (strncmp(lowerCase, "off", length) == 0) { newBool = 0; goto goodBoolean; } return TCL_ERROR; default: return TCL_ERROR; } |
︙ | ︙ | |||
2454 2455 2456 2457 2458 2459 2460 | register Tcl_Obj *objPtr, /* Object whose internal rep to init. */ register int intValue) /* Integer used to set object's value. */ { if (Tcl_IsShared(objPtr)) { Tcl_Panic("%s called with shared object", "Tcl_SetIntObj"); } | | | 2456 2457 2458 2459 2460 2461 2462 2463 2464 2465 2466 2467 2468 2469 2470 | register Tcl_Obj *objPtr, /* Object whose internal rep to init. */ register int intValue) /* Integer used to set object's value. */ { if (Tcl_IsShared(objPtr)) { Tcl_Panic("%s called with shared object", "Tcl_SetIntObj"); } TclSetLongObj(objPtr, intValue); } /* *---------------------------------------------------------------------- * * Tcl_GetIntFromObj -- * |
︙ | ︙ | |||
2780 2781 2782 2783 2784 2785 2786 | goto tooLarge; } #endif if (objPtr->typePtr == &tclDoubleType) { if (interp != NULL) { Tcl_SetObjResult(interp, Tcl_ObjPrintf( "expected integer but got \"%s\"", | | | 2782 2783 2784 2785 2786 2787 2788 2789 2790 2791 2792 2793 2794 2795 2796 | goto tooLarge; } #endif if (objPtr->typePtr == &tclDoubleType) { if (interp != NULL) { Tcl_SetObjResult(interp, Tcl_ObjPrintf( "expected integer but got \"%s\"", TclGetString(objPtr))); Tcl_SetErrorCode(interp, "TCL", "VALUE", "INTEGER", NULL); } return TCL_ERROR; } if (objPtr->typePtr == &tclBignumType) { /* * Must check for those bignum values that can fit in a long, even |
︙ | ︙ | |||
3081 3082 3083 3084 3085 3086 3087 | *wideIntPtr = (Tcl_WideInt) objPtr->internalRep.longValue; return TCL_OK; } if (objPtr->typePtr == &tclDoubleType) { if (interp != NULL) { Tcl_SetObjResult(interp, Tcl_ObjPrintf( "expected integer but got \"%s\"", | | | 3083 3084 3085 3086 3087 3088 3089 3090 3091 3092 3093 3094 3095 3096 3097 | *wideIntPtr = (Tcl_WideInt) objPtr->internalRep.longValue; return TCL_OK; } if (objPtr->typePtr == &tclDoubleType) { if (interp != NULL) { Tcl_SetObjResult(interp, Tcl_ObjPrintf( "expected integer but got \"%s\"", TclGetString(objPtr))); Tcl_SetErrorCode(interp, "TCL", "VALUE", "INTEGER", NULL); } return TCL_ERROR; } if (objPtr->typePtr == &tclBignumType) { /* * Must check for those bignum values that can fit in a |
︙ | ︙ | |||
3390 3391 3392 3393 3394 3395 3396 | mp_init_copy(bignumValue, &temp); } else { UNPACK_BIGNUM(objPtr, *bignumValue); objPtr->internalRep.twoPtrValue.ptr1 = NULL; objPtr->internalRep.twoPtrValue.ptr2 = NULL; objPtr->typePtr = NULL; if (objPtr->bytes == NULL) { | | | | 3392 3393 3394 3395 3396 3397 3398 3399 3400 3401 3402 3403 3404 3405 3406 3407 3408 3409 3410 3411 3412 3413 3414 3415 3416 3417 3418 3419 3420 3421 3422 3423 3424 3425 3426 | mp_init_copy(bignumValue, &temp); } else { UNPACK_BIGNUM(objPtr, *bignumValue); objPtr->internalRep.twoPtrValue.ptr1 = NULL; objPtr->internalRep.twoPtrValue.ptr2 = NULL; objPtr->typePtr = NULL; if (objPtr->bytes == NULL) { TclInitStringRep(objPtr, &tclEmptyString, 0); } } return TCL_OK; } if (objPtr->typePtr == &tclIntType) { TclBNInitBignumFromLong(bignumValue, objPtr->internalRep.longValue); return TCL_OK; } #ifndef TCL_WIDE_INT_IS_LONG if (objPtr->typePtr == &tclWideIntType) { TclBNInitBignumFromWideInt(bignumValue, objPtr->internalRep.wideValue); return TCL_OK; } #endif if (objPtr->typePtr == &tclDoubleType) { if (interp != NULL) { Tcl_SetObjResult(interp, Tcl_ObjPrintf( "expected integer but got \"%s\"", TclGetString(objPtr))); Tcl_SetErrorCode(interp, "TCL", "VALUE", "INTEGER", NULL); } return TCL_ERROR; } } while (TclParseNumber(interp, objPtr, "integer", NULL, -1, NULL, TCL_PARSE_INTEGER_ONLY)==TCL_OK); return TCL_ERROR; |
︙ | ︙ | |||
3960 3961 3962 3963 3964 3965 3966 | TclCompareObjKeys( void *keyPtr, /* New key to compare. */ Tcl_HashEntry *hPtr) /* Existing key to compare. */ { Tcl_Obj *objPtr1 = keyPtr; Tcl_Obj *objPtr2 = (Tcl_Obj *) hPtr->key.oneWordValue; register const char *p1, *p2; | | | 3962 3963 3964 3965 3966 3967 3968 3969 3970 3971 3972 3973 3974 3975 3976 | TclCompareObjKeys( void *keyPtr, /* New key to compare. */ Tcl_HashEntry *hPtr) /* Existing key to compare. */ { Tcl_Obj *objPtr1 = keyPtr; Tcl_Obj *objPtr2 = (Tcl_Obj *) hPtr->key.oneWordValue; register const char *p1, *p2; register size_t l1, l2; /* * If the object pointers are the same then they match. * OPT: this comparison was moved to the caller if (objPtr1 == objPtr2) return 1; */ |
︙ | ︙ | |||
4449 4450 4451 4452 4453 4454 4455 | int Tcl_RepresentationCmd( ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) { | < < | | | > > > > | | | < < > | 4451 4452 4453 4454 4455 4456 4457 4458 4459 4460 4461 4462 4463 4464 4465 4466 4467 4468 4469 4470 4471 4472 4473 4474 4475 4476 4477 4478 4479 4480 4481 4482 4483 4484 4485 4486 4487 4488 4489 4490 4491 | int Tcl_RepresentationCmd( ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) { Tcl_Obj *descObj; if (objc != 2) { Tcl_WrongNumArgs(interp, 1, objv, "value"); return TCL_ERROR; } /* * Value is a bignum with a refcount of 14, object pointer at 0x12345678, * internal representation 0x45671234:0x98765432, string representation * "1872361827361287" */ descObj = Tcl_ObjPrintf("value is a %s with a refcount of %d," " object pointer at %p", objv[1]->typePtr ? objv[1]->typePtr->name : "pure string", objv[1]->refCount, objv[1]); if (objv[1]->typePtr) { if (objv[1]->typePtr == &tclDoubleType) { Tcl_AppendPrintfToObj(descObj, ", internal representation %g", objv[1]->internalRep.doubleValue); } else { Tcl_AppendPrintfToObj(descObj, ", internal representation %p:%p", (void *) objv[1]->internalRep.twoPtrValue.ptr1, (void *) objv[1]->internalRep.twoPtrValue.ptr2); } } if (objv[1]->bytes) { Tcl_AppendToObj(descObj, ", string representation \"", -1); Tcl_AppendLimitedToObj(descObj, objv[1]->bytes, objv[1]->length, 16, "..."); Tcl_AppendToObj(descObj, "\"", -1); |
︙ | ︙ |
Changes to generic/tclParse.c.
︙ | ︙ | |||
1165 1166 1167 1168 1169 1170 1171 1172 1173 1174 1175 1176 1177 1178 1179 1180 | * parse information. */ src++; numBytes--; nestedPtr = TclStackAlloc(parsePtr->interp, sizeof(Tcl_Parse)); while (1) { if (Tcl_ParseCommand(parsePtr->interp, src, numBytes, 1, nestedPtr) != TCL_OK) { parsePtr->errorType = nestedPtr->errorType; parsePtr->term = nestedPtr->term; parsePtr->incomplete = nestedPtr->incomplete; TclStackFree(parsePtr->interp, nestedPtr); return TCL_ERROR; } src = nestedPtr->commandStart + nestedPtr->commandSize; | > > > | | 1165 1166 1167 1168 1169 1170 1171 1172 1173 1174 1175 1176 1177 1178 1179 1180 1181 1182 1183 1184 1185 1186 1187 1188 1189 1190 1191 | * parse information. */ src++; numBytes--; nestedPtr = TclStackAlloc(parsePtr->interp, sizeof(Tcl_Parse)); while (1) { const char *curEnd; if (Tcl_ParseCommand(parsePtr->interp, src, numBytes, 1, nestedPtr) != TCL_OK) { parsePtr->errorType = nestedPtr->errorType; parsePtr->term = nestedPtr->term; parsePtr->incomplete = nestedPtr->incomplete; TclStackFree(parsePtr->interp, nestedPtr); return TCL_ERROR; } curEnd = src + numBytes; src = nestedPtr->commandStart + nestedPtr->commandSize; numBytes = curEnd - src; Tcl_FreeParse(nestedPtr); /* * Check for the closing ']' that ends the command * substitution. It must have been the last character of the * parsed command. */ |
︙ | ︙ |
Changes to generic/tclPathObj.c.
︙ | ︙ | |||
2604 2605 2606 2607 2608 2609 2610 | Tcl_Panic("Called UpdateStringOfFsPath with invalid object"); } copy = AppendPath(fsPathPtr->cwdPtr, fsPathPtr->normPathPtr); pathPtr->bytes = TclGetStringFromObj(copy, &cwdLen); pathPtr->length = cwdLen; | | | 2604 2605 2606 2607 2608 2609 2610 2611 2612 2613 2614 2615 2616 2617 2618 | Tcl_Panic("Called UpdateStringOfFsPath with invalid object"); } copy = AppendPath(fsPathPtr->cwdPtr, fsPathPtr->normPathPtr); pathPtr->bytes = TclGetStringFromObj(copy, &cwdLen); pathPtr->length = cwdLen; copy->bytes = &tclEmptyString; copy->length = 0; TclDecrRefCount(copy); } /* *--------------------------------------------------------------------------- * |
︙ | ︙ |
Changes to generic/tclPkg.c.
︙ | ︙ | |||
13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 | * TIP #268. * Heavily rewritten to handle the extend version numbers, and extended * package requirements. */ #include "tclInt.h" /* * Each invocation of the "package ifneeded" command creates a structure of * the following type, which is used to load the package into the interpreter * if it is requested with a "package require" command. */ typedef struct PkgAvail { char *version; /* Version string; malloc'ed. */ char *script; /* Script to invoke to provide this version of * the package. Malloc'ed and protected by * Tcl_Preserve and Tcl_Release. */ struct PkgAvail *nextPtr; /* Next in list of available versions of the * same package. */ } PkgAvail; typedef struct PkgName { struct PkgName *nextPtr; /* Next in list of package names being initialized. */ char name[1]; | > > > > > | 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 | * TIP #268. * Heavily rewritten to handle the extend version numbers, and extended * package requirements. */ #include "tclInt.h" MODULE_SCOPE char *tclEmptyStringRep; char *tclEmptyStringRep = &tclEmptyString; /* * Each invocation of the "package ifneeded" command creates a structure of * the following type, which is used to load the package into the interpreter * if it is requested with a "package require" command. */ typedef struct PkgAvail { char *version; /* Version string; malloc'ed. */ char *script; /* Script to invoke to provide this version of * the package. Malloc'ed and protected by * Tcl_Preserve and Tcl_Release. */ char *pkgIndex; /* Full file name of pkgIndex file */ struct PkgAvail *nextPtr; /* Next in list of available versions of the * same package. */ } PkgAvail; typedef struct PkgName { struct PkgName *nextPtr; /* Next in list of package names being initialized. */ char name[1]; |
︙ | ︙ | |||
565 566 567 568 569 570 571 572 573 574 575 576 577 578 | Tcl_Preserve(script); pkgFiles = TclInitPkgFiles(interp); /* Push "ifneeded" package name in "tclPkgFiles" assocdata. */ pkgName = ckalloc(sizeof(PkgName) + strlen(name)); pkgName->nextPtr = pkgFiles->names; strcpy(pkgName->name, name); pkgFiles->names = pkgName; code = Tcl_EvalEx(interp, script, -1, TCL_EVAL_GLOBAL); /* Pop the "ifneeded" package name from "tclPkgFiles" assocdata*/ pkgFiles->names = pkgName->nextPtr; ckfree(pkgName); Tcl_Release(script); pkgPtr = FindPackage(interp, name); | > > > | 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 | Tcl_Preserve(script); pkgFiles = TclInitPkgFiles(interp); /* Push "ifneeded" package name in "tclPkgFiles" assocdata. */ pkgName = ckalloc(sizeof(PkgName) + strlen(name)); pkgName->nextPtr = pkgFiles->names; strcpy(pkgName->name, name); pkgFiles->names = pkgName; if (bestPtr->pkgIndex) { TclPkgFileSeen(interp, bestPtr->pkgIndex); } code = Tcl_EvalEx(interp, script, -1, TCL_EVAL_GLOBAL); /* Pop the "ifneeded" package name from "tclPkgFiles" assocdata*/ pkgFiles->names = pkgName->nextPtr; ckfree(pkgName); Tcl_Release(script); pkgPtr = FindPackage(interp, name); |
︙ | ︙ | |||
913 914 915 916 917 918 919 920 921 922 923 924 925 926 | ckfree(pkgPtr->version); } while (pkgPtr->availPtr != NULL) { availPtr = pkgPtr->availPtr; pkgPtr->availPtr = availPtr->nextPtr; Tcl_EventuallyFree(availPtr->version, TCL_DYNAMIC); Tcl_EventuallyFree(availPtr->script, TCL_DYNAMIC); ckfree(availPtr); } ckfree(pkgPtr); } break; } case PKG_IFNEEDED: { | > > > | 921 922 923 924 925 926 927 928 929 930 931 932 933 934 935 936 937 | ckfree(pkgPtr->version); } while (pkgPtr->availPtr != NULL) { availPtr = pkgPtr->availPtr; pkgPtr->availPtr = availPtr->nextPtr; Tcl_EventuallyFree(availPtr->version, TCL_DYNAMIC); Tcl_EventuallyFree(availPtr->script, TCL_DYNAMIC); if (availPtr->pkgIndex) { Tcl_EventuallyFree(availPtr->pkgIndex, TCL_DYNAMIC); } ckfree(availPtr); } ckfree(pkgPtr); } break; } case PKG_IFNEEDED: { |
︙ | ︙ | |||
963 964 965 966 967 968 969 970 971 972 973 974 975 976 977 978 979 980 981 982 983 984 985 986 987 988 989 990 991 992 993 994 995 996 | if (objc == 4) { ckfree(argv3i); Tcl_SetObjResult(interp, Tcl_NewStringObj(availPtr->script, -1)); return TCL_OK; } Tcl_EventuallyFree(availPtr->script, TCL_DYNAMIC); break; } } ckfree(argv3i); if (objc == 4) { return TCL_OK; } if (availPtr == NULL) { availPtr = ckalloc(sizeof(PkgAvail)); DupBlock(availPtr->version, argv3, (unsigned) length + 1); if (prevPtr == NULL) { availPtr->nextPtr = pkgPtr->availPtr; pkgPtr->availPtr = availPtr; } else { availPtr->nextPtr = prevPtr->nextPtr; prevPtr->nextPtr = availPtr; } } argv4 = TclGetStringFromObj(objv[4], &length); DupBlock(availPtr->script, argv4, (unsigned) length + 1); break; } case PKG_NAMES: if (objc != 2) { Tcl_WrongNumArgs(interp, 2, objv, NULL); | > > > > > > > > | 974 975 976 977 978 979 980 981 982 983 984 985 986 987 988 989 990 991 992 993 994 995 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 | if (objc == 4) { ckfree(argv3i); Tcl_SetObjResult(interp, Tcl_NewStringObj(availPtr->script, -1)); return TCL_OK; } Tcl_EventuallyFree(availPtr->script, TCL_DYNAMIC); if (availPtr->pkgIndex) { Tcl_EventuallyFree(availPtr->pkgIndex, TCL_DYNAMIC); } break; } } ckfree(argv3i); if (objc == 4) { return TCL_OK; } if (availPtr == NULL) { availPtr = ckalloc(sizeof(PkgAvail)); availPtr->pkgIndex = 0; DupBlock(availPtr->version, argv3, (unsigned) length + 1); if (prevPtr == NULL) { availPtr->nextPtr = pkgPtr->availPtr; pkgPtr->availPtr = availPtr; } else { availPtr->nextPtr = prevPtr->nextPtr; prevPtr->nextPtr = availPtr; } } if (iPtr->scriptFile) { argv4 = TclGetStringFromObj(iPtr->scriptFile, &length); DupBlock(availPtr->pkgIndex, argv4, (unsigned) length + 1); } argv4 = TclGetStringFromObj(objv[4], &length); DupBlock(availPtr->script, argv4, (unsigned) length + 1); break; } case PKG_NAMES: if (objc != 2) { Tcl_WrongNumArgs(interp, 2, objv, NULL); |
︙ | ︙ | |||
1338 1339 1340 1341 1342 1343 1344 1345 1346 1347 1348 1349 1350 1351 | ckfree(pkgPtr->version); } while (pkgPtr->availPtr != NULL) { availPtr = pkgPtr->availPtr; pkgPtr->availPtr = availPtr->nextPtr; Tcl_EventuallyFree(availPtr->version, TCL_DYNAMIC); Tcl_EventuallyFree(availPtr->script, TCL_DYNAMIC); ckfree(availPtr); } ckfree(pkgPtr); } Tcl_DeleteHashTable(&iPtr->packageTable); if (iPtr->packageUnknown != NULL) { ckfree(iPtr->packageUnknown); | > > > | 1357 1358 1359 1360 1361 1362 1363 1364 1365 1366 1367 1368 1369 1370 1371 1372 1373 | ckfree(pkgPtr->version); } while (pkgPtr->availPtr != NULL) { availPtr = pkgPtr->availPtr; pkgPtr->availPtr = availPtr->nextPtr; Tcl_EventuallyFree(availPtr->version, TCL_DYNAMIC); Tcl_EventuallyFree(availPtr->script, TCL_DYNAMIC); if (availPtr->pkgIndex) { Tcl_EventuallyFree(availPtr->pkgIndex, TCL_DYNAMIC); } ckfree(availPtr); } ckfree(pkgPtr); } Tcl_DeleteHashTable(&iPtr->packageTable); if (iPtr->packageUnknown != NULL) { ckfree(iPtr->packageUnknown); |
︙ | ︙ |
Changes to generic/tclPreserve.c.
︙ | ︙ | |||
151 152 153 154 155 156 157 | * Make a new entry for the new reference. */ refPtr = &refArray[inUse]; refPtr->clientData = clientData; refPtr->refCount = 1; refPtr->mustFree = 0; | | | 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 | * Make a new entry for the new reference. */ refPtr = &refArray[inUse]; refPtr->clientData = clientData; refPtr->refCount = 1; refPtr->mustFree = 0; refPtr->freeProc = 0; inUse += 1; Tcl_MutexUnlock(&preserveMutex); } /* *---------------------------------------------------------------------- * |
︙ | ︙ |
Changes to generic/tclProc.c.
︙ | ︙ | |||
496 497 498 499 500 501 502 | localPtr = procPtr->firstLocalPtr; } else { procPtr->numArgs = numArgs; procPtr->numCompiledLocals = numArgs; } for (i = 0; i < numArgs; i++) { | | > | 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 | localPtr = procPtr->firstLocalPtr; } else { procPtr->numArgs = numArgs; procPtr->numCompiledLocals = numArgs; } for (i = 0; i < numArgs; i++) { int fieldCount, nameLength; size_t valueLength; const char **fieldValues; /* * Now divide the specifier up into name and default. */ result = Tcl_SplitList(interp, argArray[i], &fieldCount, |
︙ | ︙ | |||
598 599 600 601 602 603 604 | } /* * Compare the default value if any. */ if (localPtr->defValuePtr != NULL) { | < | | | | 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 | } /* * Compare the default value if any. */ if (localPtr->defValuePtr != NULL) { const char *tmpPtr = TclGetString(localPtr->defValuePtr); size_t tmpLength = localPtr->defValuePtr->length; if ((valueLength != tmpLength) || strncmp(fieldValues[1], tmpPtr, tmpLength)) { Tcl_SetObjResult(interp, Tcl_ObjPrintf( "procedure \"%s\": formal parameter \"%s\" has " "default value inconsistent with precompiled body", procName, fieldValues[0])); ckfree(fieldValues); Tcl_SetErrorCode(interp, "TCL", "OPERATION", "PROC", "BYTECODELIES", NULL); |
︙ | ︙ |
Changes to generic/tclResult.c.
︙ | ︙ | |||
23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 | /* * Function prototypes for local functions in this file: */ static Tcl_Obj ** GetKeys(void); static void ReleaseKeys(ClientData clientData); static void ResetObjResult(Interp *iPtr); static void SetupAppendBuffer(Interp *iPtr, int newSpace); /* * This structure is used to take a snapshot of the interpreter state in * Tcl_SaveInterpState. You can snapshot the state, execute a command, and * then back up to the result or the error that was previously in progress. */ | > > | | 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 | /* * Function prototypes for local functions in this file: */ static Tcl_Obj ** GetKeys(void); static void ReleaseKeys(ClientData clientData); static void ResetObjResult(Interp *iPtr); #ifndef TCL_NO_DEPRECATED static void SetupAppendBuffer(Interp *iPtr, int newSpace); #endif /* !TCL_NO_DEPRECATED */ /* * This structure is used to take a snapshot of the interpreter state in * Tcl_SaveInterpState. You can snapshot the state, execute a command, and * then back up to the result or the error that was previously in progress. */ typedef struct { int status; /* return code status */ int flags; /* Each remaining field saves the */ int returnLevel; /* corresponding field of the Interp */ int returnCode; /* struct. These fields taken together are */ Tcl_Obj *errorInfo; /* the "state" of the interp. */ Tcl_Obj *errorCode; Tcl_Obj *returnOpts; |
︙ | ︙ | |||
226 227 228 229 230 231 232 233 234 235 236 237 238 239 | * * Side effects: * Resets the interpreter result. * *---------------------------------------------------------------------- */ #undef Tcl_SaveResult void Tcl_SaveResult( Tcl_Interp *interp, /* Interpreter to save. */ Tcl_SavedResult *statePtr) /* Pointer to state structure. */ { Interp *iPtr = (Interp *) interp; | > | 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 | * * Side effects: * Resets the interpreter result. * *---------------------------------------------------------------------- */ #ifndef TCL_NO_DEPRECATED #undef Tcl_SaveResult void Tcl_SaveResult( Tcl_Interp *interp, /* Interpreter to save. */ Tcl_SavedResult *statePtr) /* Pointer to state structure. */ { Interp *iPtr = (Interp *) interp; |
︙ | ︙ | |||
457 458 459 460 461 462 463 464 465 466 467 468 469 470 | /* * Reset the object result since we just set the string result. */ ResetObjResult(iPtr); } /* *---------------------------------------------------------------------- * * Tcl_GetStringResult -- * * Returns an interpreter's result value as a string. | > | 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 | /* * Reset the object result since we just set the string result. */ ResetObjResult(iPtr); } #endif /* !TCL_NO_DEPRECATED */ /* *---------------------------------------------------------------------- * * Tcl_GetStringResult -- * * Returns an interpreter's result value as a string. |
︙ | ︙ | |||
479 480 481 482 483 484 485 486 487 488 489 490 | *---------------------------------------------------------------------- */ const char * Tcl_GetStringResult( register Tcl_Interp *interp)/* Interpreter whose result to return. */ { /* * If the string result is empty, move the object result to the string * result, then reset the object result. */ | > > > > < < > | 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 | *---------------------------------------------------------------------- */ const char * Tcl_GetStringResult( register Tcl_Interp *interp)/* Interpreter whose result to return. */ { Interp *iPtr = (Interp *) interp; #ifdef TCL_NO_DEPRECATED return Tcl_GetString(iPtr->objResultPtr); #else /* * If the string result is empty, move the object result to the string * result, then reset the object result. */ if (*(iPtr->result) == 0) { Tcl_SetResult(interp, TclGetString(Tcl_GetObjResult(interp)), TCL_VOLATILE); } return iPtr->result; #endif } /* *---------------------------------------------------------------------- * * Tcl_SetObjResult -- * |
︙ | ︙ | |||
532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 | /* * We wait until the end to release the old object result, in case we are * setting the result to itself. */ TclDecrRefCount(oldObjResult); /* * Reset the string result since we just set the result object. */ if (iPtr->freeProc != NULL) { if (iPtr->freeProc == TCL_DYNAMIC) { ckfree(iPtr->result); } else { iPtr->freeProc(iPtr->result); } iPtr->freeProc = 0; } iPtr->result = iPtr->resultSpace; iPtr->resultSpace[0] = 0; } /* *---------------------------------------------------------------------- * * Tcl_GetObjResult -- * | > > | 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 | /* * We wait until the end to release the old object result, in case we are * setting the result to itself. */ TclDecrRefCount(oldObjResult); #ifndef TCL_NO_DEPRECATED /* * Reset the string result since we just set the result object. */ if (iPtr->freeProc != NULL) { if (iPtr->freeProc == TCL_DYNAMIC) { ckfree(iPtr->result); } else { iPtr->freeProc(iPtr->result); } iPtr->freeProc = 0; } iPtr->result = iPtr->resultSpace; iPtr->resultSpace[0] = 0; #endif } /* *---------------------------------------------------------------------- * * Tcl_GetObjResult -- * |
︙ | ︙ | |||
574 575 576 577 578 579 580 581 582 583 584 585 586 587 | */ Tcl_Obj * Tcl_GetObjResult( Tcl_Interp *interp) /* Interpreter whose result to return. */ { register Interp *iPtr = (Interp *) interp; Tcl_Obj *objResultPtr; int length; /* * If the string result is non-empty, move the string result to the object * result, then reset the string result. */ | > | 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 | */ Tcl_Obj * Tcl_GetObjResult( Tcl_Interp *interp) /* Interpreter whose result to return. */ { register Interp *iPtr = (Interp *) interp; #ifndef TCL_NO_DEPRECATED Tcl_Obj *objResultPtr; int length; /* * If the string result is non-empty, move the string result to the object * result, then reset the string result. */ |
︙ | ︙ | |||
600 601 602 603 604 605 606 607 608 609 610 611 612 613 | iPtr->freeProc(iPtr->result); } iPtr->freeProc = 0; } iPtr->result = iPtr->resultSpace; iPtr->result[0] = 0; } return iPtr->objResultPtr; } /* *---------------------------------------------------------------------- * * Tcl_AppendResultVA -- | > | 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 | iPtr->freeProc(iPtr->result); } iPtr->freeProc = 0; } iPtr->result = iPtr->resultSpace; iPtr->result[0] = 0; } #endif /* !TCL_NO_DEPRECATED */ return iPtr->objResultPtr; } /* *---------------------------------------------------------------------- * * Tcl_AppendResultVA -- |
︙ | ︙ | |||
718 719 720 721 722 723 724 725 726 727 728 729 730 731 | Tcl_AppendElement( Tcl_Interp *interp, /* Interpreter whose result is to be * extended. */ const char *element) /* String to convert to list element and add * to result. */ { Interp *iPtr = (Interp *) interp; char *dst; int size; int flags; /* * If the string result is empty, move the object result to the string * result, then reset the object result. | > > > > > > > > > > > > > > > | 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 | Tcl_AppendElement( Tcl_Interp *interp, /* Interpreter whose result is to be * extended. */ const char *element) /* String to convert to list element and add * to result. */ { Interp *iPtr = (Interp *) interp; #ifdef TCL_NO_DEPRECATED Tcl_Obj *elementPtr = Tcl_NewStringObj(element, -1); Tcl_Obj *listPtr = Tcl_NewListObj(1, &elementPtr); const char *bytes; if (Tcl_IsShared(iPtr->objResultPtr)) { Tcl_SetObjResult(interp, Tcl_DuplicateObj(iPtr->objResultPtr)); } bytes = TclGetString(iPtr->objResultPtr); if (TclNeedSpace(bytes, bytes+iPtr->objResultPtr->length)) { Tcl_AppendToObj(iPtr->objResultPtr, " ", 1); } Tcl_AppendObjToObj(iPtr->objResultPtr, listPtr); Tcl_DecrRefCount(listPtr); #else char *dst; int size; int flags; /* * If the string result is empty, move the object result to the string * result, then reset the object result. |
︙ | ︙ | |||
761 762 763 764 765 766 767 768 769 770 771 772 773 774 | * then this element will not lead a list, and need not have it's * leading '#' quoted. */ flags |= TCL_DONT_QUOTE_HASH; } iPtr->appendUsed += Tcl_ConvertElement(element, dst, flags); } /* *---------------------------------------------------------------------- * * SetupAppendBuffer -- * | > | 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 | * then this element will not lead a list, and need not have it's * leading '#' quoted. */ flags |= TCL_DONT_QUOTE_HASH; } iPtr->appendUsed += Tcl_ConvertElement(element, dst, flags); #endif /* !TCL_NO_DEPRECATED */ } /* *---------------------------------------------------------------------- * * SetupAppendBuffer -- * |
︙ | ︙ | |||
782 783 784 785 786 787 788 789 790 791 792 793 794 795 | * * Side effects: * None. * *---------------------------------------------------------------------- */ static void SetupAppendBuffer( Interp *iPtr, /* Interpreter whose result is being set up. */ int newSpace) /* Make sure that at least this many bytes of * new information may be added. */ { int totalSpace; | > | 809 810 811 812 813 814 815 816 817 818 819 820 821 822 823 | * * Side effects: * None. * *---------------------------------------------------------------------- */ #ifndef TCL_NO_DEPRECATED static void SetupAppendBuffer( Interp *iPtr, /* Interpreter whose result is being set up. */ int newSpace) /* Make sure that at least this many bytes of * new information may be added. */ { int totalSpace; |
︙ | ︙ | |||
842 843 844 845 846 847 848 849 850 851 852 853 854 855 | } else if (iPtr->result != iPtr->appendResult) { strcpy(iPtr->appendResult, iPtr->result); } Tcl_FreeResult((Tcl_Interp *) iPtr); iPtr->result = iPtr->appendResult; } /* *---------------------------------------------------------------------- * * Tcl_FreeResult -- * * This function frees up the memory associated with an interpreter's | > | 870 871 872 873 874 875 876 877 878 879 880 881 882 883 884 | } else if (iPtr->result != iPtr->appendResult) { strcpy(iPtr->appendResult, iPtr->result); } Tcl_FreeResult((Tcl_Interp *) iPtr); iPtr->result = iPtr->appendResult; } #endif /* !TCL_NO_DEPRECATED */ /* *---------------------------------------------------------------------- * * Tcl_FreeResult -- * * This function frees up the memory associated with an interpreter's |
︙ | ︙ | |||
871 872 873 874 875 876 877 878 879 880 881 882 883 884 885 886 887 888 889 890 891 892 893 | void Tcl_FreeResult( register Tcl_Interp *interp)/* Interpreter for which to free result. */ { register Interp *iPtr = (Interp *) interp; if (iPtr->freeProc != NULL) { if (iPtr->freeProc == TCL_DYNAMIC) { ckfree(iPtr->result); } else { iPtr->freeProc(iPtr->result); } iPtr->freeProc = 0; } ResetObjResult(iPtr); } /* *---------------------------------------------------------------------- * * Tcl_ResetResult -- | > > | 900 901 902 903 904 905 906 907 908 909 910 911 912 913 914 915 916 917 918 919 920 921 922 923 924 | void Tcl_FreeResult( register Tcl_Interp *interp)/* Interpreter for which to free result. */ { register Interp *iPtr = (Interp *) interp; #ifndef TCL_NO_DEPRECATED if (iPtr->freeProc != NULL) { if (iPtr->freeProc == TCL_DYNAMIC) { ckfree(iPtr->result); } else { iPtr->freeProc(iPtr->result); } iPtr->freeProc = 0; } #endif /* !TCL_NO_DEPRECATED */ ResetObjResult(iPtr); } /* *---------------------------------------------------------------------- * * Tcl_ResetResult -- |
︙ | ︙ | |||
909 910 911 912 913 914 915 916 917 918 919 920 921 922 923 924 925 926 927 928 929 930 931 932 | void Tcl_ResetResult( register Tcl_Interp *interp)/* Interpreter for which to clear result. */ { register Interp *iPtr = (Interp *) interp; ResetObjResult(iPtr); if (iPtr->freeProc != NULL) { if (iPtr->freeProc == TCL_DYNAMIC) { ckfree(iPtr->result); } else { iPtr->freeProc(iPtr->result); } iPtr->freeProc = 0; } iPtr->result = iPtr->resultSpace; iPtr->resultSpace[0] = 0; if (iPtr->errorCode) { /* Legacy support */ if (iPtr->flags & ERR_LEGACY_COPY) { Tcl_ObjSetVar2(interp, iPtr->ecVar, NULL, iPtr->errorCode, TCL_GLOBAL_ONLY); } Tcl_DecrRefCount(iPtr->errorCode); | > > | 940 941 942 943 944 945 946 947 948 949 950 951 952 953 954 955 956 957 958 959 960 961 962 963 964 965 | void Tcl_ResetResult( register Tcl_Interp *interp)/* Interpreter for which to clear result. */ { register Interp *iPtr = (Interp *) interp; ResetObjResult(iPtr); #ifndef TCL_NO_DEPRECATED if (iPtr->freeProc != NULL) { if (iPtr->freeProc == TCL_DYNAMIC) { ckfree(iPtr->result); } else { iPtr->freeProc(iPtr->result); } iPtr->freeProc = 0; } iPtr->result = iPtr->resultSpace; iPtr->resultSpace[0] = 0; #endif /* !TCL_NO_DEPRECATED */ if (iPtr->errorCode) { /* Legacy support */ if (iPtr->flags & ERR_LEGACY_COPY) { Tcl_ObjSetVar2(interp, iPtr->ecVar, NULL, iPtr->errorCode, TCL_GLOBAL_ONLY); } Tcl_DecrRefCount(iPtr->errorCode); |
︙ | ︙ | |||
978 979 980 981 982 983 984 | if (Tcl_IsShared(objResultPtr)) { TclDecrRefCount(objResultPtr); TclNewObj(objResultPtr); Tcl_IncrRefCount(objResultPtr); iPtr->objResultPtr = objResultPtr; } else { | | | | 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 | if (Tcl_IsShared(objResultPtr)) { TclDecrRefCount(objResultPtr); TclNewObj(objResultPtr); Tcl_IncrRefCount(objResultPtr); iPtr->objResultPtr = objResultPtr; } else { if (objResultPtr->bytes != &tclEmptyString) { if (objResultPtr->bytes) { ckfree(objResultPtr->bytes); } objResultPtr->bytes = &tclEmptyString; objResultPtr->length = 0; } TclFreeIntRep(objResultPtr); } } /* |
︙ | ︙ | |||
1272 1273 1274 1275 1276 1277 1278 | if (iPtr->errorInfo) { Tcl_DecrRefCount(iPtr->errorInfo); iPtr->errorInfo = NULL; } Tcl_DictObjGet(NULL, iPtr->returnOpts, keys[KEY_ERRORINFO], &valuePtr); if (valuePtr != NULL) { | < < | | | 1305 1306 1307 1308 1309 1310 1311 1312 1313 1314 1315 1316 1317 1318 1319 1320 | if (iPtr->errorInfo) { Tcl_DecrRefCount(iPtr->errorInfo); iPtr->errorInfo = NULL; } Tcl_DictObjGet(NULL, iPtr->returnOpts, keys[KEY_ERRORINFO], &valuePtr); if (valuePtr != NULL) { (void) TclGetString(valuePtr); if (valuePtr->length) { iPtr->errorInfo = valuePtr; Tcl_IncrRefCount(iPtr->errorInfo); iPtr->flags |= ERR_ALREADY_LOGGED; } } Tcl_DictObjGet(NULL, iPtr->returnOpts, keys[KEY_ERRORSTACK], &valuePtr); |
︙ | ︙ | |||
1378 1379 1380 1381 1382 1383 1384 | int code = TCL_OK; int level = 1; Tcl_Obj *valuePtr; Tcl_Obj *returnOpts = Tcl_NewObj(); Tcl_Obj **keys = GetKeys(); for (; objc > 1; objv += 2, objc -= 2) { | < | < | < > | | 1409 1410 1411 1412 1413 1414 1415 1416 1417 1418 1419 1420 1421 1422 1423 1424 1425 1426 1427 | int code = TCL_OK; int level = 1; Tcl_Obj *valuePtr; Tcl_Obj *returnOpts = Tcl_NewObj(); Tcl_Obj **keys = GetKeys(); for (; objc > 1; objv += 2, objc -= 2) { const char *opt = TclGetString(objv[0]); const char *compare = TclGetString(keys[KEY_OPTIONS]); if ((objv[0]->length == keys[KEY_OPTIONS]->length) && (memcmp(opt, compare, objv[0]->length) == 0)) { Tcl_DictSearch search; int done = 0; Tcl_Obj *keyPtr; Tcl_Obj *dict = objv[1]; nestedOptions: if (TCL_ERROR == Tcl_DictObjFirst(NULL, dict, &search, |
︙ | ︙ |
Changes to generic/tclScan.c.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | /* * tclScan.c -- * * This file contains the implementation of the "scan" command. * * Copyright (c) 1998 by Scriptics Corporation. * * See the file "license.terms" for information on usage and redistribution of * this file, and for a DISCLAIMER OF ALL WARRANTIES. */ #include "tclInt.h" /* * Flag values used by Tcl_ScanObjCmd. */ #define SCAN_NOSKIP 0x1 /* Don't skip blanks. */ #define SCAN_SUPPRESS 0x2 /* Suppress assignment. */ | > | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | /* * tclScan.c -- * * This file contains the implementation of the "scan" command. * * Copyright (c) 1998 by Scriptics Corporation. * * See the file "license.terms" for information on usage and redistribution of * this file, and for a DISCLAIMER OF ALL WARRANTIES. */ #include "tclInt.h" #include "tommath.h" /* * Flag values used by Tcl_ScanObjCmd. */ #define SCAN_NOSKIP 0x1 /* Don't skip blanks. */ #define SCAN_SUPPRESS 0x2 /* Suppress assignment. */ |
︙ | ︙ | |||
411 412 413 414 415 416 417 | case 'g': case 'G': case 'i': case 'o': case 'x': case 'X': case 'b': | < < < < < < < | 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 | case 'g': case 'G': case 'i': case 'o': case 'x': case 'X': case 'b': case 'u': break; /* * Bracket terms need special checking */ case '[': if (flags & (SCAN_LONGER|SCAN_BIG)) { goto invalidFieldSize; |
︙ | ︙ | |||
932 933 934 935 936 937 938 | if ((flags & SCAN_UNSIGNED) && (wideValue < 0)) { sprintf(buf, "%" TCL_LL_MODIFIER "u", (Tcl_WideUInt)wideValue); Tcl_SetStringObj(objPtr, buf, -1); } else { Tcl_SetWideIntObj(objPtr, wideValue); } | | > > > > > > > > > > > | 926 927 928 929 930 931 932 933 934 935 936 937 938 939 940 941 942 943 944 945 946 947 948 949 950 951 | if ((flags & SCAN_UNSIGNED) && (wideValue < 0)) { sprintf(buf, "%" TCL_LL_MODIFIER "u", (Tcl_WideUInt)wideValue); Tcl_SetStringObj(objPtr, buf, -1); } else { Tcl_SetWideIntObj(objPtr, wideValue); } } else if (flags & SCAN_BIG) { if (flags & SCAN_UNSIGNED) { mp_int big; if ((Tcl_GetBignumFromObj(interp, objPtr, &big) != TCL_OK) || (mp_cmp_d(&big, 0) == MP_LT)) { Tcl_SetObjResult(interp, Tcl_NewStringObj( "unsigned bignum scans are invalid", -1)); Tcl_SetErrorCode(interp, "TCL", "FORMAT", "BADUNSIGNED",NULL); return TCL_ERROR; } } } else { if (TclGetLongFromObj(NULL, objPtr, &value) != TCL_OK) { if (TclGetString(objPtr)[0] == '-') { value = LONG_MIN; } else { value = LONG_MAX; } } |
︙ | ︙ |
Changes to generic/tclStrToD.c.
︙ | ︙ | |||
13 14 15 16 17 18 19 | * this file, and for a DISCLAIMER OF ALL WARRANTIES. */ #include "tclInt.h" #include "tommath.h" #include <math.h> | < < < < < < < | 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | * this file, and for a DISCLAIMER OF ALL WARRANTIES. */ #include "tclInt.h" #include "tommath.h" #include <math.h> /* * This code supports (at least hypothetically), IBM, Cray, VAX and IEEE-754 * floating point; of these, only IEEE-754 can represent NaN. IEEE-754 can be * uniquely determined by radix and by the widths of significand and exponent. */ #if (FLT_RADIX == 2) && (DBL_MANT_DIG == 53) && (DBL_MAX_EXP == 1024) |
︙ | ︙ | |||
542 543 544 545 546 547 548 549 550 551 552 553 554 555 | /* * Initialize bytes to start of the object's string rep if the caller * didn't pass anything else. */ if (bytes == NULL) { bytes = TclGetString(objPtr); } p = bytes; len = numBytes; acceptPoint = p; acceptLen = len; | > > > > > > > > > > > > > > | 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 | /* * Initialize bytes to start of the object's string rep if the caller * didn't pass anything else. */ if (bytes == NULL) { if (interp == NULL && endPtrPtr == NULL) { if (objPtr->typePtr == &tclDictType) { /* A dict can never be a (single) number */ return TCL_ERROR; } if (objPtr->typePtr == &tclListType) { int length; /* A list can only be a (single) number if its length == 1 */ TclListObjLength(NULL, objPtr, &length); if (length != 1) { return TCL_ERROR; } } } bytes = TclGetString(objPtr); } p = bytes; len = numBytes; acceptPoint = p; acceptLen = len; |
︙ | ︙ | |||
653 654 655 656 657 658 659 | goto zerob; } if (c == 'o' || c == 'O') { explicitOctal = 1; state = ZERO_O; break; } | | | 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 | goto zerob; } if (c == 'o' || c == 'O') { explicitOctal = 1; state = ZERO_O; break; } #ifdef TCL_NO_DEPRECATED goto decimal; #endif /* FALLTHROUGH */ case OCTAL: /* * Scanned an optional + or -, followed by a string of octal |
︙ | ︙ | |||
736 737 738 739 740 741 742 | if (flags & TCL_PARSE_INTEGER_ONLY) { /* * No seeking floating point when parsing only integer. */ goto endgame; } | | | 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 | if (flags & TCL_PARSE_INTEGER_ONLY) { /* * No seeking floating point when parsing only integer. */ goto endgame; } #ifndef TCL_NO_DEPRECATED /* * Scanned a number with a leading zero that contains an 8, 9, * radix point or E. This is an invalid octal number, but might * still be floating point. */ |
︙ | ︙ | |||
875 876 877 878 879 880 881 | case DECIMAL: /* * Scanned an optional + or - followed by a string of decimal * digits. */ | | | 882 883 884 885 886 887 888 889 890 891 892 893 894 895 896 | case DECIMAL: /* * Scanned an optional + or - followed by a string of decimal * digits. */ #ifdef TCL_NO_DEPRECATED decimal: #endif acceptState = state; acceptPoint = p; acceptLen = len; if (c == '0') { numTrailZeros++; |
︙ | ︙ | |||
3794 3795 3796 3797 3798 3799 3800 | if (m2plus > m2minus) { mp_mul_2d(&mplus, 1, &mplus); } mp_div_d(&S, 5, &S, NULL); --s5; /* | | | 3801 3802 3803 3804 3805 3806 3807 3808 3809 3810 3811 3812 3813 3814 3815 | if (m2plus > m2minus) { mp_mul_2d(&mplus, 1, &mplus); } mp_div_d(&S, 5, &S, NULL); --s5; /* * IDEA: It might possibly be a win to fall back to int64_t * arithmetic here if S < 2**64/10. But it's a win only for * a fairly narrow range of magnitudes so perhaps not worth * bothering. We already know that we shorten the * denominator by at least 1 mp_digit, perhaps 2, as we do * the conversion for 17 digits of significance. * Possible savings: * 10**26 1 trip through loop before fallback possible |
︙ | ︙ | |||
3959 3960 3961 3962 3963 3964 3965 | } mp_mul_2d(&b, g, &b); /* * As with the shortening bignum conversion, it's possible at this * point that we will have reduced the denominator to less than * 2**64/10, at which point it would be possible to fall back to | | | 3966 3967 3968 3969 3970 3971 3972 3973 3974 3975 3976 3977 3978 3979 3980 | } mp_mul_2d(&b, g, &b); /* * As with the shortening bignum conversion, it's possible at this * point that we will have reduced the denominator to less than * 2**64/10, at which point it would be possible to fall back to * to int64_t arithmetic. But the potential payoff is tremendously * less - unless we're working in F format - because we know that * three groups of digits will always suffice for %#.17e, the * longest format that doesn't introduce empty precision. * * Extract the next group of digits. */ |
︙ | ︙ |
Changes to generic/tclStringObj.c.
︙ | ︙ | |||
132 133 134 135 136 137 138 | * flag || objPtr->bytes != NULL */ String *stringPtr = GET_STRING(objPtr); char *ptr = NULL; int attempt; | | | 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 | * flag || objPtr->bytes != NULL */ String *stringPtr = GET_STRING(objPtr); char *ptr = NULL; int attempt; if (objPtr->bytes == &tclEmptyString) { objPtr->bytes = NULL; } if (flag == 0 || stringPtr->allocated > 0) { attempt = 2 * needed; if (attempt >= 0) { ptr = attemptckrealloc(objPtr->bytes, attempt + 1); } |
︙ | ︙ | |||
763 764 765 766 767 768 769 | /* * Change length of an existing string rep. */ if (length > stringPtr->allocated) { /* * Need to enlarge the buffer. */ | | | 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 | /* * Change length of an existing string rep. */ if (length > stringPtr->allocated) { /* * Need to enlarge the buffer. */ if (objPtr->bytes == &tclEmptyString) { objPtr->bytes = ckalloc(length + 1); } else { objPtr->bytes = ckrealloc(objPtr->bytes, length + 1); } stringPtr->allocated = length; } |
︙ | ︙ | |||
869 870 871 872 873 874 875 | if (length > stringPtr->allocated) { /* * Need to enlarge the buffer. */ char *newBytes; | | | 869 870 871 872 873 874 875 876 877 878 879 880 881 882 883 | if (length > stringPtr->allocated) { /* * Need to enlarge the buffer. */ char *newBytes; if (objPtr->bytes == &tclEmptyString) { newBytes = attemptckalloc(length + 1); } else { newBytes = attemptckrealloc(objPtr->bytes, length + 1); } if (newBytes == NULL) { return 0; } |
︙ | ︙ | |||
1198 1199 1200 1201 1202 1203 1204 | const char *bytes; /* * Special case: second object is standard-empty is fast case. We know * that appending nothing to anything leaves that starting anything... */ | | | | 1198 1199 1200 1201 1202 1203 1204 1205 1206 1207 1208 1209 1210 1211 1212 1213 1214 1215 1216 1217 1218 1219 1220 1221 1222 1223 | const char *bytes; /* * Special case: second object is standard-empty is fast case. We know * that appending nothing to anything leaves that starting anything... */ if (appendObjPtr->bytes == &tclEmptyString) { return; } /* * Handle append of one bytearray object to another as a special case. * Note that we only do this when the objects don't have string reps; if * it did, then appending the byte arrays together could well lose * information; this is a special-case optimization only. */ if ((TclIsPureByteArray(objPtr) || objPtr->bytes == &tclEmptyString) && TclIsPureByteArray(appendObjPtr)) { /* * You might expect the code here to be * * bytes = Tcl_GetByteArrayFromObj(appendObjPtr, &length); * TclAppendBytesToByteArray(objPtr, bytes, length); |
︙ | ︙ | |||
1666 1667 1668 1669 1670 1671 1672 | /* * Format string is NUL-terminated. */ while (*format != '\0') { char *end; | | | > > > | 1666 1667 1668 1669 1670 1671 1672 1673 1674 1675 1676 1677 1678 1679 1680 1681 1682 1683 1684 | /* * Format string is NUL-terminated. */ while (*format != '\0') { char *end; int gotMinus = 0, gotHash = 0, gotZero = 0, gotSpace = 0, gotPlus = 0; int width, gotPrecision, precision, sawFlag, useShort = 0, useBig = 0; #ifndef TCL_WIDE_INT_IS_LONG int useWide = 0; #endif int newXpg, numChars, allocSegment = 0, segmentLimit, segmentNumBytes; Tcl_Obj *segment; Tcl_UniChar ch; int step = Tcl_UtfToUniChar(format, &ch); format += step; if (ch != '%') { |
︙ | ︙ | |||
1743 1744 1745 1746 1747 1748 1749 | goto errorMsg; } /* * Step 2. Set of flags. */ | < | 1746 1747 1748 1749 1750 1751 1752 1753 1754 1755 1756 1757 1758 1759 | goto errorMsg; } /* * Step 2. Set of flags. */ sawFlag = 1; do { switch (ch) { case '-': gotMinus = 1; break; case '#': |
︙ | ︙ | |||
1844 1845 1846 1847 1848 1849 1850 | step = Tcl_UtfToUniChar(format, &ch); } /* * Step 5. Length modifier. */ | < > | | | > | > > > > | | | > > > > > > | > > > > > > > > | 1846 1847 1848 1849 1850 1851 1852 1853 1854 1855 1856 1857 1858 1859 1860 1861 1862 1863 1864 1865 1866 1867 1868 1869 1870 1871 1872 1873 1874 1875 1876 1877 1878 1879 1880 1881 1882 1883 1884 1885 1886 1887 1888 1889 1890 1891 1892 1893 1894 1895 1896 1897 1898 1899 1900 1901 1902 1903 | step = Tcl_UtfToUniChar(format, &ch); } /* * Step 5. Length modifier. */ if (ch == 'h') { useShort = 1; format += step; step = Tcl_UtfToUniChar(format, &ch); } else if (ch == 'l') { format += step; step = Tcl_UtfToUniChar(format, &ch); if (ch == 'l') { useBig = 1; format += step; step = Tcl_UtfToUniChar(format, &ch); #ifndef TCL_WIDE_INT_IS_LONG } else { useWide = 1; #endif } } else if (ch == 'I') { if ((format[1] == '6') && (format[2] == '4')) { format += (step + 2); step = Tcl_UtfToUniChar(format, &ch); #ifndef TCL_WIDE_INT_IS_LONG useWide = 1; #endif } else if ((format[1] == '3') && (format[2] == '2')) { format += (step + 2); step = Tcl_UtfToUniChar(format, &ch); } else { format += step; step = Tcl_UtfToUniChar(format, &ch); } } else if ((ch == 't') || (ch == 'z')) { format += step; step = Tcl_UtfToUniChar(format, &ch); #ifndef TCL_WIDE_INT_IS_LONG if (sizeof(size_t) > sizeof(int)) { useWide = 1; } #endif } else if ((ch == 'q') ||(ch == 'j')) { format += step; step = Tcl_UtfToUniChar(format, &ch); #ifndef TCL_WIDE_INT_IS_LONG useWide = 1; #endif } format += step; span = format; /* * Step 6. The actual conversion character. |
︙ | ︙ | |||
1914 1915 1916 1917 1918 1919 1920 | segment = Tcl_NewStringObj(buf, length); Tcl_IncrRefCount(segment); allocSegment = 1; break; } case 'u': | < < < < < > > > > > > > > > > > > > > > > > | 1935 1936 1937 1938 1939 1940 1941 1942 1943 1944 1945 1946 1947 1948 1949 1950 1951 1952 1953 1954 1955 1956 1957 1958 1959 1960 1961 1962 1963 1964 1965 1966 1967 1968 1969 1970 1971 1972 1973 1974 1975 1976 1977 1978 1979 1980 1981 1982 1983 1984 1985 1986 1987 1988 1989 1990 1991 1992 1993 1994 1995 1996 | segment = Tcl_NewStringObj(buf, length); Tcl_IncrRefCount(segment); allocSegment = 1; break; } case 'u': case 'd': case 'o': case 'p': case 'x': case 'X': case 'b': { short s = 0; /* Silence compiler warning; only defined and * used when useShort is true. */ long l; Tcl_WideInt w; mp_int big; int toAppend, isNegative = 0; #ifndef TCL_WIDE_INT_IS_LONG if (ch == 'p') { useWide = 1; } #endif if (useBig) { if (Tcl_GetBignumFromObj(interp, segment, &big) != TCL_OK) { goto error; } isNegative = (mp_cmp_d(&big, 0) == MP_LT); if (ch == 'u') { if (isNegative) { msg = "unsigned bignum format is invalid"; errCode = "BADUNSIGNED"; goto errorMsg; } else { ch = 'd'; } } #ifndef TCL_WIDE_INT_IS_LONG } else if (useWide) { if (Tcl_GetWideIntFromObj(NULL, segment, &w) != TCL_OK) { Tcl_Obj *objPtr; if (Tcl_GetBignumFromObj(interp,segment,&big) != TCL_OK) { goto error; } mp_mod_2d(&big, (int) CHAR_BIT*sizeof(Tcl_WideInt), &big); objPtr = Tcl_NewBignumObj(&big); Tcl_IncrRefCount(objPtr); Tcl_GetWideIntFromObj(NULL, objPtr, &w); Tcl_DecrRefCount(objPtr); } isNegative = (w < (Tcl_WideInt) 0); #endif } else if (TclGetLongFromObj(NULL, segment, &l) != TCL_OK) { if (Tcl_GetWideIntFromObj(NULL, segment, &w) != TCL_OK) { Tcl_Obj *objPtr; if (Tcl_GetBignumFromObj(interp,segment,&big) != TCL_OK) { goto error; } |
︙ | ︙ | |||
1989 1990 1991 1992 1993 1994 1995 | if ((isNegative || gotPlus || gotSpace) && (useBig || ch=='d')) { Tcl_AppendToObj(segment, (isNegative ? "-" : gotPlus ? "+" : " "), 1); segmentLimit -= 1; } | | > > > | 2022 2023 2024 2025 2026 2027 2028 2029 2030 2031 2032 2033 2034 2035 2036 2037 2038 2039 2040 2041 2042 2043 2044 2045 2046 2047 2048 2049 2050 2051 2052 2053 2054 2055 2056 2057 2058 2059 2060 2061 2062 2063 2064 2065 2066 2067 | if ((isNegative || gotPlus || gotSpace) && (useBig || ch=='d')) { Tcl_AppendToObj(segment, (isNegative ? "-" : gotPlus ? "+" : " "), 1); segmentLimit -= 1; } if (gotHash || (ch == 'p')) { switch (ch) { case 'o': Tcl_AppendToObj(segment, "0", 1); segmentLimit -= 1; precision--; break; case 'p': case 'x': case 'X': Tcl_AppendToObj(segment, "0x", 2); segmentLimit -= 2; break; case 'b': Tcl_AppendToObj(segment, "0b", 2); segmentLimit -= 2; break; } } switch (ch) { case 'd': { int length; Tcl_Obj *pure; const char *bytes; if (useShort) { pure = Tcl_NewIntObj((int) s); #ifndef TCL_WIDE_INT_IS_LONG } else if (useWide) { pure = Tcl_NewWideIntObj(w); #endif } else if (useBig) { pure = Tcl_NewBignumObj(&big); } else { pure = Tcl_NewLongObj(l); } Tcl_IncrRefCount(pure); bytes = TclGetStringFromObj(pure, &length); |
︙ | ︙ | |||
2074 2075 2076 2077 2078 2079 2080 2081 2082 2083 2084 2085 2086 2087 | Tcl_AppendToObj(segment, bytes, toAppend); Tcl_DecrRefCount(pure); break; } case 'u': case 'o': case 'x': case 'X': case 'b': { Tcl_WideUInt bits = (Tcl_WideUInt) 0; Tcl_WideInt numDigits = (Tcl_WideInt) 0; int length, numBits = 4, base = 16, index = 0, shift = 0; Tcl_Obj *pure; | > | 2110 2111 2112 2113 2114 2115 2116 2117 2118 2119 2120 2121 2122 2123 2124 | Tcl_AppendToObj(segment, bytes, toAppend); Tcl_DecrRefCount(pure); break; } case 'u': case 'o': case 'p': case 'x': case 'X': case 'b': { Tcl_WideUInt bits = (Tcl_WideUInt) 0; Tcl_WideInt numDigits = (Tcl_WideInt) 0; int length, numBits = 4, base = 16, index = 0, shift = 0; Tcl_Obj *pure; |
︙ | ︙ | |||
2100 2101 2102 2103 2104 2105 2106 2107 2108 2109 2110 2111 2112 2113 2114 2115 2116 2117 2118 2119 2120 2121 | unsigned short us = (unsigned short) s; bits = (Tcl_WideUInt) us; while (us) { numDigits++; us /= base; } } else if (useWide) { Tcl_WideUInt uw = (Tcl_WideUInt) w; bits = uw; while (uw) { numDigits++; uw /= base; } } else if (useBig && big.used) { int leftover = (big.used * DIGIT_BIT) % numBits; mp_digit mask = (~(mp_digit)0) << (DIGIT_BIT-leftover); numDigits = 1 + (((Tcl_WideInt) big.used * DIGIT_BIT) / numBits); while ((mask & big.dp[big.used-1]) == 0) { | > > | 2137 2138 2139 2140 2141 2142 2143 2144 2145 2146 2147 2148 2149 2150 2151 2152 2153 2154 2155 2156 2157 2158 2159 2160 | unsigned short us = (unsigned short) s; bits = (Tcl_WideUInt) us; while (us) { numDigits++; us /= base; } #ifndef TCL_WIDE_INT_IS_LONG } else if (useWide) { Tcl_WideUInt uw = (Tcl_WideUInt) w; bits = uw; while (uw) { numDigits++; uw /= base; } #endif } else if (useBig && big.used) { int leftover = (big.used * DIGIT_BIT) % numBits; mp_digit mask = (~(mp_digit)0) << (DIGIT_BIT-leftover); numDigits = 1 + (((Tcl_WideInt) big.used * DIGIT_BIT) / numBits); while ((mask & big.dp[big.used-1]) == 0) { |
︙ | ︙ | |||
2463 2464 2465 2466 2467 2468 2469 2470 2471 2472 2473 2474 2475 2476 | break; } case 'c': case 'i': case 'u': case 'd': case 'o': case 'x': case 'X': seekingConversion = 0; switch (size) { case -1: case 0: Tcl_ListObjAppendElement(NULL, list, Tcl_NewLongObj( | > | 2502 2503 2504 2505 2506 2507 2508 2509 2510 2511 2512 2513 2514 2515 2516 | break; } case 'c': case 'i': case 'u': case 'd': case 'o': case 'p': case 'x': case 'X': seekingConversion = 0; switch (size) { case -1: case 0: Tcl_ListObjAppendElement(NULL, list, Tcl_NewLongObj( |
︙ | ︙ | |||
2513 2514 2515 2516 2517 2518 2519 | p++; break; /* TODO: support for bignum arguments */ case 'l': ++size; p++; break; | | > > > > > > > > > > > > | 2553 2554 2555 2556 2557 2558 2559 2560 2561 2562 2563 2564 2565 2566 2567 2568 2569 2570 2571 2572 2573 2574 2575 2576 2577 2578 2579 2580 2581 2582 2583 2584 2585 2586 | p++; break; /* TODO: support for bignum arguments */ case 'l': ++size; p++; break; case 't': case 'z': if (sizeof(size_t) == sizeof(Tcl_WideInt)) { size = 2; } p++; break; case 'j': case 'q': size = 2; p++; break; case 'I': if (p[1]=='6' && p[2]=='4') { p += 2; size = 2; } else if (p[1]=='3' && p[2]=='2') { p += 2; } else if (sizeof(size_t) == sizeof(Tcl_WideInt)) { size = 2; } p++; break; case 'h': size = -1; default: p++; |
︙ | ︙ | |||
3599 3600 3601 3602 3603 3604 3605 | * memory pointed to by that NULL pointer is clearly bogus, and * needs a reset. */ stringPtr->allocated = 0; if (stringPtr->numChars == 0) { | | | 3651 3652 3653 3654 3655 3656 3657 3658 3659 3660 3661 3662 3663 3664 3665 | * memory pointed to by that NULL pointer is clearly bogus, and * needs a reset. */ stringPtr->allocated = 0; if (stringPtr->numChars == 0) { TclInitStringRep(objPtr, &tclEmptyString, 0); } else { (void) ExtendStringRepWithUnicode(objPtr, stringPtr->unicode, stringPtr->numChars); } } static int |
︙ | ︙ |
Changes to generic/tclStubInit.c.
︙ | ︙ | |||
37 38 39 40 41 42 43 | #undef Tcl_ValidateAllMemory #undef Tcl_FindHashEntry #undef Tcl_CreateHashEntry #undef Tcl_Panic #undef Tcl_FindExecutable #undef TclpGetPid #undef TclSockMinimumBuffers | < > | > > > > > > > > > > > | 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 | #undef Tcl_ValidateAllMemory #undef Tcl_FindHashEntry #undef Tcl_CreateHashEntry #undef Tcl_Panic #undef Tcl_FindExecutable #undef TclpGetPid #undef TclSockMinimumBuffers #undef Tcl_SetIntObj #undef TclpInetNtoa #undef TclWinGetServByName #undef TclWinGetSockOpt #undef TclWinSetSockOpt #undef TclWinNToHS /* See bug 510001: TclSockMinimumBuffers needs plat imp */ #if defined(_WIN64) || defined(TCL_NO_DEPRECATED) # define TclSockMinimumBuffersOld 0 #else #define TclSockMinimumBuffersOld sockMinimumBuffersOld static int TclSockMinimumBuffersOld(int sock, int size) { return TclSockMinimumBuffers(INT2PTR(sock), size); } #endif #if defined(TCL_NO_DEPRECATED) # define TclSetStartupScriptPath 0 # define TclGetStartupScriptPath 0 # define TclSetStartupScriptFileName 0 # define TclGetStartupScriptFileName 0 # define TclpInetNtoa 0 # define TclWinGetServByName 0 # define TclWinGetSockOpt 0 # define TclWinSetSockOpt 0 # define TclWinNToHS 0 #else #define TclSetStartupScriptPath setStartupScriptPath static void TclSetStartupScriptPath(Tcl_Obj *path) { Tcl_SetStartupScript(path, NULL); } #define TclGetStartupScriptPath getStartupScriptPath static Tcl_Obj *TclGetStartupScriptPath(void) |
︙ | ︙ | |||
88 89 90 91 92 93 94 95 96 97 98 99 100 101 | #if defined(_WIN32) || defined(__CYGWIN__) #undef TclWinNToHS #define TclWinNToHS winNToHS static unsigned short TclWinNToHS(unsigned short ns) { return ntohs(ns); } #endif #ifdef _WIN32 # define TclUnixWaitForFile 0 # define TclUnixCopyFile 0 # define TclUnixOpenTemporaryFile 0 # define TclpReaddir 0 # define TclpIsAtty 0 | > | 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 | #if defined(_WIN32) || defined(__CYGWIN__) #undef TclWinNToHS #define TclWinNToHS winNToHS static unsigned short TclWinNToHS(unsigned short ns) { return ntohs(ns); } #endif #endif /* TCL_NO_DEPRECATED */ #ifdef _WIN32 # define TclUnixWaitForFile 0 # define TclUnixCopyFile 0 # define TclUnixOpenTemporaryFile 0 # define TclpReaddir 0 # define TclpIsAtty 0 |
︙ | ︙ | |||
283 284 285 286 287 288 289 | } #define Tcl_UniCharNcasecmp (int(*)(const Tcl_UniChar*,const Tcl_UniChar*,unsigned long))uniCharNcasecmp static int formatInt(char *buffer, int n){ return TclFormatInt(buffer, (long)n); } #define TclFormatInt (int(*)(char *, long))formatInt | > > | > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | > > > > > > > > > > > > > > > > > > > > > > > > > | | 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 | } #define Tcl_UniCharNcasecmp (int(*)(const Tcl_UniChar*,const Tcl_UniChar*,unsigned long))uniCharNcasecmp static int formatInt(char *buffer, int n){ return TclFormatInt(buffer, (long)n); } #define TclFormatInt (int(*)(char *, long))formatInt #endif /* TCL_WIDE_INT_IS_LONG */ #endif /* __CYGWIN__ */ #ifdef TCL_NO_DEPRECATED # define Tcl_SeekOld 0 # define Tcl_TellOld 0 # undef Tcl_SetBooleanObj # define Tcl_SetBooleanObj 0 # undef Tcl_PkgPresent # define Tcl_PkgPresent 0 # undef Tcl_PkgProvide # define Tcl_PkgProvide 0 # undef Tcl_PkgRequire # define Tcl_PkgRequire 0 # undef Tcl_GetIndexFromObj # define Tcl_GetIndexFromObj 0 # define Tcl_NewBooleanObj 0 # undef Tcl_DbNewBooleanObj # define Tcl_DbNewBooleanObj 0 # undef Tcl_SetBooleanObj # define Tcl_SetBooleanObj 0 # undef Tcl_SetVar # define Tcl_SetVar 0 # undef Tcl_UnsetVar # define Tcl_UnsetVar 0 # undef Tcl_GetVar # define Tcl_GetVar 0 # undef Tcl_TraceVar # define Tcl_TraceVar 0 # undef Tcl_UntraceVar # define Tcl_UntraceVar 0 # undef Tcl_VarTraceInfo # define Tcl_VarTraceInfo 0 # undef Tcl_UpVar # define Tcl_UpVar 0 # undef Tcl_AddErrorInfo # define Tcl_AddErrorInfo 0 # undef Tcl_AddObjErrorInfo # define Tcl_AddObjErrorInfo 0 # undef Tcl_Eval # define Tcl_Eval 0 # undef Tcl_GlobalEval # define Tcl_GlobalEval 0 # undef Tcl_SaveResult # define Tcl_SaveResult 0 # undef Tcl_RestoreResult # define Tcl_RestoreResult 0 # undef Tcl_DiscardResult # define Tcl_DiscardResult 0 # undef Tcl_SetResult # define Tcl_SetResult 0 # undef Tcl_EvalObj # define Tcl_EvalObj 0 # undef Tcl_GlobalEvalObj # define Tcl_GlobalEvalObj 0 # define TclBackgroundException 0 # undef TclpReaddir # define TclpReaddir 0 # undef TclpGetDate # define TclpGetDate 0 # undef TclpLocaltime # define TclpLocaltime 0 # undef TclpGmtime # define TclpGmtime 0 # define TclpLocaltime_unix 0 # define TclpGmtime_unix 0 #else /* TCL_NO_DEPRECATED */ # define Tcl_SeekOld seekOld # define Tcl_TellOld tellOld # define TclBackgroundException Tcl_BackgroundException # define TclpLocaltime_unix TclpLocaltime # define TclpGmtime_unix TclpGmtime static int seekOld( Tcl_Channel chan, /* The channel on which to seek. */ int offset, /* Offset to seek to. */ int mode) /* Relative to which location to seek? */ { Tcl_WideInt wOffset, wResult; wOffset = Tcl_LongAsWide((long) offset); wResult = Tcl_Seek(chan, wOffset, mode); return (int) Tcl_WideAsLong(wResult); } static int tellOld( Tcl_Channel chan) /* The channel to return pos for. */ { Tcl_WideInt wResult = Tcl_Tell(chan); return (int) Tcl_WideAsLong(wResult); } #endif /* !TCL_NO_DEPRECATED */ /* * WARNING: The contents of this file is automatically generated by the * tools/genStubs.tcl script. Any modifications to the function declarations * below should be made in the generic/tcl.decls script. */ |
︙ | ︙ | |||
1413 1414 1415 1416 1417 1418 1419 1420 1421 1422 | Tcl_NRExprObj, /* 625 */ Tcl_NRSubstObj, /* 626 */ Tcl_LoadFile, /* 627 */ Tcl_FindSymbol, /* 628 */ Tcl_FSUnloadFile, /* 629 */ Tcl_ZlibStreamSetCompressionDictionary, /* 630 */ Tcl_OpenTcpServerEx, /* 631 */ }; /* !END!: Do not edit above this line. */ | > | 1515 1516 1517 1518 1519 1520 1521 1522 1523 1524 1525 | Tcl_NRExprObj, /* 625 */ Tcl_NRSubstObj, /* 626 */ Tcl_LoadFile, /* 627 */ Tcl_FindSymbol, /* 628 */ Tcl_FSUnloadFile, /* 629 */ Tcl_ZlibStreamSetCompressionDictionary, /* 630 */ Tcl_OpenTcpServerEx, /* 631 */ Tcl_OpenTcpClientEx, /* 632 */ }; /* !END!: Do not edit above this line. */ |
Changes to generic/tclStubLib.c.
︙ | ︙ | |||
63 64 65 66 67 68 69 | * We can't optimize this check by caching tclStubsPtr because that * prevents apps from being able to load/unload Tcl dynamically multiple * times. [Bug 615304] */ if (!stubsPtr || (stubsPtr->magic != (((exact&0xff00) >= 0x900) ? magic : TCL_STUB_MAGIC))) { iPtr->result = (char *)"interpreter uses an incompatible stubs mechanism"; | | | 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 | * We can't optimize this check by caching tclStubsPtr because that * prevents apps from being able to load/unload Tcl dynamically multiple * times. [Bug 615304] */ if (!stubsPtr || (stubsPtr->magic != (((exact&0xff00) >= 0x900) ? magic : TCL_STUB_MAGIC))) { iPtr->result = (char *)"interpreter uses an incompatible stubs mechanism"; iPtr->freeProc = 0; return NULL; } actualVersion = stubsPtr->tcl_PkgRequireEx(interp, "Tcl", version, 0, &pkgData); if (actualVersion == NULL) { return NULL; } |
︙ | ︙ |
Changes to generic/tclTest.c.
︙ | ︙ | |||
86 87 88 89 90 91 92 | static Tcl_Trace cmdTrace; /* * One of the following structures exists for each command created by * TestdelCmd: */ | | | | 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 | static Tcl_Trace cmdTrace; /* * One of the following structures exists for each command created by * TestdelCmd: */ typedef struct { Tcl_Interp *interp; /* Interpreter in which command exists. */ char *deleteCmd; /* Script to execute when command is deleted. * Malloc'ed. */ } DelCmd; /* * The following is used to keep track of an encoding that invokes a Tcl * command. */ typedef struct { Tcl_Interp *interp; char *toUtfCmd; char *fromUtfCmd; } TclEncoding; /* * The counter below is used to determine if the TestsaveresultFree routine |
︙ | ︙ | |||
120 121 122 123 124 125 126 | static int exitMainLoop = 0; /* * Event structure used in testing the event queue management procedures. */ | | | 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 | static int exitMainLoop = 0; /* * Event structure used in testing the event queue management procedures. */ typedef struct { Tcl_Event header; /* Header common to all events */ Tcl_Interp *interp; /* Interpreter that will handle the event */ Tcl_Obj *command; /* Command to evaluate when the event occurs */ Tcl_Obj *tag; /* Tag for this event used to delete it */ } TestEvent; /* |
︙ | ︙ | |||
286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 | static int TestinterpdeleteCmd(ClientData dummy, Tcl_Interp *interp, int argc, const char **argv); static int TestlinkCmd(ClientData dummy, Tcl_Interp *interp, int argc, const char **argv); static int TestlocaleCmd(ClientData dummy, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]); static int TestMathFunc(ClientData clientData, Tcl_Interp *interp, Tcl_Value *args, Tcl_Value *resultPtr); static int TestMathFunc2(ClientData clientData, Tcl_Interp *interp, Tcl_Value *args, Tcl_Value *resultPtr); static int TestmainthreadCmd(ClientData dummy, Tcl_Interp *interp, int argc, const char **argv); static int TestsetmainloopCmd(ClientData dummy, Tcl_Interp *interp, int argc, const char **argv); static int TestexitmainloopCmd(ClientData dummy, Tcl_Interp *interp, int argc, const char **argv); static int TestpanicCmd(ClientData dummy, | > > | 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 | static int TestinterpdeleteCmd(ClientData dummy, Tcl_Interp *interp, int argc, const char **argv); static int TestlinkCmd(ClientData dummy, Tcl_Interp *interp, int argc, const char **argv); static int TestlocaleCmd(ClientData dummy, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]); #ifndef TCL_NO_DEPRECATED static int TestMathFunc(ClientData clientData, Tcl_Interp *interp, Tcl_Value *args, Tcl_Value *resultPtr); static int TestMathFunc2(ClientData clientData, Tcl_Interp *interp, Tcl_Value *args, Tcl_Value *resultPtr); #endif /* TCL_NO_DEPRECATED */ static int TestmainthreadCmd(ClientData dummy, Tcl_Interp *interp, int argc, const char **argv); static int TestsetmainloopCmd(ClientData dummy, Tcl_Interp *interp, int argc, const char **argv); static int TestexitmainloopCmd(ClientData dummy, Tcl_Interp *interp, int argc, const char **argv); static int TestpanicCmd(ClientData dummy, |
︙ | ︙ | |||
325 326 327 328 329 330 331 | Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]); static int TestreturnObjCmd(ClientData dummy, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]); static void TestregexpXflags(const char *string, int length, int *cflagsPtr, int *eflagsPtr); | < < | 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 | Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]); static int TestreturnObjCmd(ClientData dummy, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]); static void TestregexpXflags(const char *string, int length, int *cflagsPtr, int *eflagsPtr); static int TestsaveresultCmd(ClientData dummy, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]); static void TestsaveresultFree(char *blockPtr); static int TestsetassocdataCmd(ClientData dummy, Tcl_Interp *interp, int argc, const char **argv); static int TestsetCmd(ClientData dummy, Tcl_Interp *interp, int argc, const char **argv); static int Testset2Cmd(ClientData dummy, Tcl_Interp *interp, int argc, const char **argv); static int TestseterrorcodeCmd(ClientData dummy, |
︙ | ︙ | |||
551 552 553 554 555 556 557 | return TCL_ERROR; } if (Tcl_OOInitStubs(interp) == NULL) { return TCL_ERROR; } /* TIP #268: Full patchlevel instead of just major.minor */ | | | 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 | return TCL_ERROR; } if (Tcl_OOInitStubs(interp) == NULL) { return TCL_ERROR; } /* TIP #268: Full patchlevel instead of just major.minor */ if (Tcl_PkgProvideEx(interp, "Tcltest", TCL_PATCH_LEVEL, NULL) == TCL_ERROR) { return TCL_ERROR; } /* * Create additional commands and math functions for testing Tcl. */ |
︙ | ︙ | |||
654 655 656 657 658 659 660 | NULL, NULL); Tcl_CreateObjCommand(interp, "testprint", TestprintObjCmd, NULL, NULL); Tcl_CreateObjCommand(interp, "testregexp", TestregexpObjCmd, NULL, NULL); Tcl_CreateObjCommand(interp, "testreturn", TestreturnObjCmd, NULL, NULL); | < < | 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 | NULL, NULL); Tcl_CreateObjCommand(interp, "testprint", TestprintObjCmd, NULL, NULL); Tcl_CreateObjCommand(interp, "testregexp", TestregexpObjCmd, NULL, NULL); Tcl_CreateObjCommand(interp, "testreturn", TestreturnObjCmd, NULL, NULL); Tcl_CreateObjCommand(interp, "testsaveresult", TestsaveresultCmd, NULL, NULL); Tcl_CreateCommand(interp, "testsetassocdata", TestsetassocdataCmd, NULL, NULL); Tcl_CreateCommand(interp, "testsetnoerr", TestsetCmd, NULL, NULL); Tcl_CreateCommand(interp, "testseterr", TestsetCmd, (ClientData) TCL_LEAVE_ERR_MSG, NULL); Tcl_CreateCommand(interp, "testset2", Testset2Cmd, |
︙ | ︙ | |||
819 820 821 822 823 824 825 | { TestAsyncHandler *asyncPtr, *prevPtr; int id, code; static int nextId = 1; if (argc < 2) { wrongNumArgs: | | | 817 818 819 820 821 822 823 824 825 826 827 828 829 830 831 | { TestAsyncHandler *asyncPtr, *prevPtr; int id, code; static int nextId = 1; if (argc < 2) { wrongNumArgs: Tcl_AppendResult(interp, "wrong # args", NULL); return TCL_ERROR; } if (strcmp(argv[1], "create") == 0) { if (argc != 3) { goto wrongNumArgs; } asyncPtr = ckalloc(sizeof(TestAsyncHandler)); |
︙ | ︙ | |||
909 910 911 912 913 914 915 | for (asyncPtr = firstHandler; asyncPtr != NULL; asyncPtr = asyncPtr->nextPtr) { if (asyncPtr->id == id) { Tcl_ThreadId threadID; if (Tcl_CreateThread(&threadID, AsyncThreadProc, INT2PTR(id), TCL_THREAD_STACK_DEFAULT, TCL_THREAD_NOFLAGS) != TCL_OK) { | | | 907 908 909 910 911 912 913 914 915 916 917 918 919 920 921 | for (asyncPtr = firstHandler; asyncPtr != NULL; asyncPtr = asyncPtr->nextPtr) { if (asyncPtr->id == id) { Tcl_ThreadId threadID; if (Tcl_CreateThread(&threadID, AsyncThreadProc, INT2PTR(id), TCL_THREAD_STACK_DEFAULT, TCL_THREAD_NOFLAGS) != TCL_OK) { Tcl_AppendResult(interp, "can't create thread", NULL); Tcl_MutexUnlock(&asyncTestMutex); return TCL_ERROR; } break; } } Tcl_MutexUnlock(&asyncTestMutex); |
︙ | ︙ | |||
1056 1057 1058 1059 1060 1061 1062 | CmdDelProc1); } else if (strcmp(argv[1], "delete") == 0) { Tcl_DStringInit(&delString); Tcl_DeleteCommand(interp, argv[2]); Tcl_DStringResult(interp, &delString); } else if (strcmp(argv[1], "get") == 0) { if (Tcl_GetCommandInfo(interp, argv[2], &info) ==0) { | | | 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 | CmdDelProc1); } else if (strcmp(argv[1], "delete") == 0) { Tcl_DStringInit(&delString); Tcl_DeleteCommand(interp, argv[2]); Tcl_DStringResult(interp, &delString); } else if (strcmp(argv[1], "get") == 0) { if (Tcl_GetCommandInfo(interp, argv[2], &info) ==0) { Tcl_AppendResult(interp, "??", NULL); return TCL_OK; } if (info.proc == CmdProc1) { Tcl_AppendResult(interp, "CmdProc1", " ", (char *) info.clientData, NULL); } else if (info.proc == CmdProc2) { Tcl_AppendResult(interp, "CmdProc2", " ", |
︙ | ︙ | |||
1183 1184 1185 1186 1187 1188 1189 | " option arg\"", NULL); return TCL_ERROR; } if (strcmp(argv[1], "create") == 0) { token = Tcl_CreateCommand(interp, argv[2], CmdProc1, (ClientData) "original", NULL); sprintf(buf, "%p", (void *)token); | | | 1181 1182 1183 1184 1185 1186 1187 1188 1189 1190 1191 1192 1193 1194 1195 | " option arg\"", NULL); return TCL_ERROR; } if (strcmp(argv[1], "create") == 0) { token = Tcl_CreateCommand(interp, argv[2], CmdProc1, (ClientData) "original", NULL); sprintf(buf, "%p", (void *)token); Tcl_AppendResult(interp, buf, NULL); } else if (strcmp(argv[1], "name") == 0) { Tcl_Obj *objPtr; if (sscanf(argv[2], "%p", &l) != 1) { Tcl_AppendResult(interp, "bad command token \"", argv[2], "\"", NULL); return TCL_ERROR; |
︙ | ︙ | |||
1289 1290 1291 1292 1293 1294 1295 | deleteCalled = 0; cmdTrace = Tcl_CreateObjTrace(interp, 50000, TCL_ALLOW_INLINE_COMPILATION, ObjTraceProc, (ClientData) &deleteCalled, ObjTraceDeleteProc); result = Tcl_EvalEx(interp, argv[2], -1, 0); Tcl_DeleteTrace(interp, cmdTrace); if (!deleteCalled) { | | | 1287 1288 1289 1290 1291 1292 1293 1294 1295 1296 1297 1298 1299 1300 1301 | deleteCalled = 0; cmdTrace = Tcl_CreateObjTrace(interp, 50000, TCL_ALLOW_INLINE_COMPILATION, ObjTraceProc, (ClientData) &deleteCalled, ObjTraceDeleteProc); result = Tcl_EvalEx(interp, argv[2], -1, 0); Tcl_DeleteTrace(interp, cmdTrace); if (!deleteCalled) { Tcl_AppendResult(interp, "Delete wasn't called", NULL); return TCL_ERROR; } else { return result; } } else if (strcmp(argv[1], "doubletest") == 0) { Tcl_Trace t1, t2; |
︙ | ︙ | |||
1589 1590 1591 1592 1593 1594 1595 | int argc, /* Number of arguments. */ const char **argv) /* Argument strings. */ { DelCmd *dPtr; Tcl_Interp *slave; if (argc != 4) { | | | 1587 1588 1589 1590 1591 1592 1593 1594 1595 1596 1597 1598 1599 1600 1601 | int argc, /* Number of arguments. */ const char **argv) /* Argument strings. */ { DelCmd *dPtr; Tcl_Interp *slave; if (argc != 4) { Tcl_AppendResult(interp, "wrong # args", NULL); return TCL_ERROR; } slave = Tcl_GetSlave(interp, argv[1]); if (slave == NULL) { return TCL_ERROR; } |
︙ | ︙ | |||
1794 1795 1796 1797 1798 1799 1800 | int argc, /* Number of arguments. */ const char **argv) /* Argument strings. */ { int count; if (argc < 2) { wrongNumArgs: | | | 1792 1793 1794 1795 1796 1797 1798 1799 1800 1801 1802 1803 1804 1805 1806 | int argc, /* Number of arguments. */ const char **argv) /* Argument strings. */ { int count; if (argc < 2) { wrongNumArgs: Tcl_AppendResult(interp, "wrong # args", NULL); return TCL_ERROR; } if (strcmp(argv[1], "append") == 0) { if (argc != 4) { goto wrongNumArgs; } if (Tcl_GetInt(interp, argv[3], &count) != TCL_OK) { |
︙ | ︙ | |||
1830 1831 1832 1833 1834 1835 1836 | } Tcl_SetResult(interp, Tcl_DStringValue(&dstring), TCL_VOLATILE); } else if (strcmp(argv[1], "gresult") == 0) { if (argc != 3) { goto wrongNumArgs; } if (strcmp(argv[2], "staticsmall") == 0) { | | | | 1828 1829 1830 1831 1832 1833 1834 1835 1836 1837 1838 1839 1840 1841 1842 1843 1844 | } Tcl_SetResult(interp, Tcl_DStringValue(&dstring), TCL_VOLATILE); } else if (strcmp(argv[1], "gresult") == 0) { if (argc != 3) { goto wrongNumArgs; } if (strcmp(argv[2], "staticsmall") == 0) { Tcl_AppendResult(interp, "short", NULL); } else if (strcmp(argv[2], "staticlarge") == 0) { Tcl_AppendResult(interp, "first0 first1 first2 first3 first4 first5 first6 first7 first8 first9\nsecond0 second1 second2 second3 second4 second5 second6 second7 second8 second9\nthird0 third1 third2 third3 third4 third5 third6 third7 third8 third9\nfourth0 fourth1 fourth2 fourth3 fourth4 fourth5 fourth6 fourth7 fourth8 fourth9\nfifth0 fifth1 fifth2 fifth3 fifth4 fifth5 fifth6 fifth7 fifth8 fifth9\nsixth0 sixth1 sixth2 sixth3 sixth4 sixth5 sixth6 sixth7 sixth8 sixth9\nseventh0 seventh1 seventh2 seventh3 seventh4 seventh5 seventh6 seventh7 seventh8 seventh9\n", NULL); } else if (strcmp(argv[2], "free") == 0) { char *s = ckalloc(100); strcpy(s, "This is a malloc-ed string"); Tcl_SetResult(interp, s, TCL_DYNAMIC); } else if (strcmp(argv[2], "special") == 0) { char *s = (char*)ckalloc(100) + 16; strcpy(s, "This is a specially-allocated string"); |
︙ | ︙ | |||
1992 1993 1994 1995 1996 1997 1998 | int *dstWrotePtr, /* Filled with number of bytes stored. */ int *dstCharsPtr) /* Filled with number of chars stored. */ { int len; TclEncoding *encodingPtr; encodingPtr = (TclEncoding *) clientData; | | | 1990 1991 1992 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 | int *dstWrotePtr, /* Filled with number of bytes stored. */ int *dstCharsPtr) /* Filled with number of chars stored. */ { int len; TclEncoding *encodingPtr; encodingPtr = (TclEncoding *) clientData; Tcl_EvalEx(encodingPtr->interp, encodingPtr->toUtfCmd, -1, TCL_EVAL_GLOBAL); len = strlen(Tcl_GetStringResult(encodingPtr->interp)); if (len > dstLen) { len = dstLen; } memcpy(dst, Tcl_GetStringResult(encodingPtr->interp), (unsigned) len); Tcl_ResetResult(encodingPtr->interp); |
︙ | ︙ | |||
2024 2025 2026 2027 2028 2029 2030 | int *dstWrotePtr, /* Filled with number of bytes stored. */ int *dstCharsPtr) /* Filled with number of chars stored. */ { int len; TclEncoding *encodingPtr; encodingPtr = (TclEncoding *) clientData; | | | 2022 2023 2024 2025 2026 2027 2028 2029 2030 2031 2032 2033 2034 2035 2036 | int *dstWrotePtr, /* Filled with number of bytes stored. */ int *dstCharsPtr) /* Filled with number of chars stored. */ { int len; TclEncoding *encodingPtr; encodingPtr = (TclEncoding *) clientData; Tcl_EvalEx(encodingPtr->interp, encodingPtr->fromUtfCmd, -1, TCL_EVAL_GLOBAL); len = strlen(Tcl_GetStringResult(encodingPtr->interp)); if (len > dstLen) { len = dstLen; } memcpy(dst, Tcl_GetStringResult(encodingPtr->interp), (unsigned) len); Tcl_ResetResult(encodingPtr->interp); |
︙ | ︙ | |||
2432 2433 2434 2435 2436 2437 2438 | int result; if (argc != 2) { Tcl_AppendResult(interp, "wrong # arguments: should be \"", argv[0], " expression\"", NULL); return TCL_ERROR; } | | | 2430 2431 2432 2433 2434 2435 2436 2437 2438 2439 2440 2441 2442 2443 2444 | int result; if (argc != 2) { Tcl_AppendResult(interp, "wrong # arguments: should be \"", argv[0], " expression\"", NULL); return TCL_ERROR; } Tcl_AppendResult(interp, "This is a result", NULL); result = Tcl_ExprLong(interp, argv[1], &exprResult); if (result != TCL_OK) { return result; } sprintf(buf, ": %ld", exprResult); Tcl_AppendResult(interp, buf, NULL); return TCL_OK; |
︙ | ︙ | |||
2474 2475 2476 2477 2478 2479 2480 | char buf[4 + TCL_INTEGER_SPACE]; int result; if (objc != 2) { Tcl_WrongNumArgs(interp, 1, objv, "expression"); return TCL_ERROR; } | | | 2472 2473 2474 2475 2476 2477 2478 2479 2480 2481 2482 2483 2484 2485 2486 | char buf[4 + TCL_INTEGER_SPACE]; int result; if (objc != 2) { Tcl_WrongNumArgs(interp, 1, objv, "expression"); return TCL_ERROR; } Tcl_AppendResult(interp, "This is a result", NULL); result = Tcl_ExprLongObj(interp, objv[1], &exprResult); if (result != TCL_OK) { return result; } sprintf(buf, ": %ld", exprResult); Tcl_AppendResult(interp, buf, NULL); return TCL_OK; |
︙ | ︙ | |||
2517 2518 2519 2520 2521 2522 2523 | int result; if (argc != 2) { Tcl_AppendResult(interp, "wrong # arguments: should be \"", argv[0], " expression\"", NULL); return TCL_ERROR; } | | | 2515 2516 2517 2518 2519 2520 2521 2522 2523 2524 2525 2526 2527 2528 2529 | int result; if (argc != 2) { Tcl_AppendResult(interp, "wrong # arguments: should be \"", argv[0], " expression\"", NULL); return TCL_ERROR; } Tcl_AppendResult(interp, "This is a result", NULL); result = Tcl_ExprDouble(interp, argv[1], &exprResult); if (result != TCL_OK) { return result; } strcpy(buf, ": "); Tcl_PrintDouble(interp, exprResult, buf+2); Tcl_AppendResult(interp, buf, NULL); |
︙ | ︙ | |||
2560 2561 2562 2563 2564 2565 2566 | char buf[4 + TCL_DOUBLE_SPACE]; int result; if (objc != 2) { Tcl_WrongNumArgs(interp, 1, objv, "expression"); return TCL_ERROR; } | | | 2558 2559 2560 2561 2562 2563 2564 2565 2566 2567 2568 2569 2570 2571 2572 | char buf[4 + TCL_DOUBLE_SPACE]; int result; if (objc != 2) { Tcl_WrongNumArgs(interp, 1, objv, "expression"); return TCL_ERROR; } Tcl_AppendResult(interp, "This is a result", NULL); result = Tcl_ExprDoubleObj(interp, objv[1], &exprResult); if (result != TCL_OK) { return result; } strcpy(buf, ": "); Tcl_PrintDouble(interp, exprResult, buf+2); Tcl_AppendResult(interp, buf, NULL); |
︙ | ︙ | |||
3337 3338 3339 3340 3341 3342 3343 3344 3345 3346 3347 3348 3349 3350 | * Side effects: * None. * *---------------------------------------------------------------------- */ /* ARGSUSED */ static int TestMathFunc( ClientData clientData, /* Integer value to return. */ Tcl_Interp *interp, /* Not used. */ Tcl_Value *args, /* Not used. */ Tcl_Value *resultPtr) /* Where to store result. */ { | > | 3335 3336 3337 3338 3339 3340 3341 3342 3343 3344 3345 3346 3347 3348 3349 | * Side effects: * None. * *---------------------------------------------------------------------- */ /* ARGSUSED */ #ifndef TCL_NO_DEPRECATED static int TestMathFunc( ClientData clientData, /* Integer value to return. */ Tcl_Interp *interp, /* Not used. */ Tcl_Value *args, /* Not used. */ Tcl_Value *resultPtr) /* Where to store result. */ { |
︙ | ︙ | |||
3402 3403 3404 3405 3406 3407 3408 | } else if (args[1].type == TCL_WIDE_INT) { Tcl_WideInt w0 = Tcl_LongAsWide(i0); Tcl_WideInt w1 = args[1].wideValue; resultPtr->type = TCL_WIDE_INT; resultPtr->wideValue = ((w0 > w1)? w0 : w1); } else { | | | 3401 3402 3403 3404 3405 3406 3407 3408 3409 3410 3411 3412 3413 3414 3415 | } else if (args[1].type == TCL_WIDE_INT) { Tcl_WideInt w0 = Tcl_LongAsWide(i0); Tcl_WideInt w1 = args[1].wideValue; resultPtr->type = TCL_WIDE_INT; resultPtr->wideValue = ((w0 > w1)? w0 : w1); } else { Tcl_AppendResult(interp, "T3: wrong type for arg 2", NULL); result = TCL_ERROR; } } else if (args[0].type == TCL_DOUBLE) { double d0 = args[0].doubleValue; if (args[1].type == TCL_INT) { double d1 = args[1].intValue; |
︙ | ︙ | |||
3424 3425 3426 3427 3428 3429 3430 | resultPtr->doubleValue = ((d0 > d1)? d0 : d1); } else if (args[1].type == TCL_WIDE_INT) { double d1 = Tcl_WideAsDouble(args[1].wideValue); resultPtr->type = TCL_DOUBLE; resultPtr->doubleValue = ((d0 > d1)? d0 : d1); } else { | | | 3423 3424 3425 3426 3427 3428 3429 3430 3431 3432 3433 3434 3435 3436 3437 | resultPtr->doubleValue = ((d0 > d1)? d0 : d1); } else if (args[1].type == TCL_WIDE_INT) { double d1 = Tcl_WideAsDouble(args[1].wideValue); resultPtr->type = TCL_DOUBLE; resultPtr->doubleValue = ((d0 > d1)? d0 : d1); } else { Tcl_AppendResult(interp, "T3: wrong type for arg 2", NULL); result = TCL_ERROR; } } else if (args[0].type == TCL_WIDE_INT) { Tcl_WideInt w0 = args[0].wideValue; if (args[1].type == TCL_INT) { Tcl_WideInt w1 = Tcl_LongAsWide(args[1].intValue); |
︙ | ︙ | |||
3447 3448 3449 3450 3451 3452 3453 | resultPtr->doubleValue = ((d0 > d1)? d0 : d1); } else if (args[1].type == TCL_WIDE_INT) { Tcl_WideInt w1 = args[1].wideValue; resultPtr->type = TCL_WIDE_INT; resultPtr->wideValue = ((w0 > w1)? w0 : w1); } else { | | | > | 3446 3447 3448 3449 3450 3451 3452 3453 3454 3455 3456 3457 3458 3459 3460 3461 3462 3463 3464 3465 3466 3467 3468 3469 | resultPtr->doubleValue = ((d0 > d1)? d0 : d1); } else if (args[1].type == TCL_WIDE_INT) { Tcl_WideInt w1 = args[1].wideValue; resultPtr->type = TCL_WIDE_INT; resultPtr->wideValue = ((w0 > w1)? w0 : w1); } else { Tcl_AppendResult(interp, "T3: wrong type for arg 2", NULL); result = TCL_ERROR; } } else { Tcl_AppendResult(interp, "T3: wrong type for arg 1", NULL); result = TCL_ERROR; } return result; } #endif /* TCL_NO_DEPRECATED */ /* *---------------------------------------------------------------------- * * CleanupTestSetassocdataTests -- * * This function is called when an interpreter is deleted to clean |
︙ | ︙ | |||
3843 3844 3845 3846 3847 3848 3849 3850 3851 3852 3853 3854 3855 3856 3857 | TestprintObjCmd( ClientData clientData, /* Not used. */ Tcl_Interp *interp, /* Current interpreter. */ int objc, /* Number of arguments. */ Tcl_Obj *const objv[]) /* The argument objects. */ { Tcl_WideInt argv1 = 0; if (objc < 2 || objc > 3) { Tcl_WrongNumArgs(interp, 1, objv, "format wideint"); } if (objc > 1) { Tcl_GetWideIntFromObj(interp, objv[2], &argv1); } | > > | | 3843 3844 3845 3846 3847 3848 3849 3850 3851 3852 3853 3854 3855 3856 3857 3858 3859 3860 3861 3862 3863 3864 3865 3866 3867 | TestprintObjCmd( ClientData clientData, /* Not used. */ Tcl_Interp *interp, /* Current interpreter. */ int objc, /* Number of arguments. */ Tcl_Obj *const objv[]) /* The argument objects. */ { Tcl_WideInt argv1 = 0; size_t argv2; if (objc < 2 || objc > 3) { Tcl_WrongNumArgs(interp, 1, objv, "format wideint"); } if (objc > 1) { Tcl_GetWideIntFromObj(interp, objv[2], &argv1); } argv2 = (size_t)argv1; Tcl_SetObjResult(interp, Tcl_ObjPrintf(Tcl_GetString(objv[1]), argv1, argv2, argv2)); return TCL_OK; } /* *---------------------------------------------------------------------- * * TestregexpObjCmd -- |
︙ | ︙ | |||
4482 4483 4484 4485 4486 4487 4488 | TestseterrorcodeCmd( ClientData dummy, /* Not used. */ Tcl_Interp *interp, /* Current interpreter. */ int argc, /* Number of arguments. */ const char **argv) /* Argument strings. */ { if (argc > 6) { | | | 4484 4485 4486 4487 4488 4489 4490 4491 4492 4493 4494 4495 4496 4497 4498 | TestseterrorcodeCmd( ClientData dummy, /* Not used. */ Tcl_Interp *interp, /* Current interpreter. */ int argc, /* Number of arguments. */ const char **argv) /* Argument strings. */ { if (argc > 6) { Tcl_AppendResult(interp, "too many args", NULL); return TCL_ERROR; } switch (argc) { case 1: Tcl_SetErrorCode(interp, "NONE", NULL); break; case 2: |
︙ | ︙ | |||
5086 5087 5088 5089 5090 5091 5092 | int argc, /* Number of arguments. */ const char **argv) /* Argument strings. */ { int flags = PTR2INT(data); const char *value; if (argc == 2) { | | | | 5088 5089 5090 5091 5092 5093 5094 5095 5096 5097 5098 5099 5100 5101 5102 5103 5104 5105 5106 5107 5108 5109 5110 | int argc, /* Number of arguments. */ const char **argv) /* Argument strings. */ { int flags = PTR2INT(data); const char *value; if (argc == 2) { Tcl_AppendResult(interp, "before get", NULL); value = Tcl_GetVar2(interp, argv[1], NULL, flags); if (value == NULL) { return TCL_ERROR; } Tcl_AppendElement(interp, value); return TCL_OK; } else if (argc == 3) { Tcl_AppendResult(interp, "before set", NULL); value = Tcl_SetVar2(interp, argv[1], NULL, argv[2], flags); if (value == NULL) { return TCL_ERROR; } Tcl_AppendElement(interp, value); return TCL_OK; } else { |
︙ | ︙ | |||
5118 5119 5120 5121 5122 5123 5124 | int argc, /* Number of arguments. */ const char **argv) /* Argument strings. */ { int flags = PTR2INT(data); const char *value; if (argc == 3) { | | | < | 5120 5121 5122 5123 5124 5125 5126 5127 5128 5129 5130 5131 5132 5133 5134 5135 5136 5137 5138 5139 5140 5141 5142 5143 5144 5145 5146 5147 5148 5149 5150 5151 5152 5153 5154 5155 | int argc, /* Number of arguments. */ const char **argv) /* Argument strings. */ { int flags = PTR2INT(data); const char *value; if (argc == 3) { Tcl_AppendResult(interp, "before get", NULL); value = Tcl_GetVar2(interp, argv[1], argv[2], flags); if (value == NULL) { return TCL_ERROR; } Tcl_AppendElement(interp, value); return TCL_OK; } else if (argc == 4) { Tcl_AppendResult(interp, "before set", NULL); value = Tcl_SetVar2(interp, argv[1], argv[2], argv[3], flags); if (value == NULL) { return TCL_ERROR; } Tcl_AppendElement(interp, value); return TCL_OK; } else { Tcl_AppendResult(interp, "wrong # args: should be \"", argv[0], " varName elemName ?newValue?\"", NULL); return TCL_ERROR; } } /* *---------------------------------------------------------------------- * * TestsaveresultCmd -- * * Implements the "testsaveresult" cmd that is used when testing the * Tcl_SaveResult, Tcl_RestoreResult, and Tcl_DiscardResult interfaces. |
︙ | ︙ | |||
5193 5194 5195 5196 5197 5198 5199 5200 5201 5202 | &index) != TCL_OK) { return TCL_ERROR; } if (Tcl_GetBooleanFromObj(interp, objv[3], &discard) != TCL_OK) { return TCL_ERROR; } objPtr = NULL; /* Lint. */ switch ((enum options) index) { case RESULT_SMALL: | > | < | < < | | 5194 5195 5196 5197 5198 5199 5200 5201 5202 5203 5204 5205 5206 5207 5208 5209 5210 5211 5212 5213 5214 5215 5216 5217 5218 5219 5220 5221 5222 5223 5224 5225 5226 5227 5228 5229 5230 5231 5232 5233 5234 5235 5236 5237 5238 5239 5240 5241 5242 5243 5244 5245 5246 5247 5248 5249 5250 5251 5252 | &index) != TCL_OK) { return TCL_ERROR; } if (Tcl_GetBooleanFromObj(interp, objv[3], &discard) != TCL_OK) { return TCL_ERROR; } freeCount = 0; objPtr = NULL; /* Lint. */ switch ((enum options) index) { case RESULT_SMALL: Tcl_AppendResult(interp, "small result", NULL); break; case RESULT_APPEND: Tcl_AppendResult(interp, "append result", NULL); break; case RESULT_FREE: { char *buf = ckalloc(200); strcpy(buf, "free result"); Tcl_SetResult(interp, buf, TCL_DYNAMIC); break; } case RESULT_DYNAMIC: Tcl_SetResult(interp, (char *)"dynamic result", TestsaveresultFree); break; case RESULT_OBJECT: objPtr = Tcl_NewStringObj("object result", -1); Tcl_SetObjResult(interp, objPtr); break; } Tcl_SaveResult(interp, &state); if (((enum options) index) == RESULT_OBJECT) { result = Tcl_EvalObjEx(interp, objv[2], 0); } else { result = Tcl_EvalEx(interp, Tcl_GetString(objv[2]), -1, 0); } if (discard) { Tcl_DiscardResult(&state); } else { Tcl_RestoreResult(interp, &state); result = TCL_OK; } switch ((enum options) index) { case RESULT_DYNAMIC: { int presentOrFreed = (iPtr->freeProc == TestsaveresultFree) ^ freeCount; Tcl_AppendElement(interp, presentOrFreed ? "presentOrFreed" : "missingOrLeak"); break; } case RESULT_OBJECT: Tcl_AppendElement(interp, Tcl_GetObjResult(interp) == objPtr ? "same" : "different"); break; default: |
︙ | ︙ | |||
5274 5275 5276 5277 5278 5279 5280 | static void TestsaveresultFree( char *blockPtr) { freeCount++; } | < | 5273 5274 5275 5276 5277 5278 5279 5280 5281 5282 5283 5284 5285 5286 | static void TestsaveresultFree( char *blockPtr) { freeCount++; } /* *---------------------------------------------------------------------- * * TestmainthreadCmd -- * * Implements the "testmainthread" cmd that is used to test the |
︙ | ︙ | |||
5306 5307 5308 5309 5310 5311 5312 | { if (argc == 1) { Tcl_Obj *idObj = Tcl_NewLongObj((long)(size_t)Tcl_GetCurrentThread()); Tcl_SetObjResult(interp, idObj); return TCL_OK; } else { | | | 5304 5305 5306 5307 5308 5309 5310 5311 5312 5313 5314 5315 5316 5317 5318 | { if (argc == 1) { Tcl_Obj *idObj = Tcl_NewLongObj((long)(size_t)Tcl_GetCurrentThread()); Tcl_SetObjResult(interp, idObj); return TCL_OK; } else { Tcl_AppendResult(interp, "wrong # args", NULL); return TCL_ERROR; } } /* *---------------------------------------------------------------------- * |
︙ | ︙ | |||
6107 6108 6109 6110 6111 6112 6113 | const char *msg; if (objc < 3) { /* * Don't use Tcl_WrongNumArgs here, as that is the function * we want to test! */ | | | | 6105 6106 6107 6108 6109 6110 6111 6112 6113 6114 6115 6116 6117 6118 6119 6120 6121 6122 6123 6124 6125 6126 6127 6128 6129 6130 6131 6132 6133 6134 6135 6136 | const char *msg; if (objc < 3) { /* * Don't use Tcl_WrongNumArgs here, as that is the function * we want to test! */ Tcl_AppendResult(interp, "insufficient arguments", NULL); return TCL_ERROR; } if (Tcl_GetIntFromObj(interp, objv[1], &i) != TCL_OK) { return TCL_ERROR; } msg = Tcl_GetStringFromObj(objv[2], &length); if (length == 0) { msg = NULL; } if (i > objc - 3) { /* * Asked for more arguments than were given. */ Tcl_AppendResult(interp, "insufficient arguments", NULL); return TCL_ERROR; } Tcl_WrongNumArgs(interp, i, &(objv[3]), msg); return TCL_OK; } |
︙ | ︙ | |||
6901 6902 6903 6904 6905 6906 6907 | TestgetintCmd( ClientData dummy, Tcl_Interp *interp, int argc, const char **argv) { if (argc < 2) { | | | 6899 6900 6901 6902 6903 6904 6905 6906 6907 6908 6909 6910 6911 6912 6913 | TestgetintCmd( ClientData dummy, Tcl_Interp *interp, int argc, const char **argv) { if (argc < 2) { Tcl_AppendResult(interp, "wrong # args", NULL); return TCL_ERROR; } else { int val, i, total=0; for (i=1 ; i<argc ; i++) { if (Tcl_GetInt(interp, argv[i], &val) != TCL_OK) { return TCL_ERROR; |
︙ | ︙ | |||
7425 7426 7427 7428 7429 7430 7431 | * When these conditions hold, this function resolves the * passed-in cmd literal into a cmd "y" or "Y" depending on the * context. The resolved procs are taken from the the global * namespace (for simplicity). */ CallFrame *parentFramePtr = varFramePtr->callerPtr; | | | 7423 7424 7425 7426 7427 7428 7429 7430 7431 7432 7433 7434 7435 7436 7437 | * When these conditions hold, this function resolves the * passed-in cmd literal into a cmd "y" or "Y" depending on the * context. The resolved procs are taken from the the global * namespace (for simplicity). */ CallFrame *parentFramePtr = varFramePtr->callerPtr; const char *context = parentFramePtr != NULL ? parentFramePtr->nsPtr->name : "(NULL)"; if (strcmp(context, "ctx1") == 0 && (name[0] == 'z') && (name[1] == '\0')) { resolvedCmdPtr = Tcl_FindCommand(interp, "y", NULL, TCL_GLOBAL_ONLY); /* fprintf(stderr, "... y ==> %p\n", resolvedCmdPtr);*/ } else if (strcmp(context, "ctx2") == 0 && (name[0] == 'z') && (name[1] == '\0')) { resolvedCmdPtr = Tcl_FindCommand(interp, "Y", NULL, TCL_GLOBAL_ONLY); |
︙ | ︙ |
Changes to generic/tclThreadAlloc.c.
︙ | ︙ | |||
192 193 194 195 196 197 198 | /* * Check for first-time initialization. */ if (listLockPtr == NULL) { Tcl_Mutex *initLockPtr; | < | < < < < < < < < | 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 | /* * Check for first-time initialization. */ if (listLockPtr == NULL) { Tcl_Mutex *initLockPtr; initLockPtr = Tcl_GetAllocMutex(); Tcl_MutexLock(initLockPtr); if (listLockPtr == NULL) { TclInitThreadAlloc(); } Tcl_MutexUnlock(initLockPtr); } /* * Get this thread's cache, allocating if necessary. */ |
︙ | ︙ | |||
1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 | blockPtr = blockPtr->nextBlock; } cachePtr->buckets[bucket].lastPtr = blockPtr; blockPtr->nextBlock = NULL; } return 1; } /* *---------------------------------------------------------------------- * * TclFinalizeThreadAlloc -- * * This procedure is used to destroy all private resources used in this | > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 | blockPtr = blockPtr->nextBlock; } cachePtr->buckets[bucket].lastPtr = blockPtr; blockPtr->nextBlock = NULL; } return 1; } /* *---------------------------------------------------------------------- * * TclInitThreadAlloc -- * * Initializes the allocator cache-maintenance structures. * It is done early and protected during the TclInitSubsystems(). * * Results: * None. * * Side effects: * None. * *---------------------------------------------------------------------- */ void TclInitThreadAlloc(void) { unsigned int i; listLockPtr = TclpNewAllocMutex(); objLockPtr = TclpNewAllocMutex(); for (i = 0; i < NBUCKETS; ++i) { bucketInfo[i].blockSize = MINALLOC << i; bucketInfo[i].maxBlocks = 1 << (NBUCKETS - 1 - i); bucketInfo[i].numMove = i < NBUCKETS - 1 ? 1 << (NBUCKETS - 2 - i) : 1; bucketInfo[i].lockPtr = TclpNewAllocMutex(); } TclpInitAllocCache(); } /* *---------------------------------------------------------------------- * * TclFinalizeThreadAlloc -- * * This procedure is used to destroy all private resources used in this |
︙ | ︙ |
Changes to generic/tclThreadTest.c.
︙ | ︙ | |||
337 338 339 340 341 342 343 | */ if (objc == 2) { idObj = Tcl_NewWideIntObj((Tcl_WideInt)(size_t)Tcl_GetCurrentThread()); } else if (objc == 3 && strcmp("-main", Tcl_GetString(objv[2])) == 0) { Tcl_MutexLock(&threadMutex); | | | 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 | */ if (objc == 2) { idObj = Tcl_NewWideIntObj((Tcl_WideInt)(size_t)Tcl_GetCurrentThread()); } else if (objc == 3 && strcmp("-main", Tcl_GetString(objv[2])) == 0) { Tcl_MutexLock(&threadMutex); idObj = Tcl_NewWideIntObj((Tcl_WideInt)(size_t)mainThreadId); Tcl_MutexUnlock(&threadMutex); } else { Tcl_WrongNumArgs(interp, 2, objv, NULL); return TCL_ERROR; } Tcl_SetObjResult(interp, idObj); |
︙ | ︙ | |||
651 652 653 654 655 656 657 | Tcl_Interp *interp) /* Interp that failed */ { Tcl_Channel errChannel; const char *errorInfo, *argv[3]; char *script; char buf[TCL_DOUBLE_SPACE+1]; | | | 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 | Tcl_Interp *interp) /* Interp that failed */ { Tcl_Channel errChannel; const char *errorInfo, *argv[3]; char *script; char buf[TCL_DOUBLE_SPACE+1]; sprintf(buf, "%p", Tcl_GetCurrentThread()); errorInfo = Tcl_GetVar2(interp, "errorInfo", NULL, TCL_GLOBAL_ONLY); if (errorProcString == NULL) { errChannel = Tcl_GetStdChannel(TCL_STDERR); Tcl_WriteChars(errChannel, "Error from thread ", -1); Tcl_WriteChars(errChannel, buf, -1); Tcl_WriteChars(errChannel, "\n", 1); |
︙ | ︙ |
Changes to generic/tclTrace.c.
︙ | ︙ | |||
2815 2816 2817 2818 2819 2820 2821 2822 2823 2824 2825 2826 2827 2828 2829 2830 2831 2832 2833 2834 2835 2836 2837 2838 2839 2840 2841 2842 2843 | * Side effects: * If there exists a trace for the variable given by varName with the * given flags, proc, and clientData, then that trace is removed. * *---------------------------------------------------------------------- */ #undef Tcl_UntraceVar void Tcl_UntraceVar( Tcl_Interp *interp, /* Interpreter containing variable. */ const char *varName, /* Name of variable; may end with "(index)" to * signify an array reference. */ int flags, /* OR-ed collection of bits describing current * trace, including any of TCL_TRACE_READS, * TCL_TRACE_WRITES, TCL_TRACE_UNSETS, * TCL_GLOBAL_ONLY and TCL_NAMESPACE_ONLY. */ Tcl_VarTraceProc *proc, /* Function assocated with trace. */ ClientData clientData) /* Arbitrary argument to pass to proc. */ { Tcl_UntraceVar2(interp, varName, NULL, flags, proc, clientData); } /* *---------------------------------------------------------------------- * * Tcl_UntraceVar2 -- * * Remove a previously-created trace for a variable. | > > | 2815 2816 2817 2818 2819 2820 2821 2822 2823 2824 2825 2826 2827 2828 2829 2830 2831 2832 2833 2834 2835 2836 2837 2838 2839 2840 2841 2842 2843 2844 2845 | * Side effects: * If there exists a trace for the variable given by varName with the * given flags, proc, and clientData, then that trace is removed. * *---------------------------------------------------------------------- */ #ifndef TCL_NO_DEPRECATED #undef Tcl_UntraceVar void Tcl_UntraceVar( Tcl_Interp *interp, /* Interpreter containing variable. */ const char *varName, /* Name of variable; may end with "(index)" to * signify an array reference. */ int flags, /* OR-ed collection of bits describing current * trace, including any of TCL_TRACE_READS, * TCL_TRACE_WRITES, TCL_TRACE_UNSETS, * TCL_GLOBAL_ONLY and TCL_NAMESPACE_ONLY. */ Tcl_VarTraceProc *proc, /* Function assocated with trace. */ ClientData clientData) /* Arbitrary argument to pass to proc. */ { Tcl_UntraceVar2(interp, varName, NULL, flags, proc, clientData); } #endif /* TCL_NO_DEPRECATED */ /* *---------------------------------------------------------------------- * * Tcl_UntraceVar2 -- * * Remove a previously-created trace for a variable. |
︙ | ︙ | |||
2984 2985 2986 2987 2988 2989 2990 2991 2992 2993 2994 2995 2996 2997 2998 2999 3000 3001 3002 3003 3004 3005 3006 3007 3008 3009 3010 3011 3012 3013 3014 | * * Side effects: * None. * *---------------------------------------------------------------------- */ #undef Tcl_VarTraceInfo ClientData Tcl_VarTraceInfo( Tcl_Interp *interp, /* Interpreter containing variable. */ const char *varName, /* Name of variable; may end with "(index)" to * signify an array reference. */ int flags, /* OR-ed combo or TCL_GLOBAL_ONLY, * TCL_NAMESPACE_ONLY (can be 0). */ Tcl_VarTraceProc *proc, /* Function assocated with trace. */ ClientData prevClientData) /* If non-NULL, gives last value returned by * this function, so this call will return the * next trace after that one. If NULL, this * call will return the first trace. */ { return Tcl_VarTraceInfo2(interp, varName, NULL, flags, proc, prevClientData); } /* *---------------------------------------------------------------------- * * Tcl_VarTraceInfo2 -- * * Same as Tcl_VarTraceInfo, except takes name in two pieces instead of | > > | 2986 2987 2988 2989 2990 2991 2992 2993 2994 2995 2996 2997 2998 2999 3000 3001 3002 3003 3004 3005 3006 3007 3008 3009 3010 3011 3012 3013 3014 3015 3016 3017 3018 | * * Side effects: * None. * *---------------------------------------------------------------------- */ #ifndef TCL_NO_DEPRECATED #undef Tcl_VarTraceInfo ClientData Tcl_VarTraceInfo( Tcl_Interp *interp, /* Interpreter containing variable. */ const char *varName, /* Name of variable; may end with "(index)" to * signify an array reference. */ int flags, /* OR-ed combo or TCL_GLOBAL_ONLY, * TCL_NAMESPACE_ONLY (can be 0). */ Tcl_VarTraceProc *proc, /* Function assocated with trace. */ ClientData prevClientData) /* If non-NULL, gives last value returned by * this function, so this call will return the * next trace after that one. If NULL, this * call will return the first trace. */ { return Tcl_VarTraceInfo2(interp, varName, NULL, flags, proc, prevClientData); } #endif /* TCL_NO_DEPRECATED */ /* *---------------------------------------------------------------------- * * Tcl_VarTraceInfo2 -- * * Same as Tcl_VarTraceInfo, except takes name in two pieces instead of |
︙ | ︙ | |||
3093 3094 3095 3096 3097 3098 3099 3100 3101 3102 3103 3104 3105 3106 3107 3108 3109 3110 3111 3112 3113 3114 3115 3116 3117 3118 3119 3120 3121 3122 3123 | * references to the variable will be intermediated by proc. See the * manual entry for complete details on the calling sequence for proc. * The variable's flags are updated. * *---------------------------------------------------------------------- */ #undef Tcl_TraceVar int Tcl_TraceVar( Tcl_Interp *interp, /* Interpreter in which variable is to be * traced. */ const char *varName, /* Name of variable; may end with "(index)" to * signify an array reference. */ int flags, /* OR-ed collection of bits, including any of * TCL_TRACE_READS, TCL_TRACE_WRITES, * TCL_TRACE_UNSETS, TCL_GLOBAL_ONLY, and * TCL_NAMESPACE_ONLY. */ Tcl_VarTraceProc *proc, /* Function to call when specified ops are * invoked upon varName. */ ClientData clientData) /* Arbitrary argument to pass to proc. */ { return Tcl_TraceVar2(interp, varName, NULL, flags, proc, clientData); } /* *---------------------------------------------------------------------- * * Tcl_TraceVar2 -- * * Arrange for reads and/or writes to a variable to cause a function to | > > | 3097 3098 3099 3100 3101 3102 3103 3104 3105 3106 3107 3108 3109 3110 3111 3112 3113 3114 3115 3116 3117 3118 3119 3120 3121 3122 3123 3124 3125 3126 3127 3128 3129 | * references to the variable will be intermediated by proc. See the * manual entry for complete details on the calling sequence for proc. * The variable's flags are updated. * *---------------------------------------------------------------------- */ #ifndef TCL_NO_DEPRECATED #undef Tcl_TraceVar int Tcl_TraceVar( Tcl_Interp *interp, /* Interpreter in which variable is to be * traced. */ const char *varName, /* Name of variable; may end with "(index)" to * signify an array reference. */ int flags, /* OR-ed collection of bits, including any of * TCL_TRACE_READS, TCL_TRACE_WRITES, * TCL_TRACE_UNSETS, TCL_GLOBAL_ONLY, and * TCL_NAMESPACE_ONLY. */ Tcl_VarTraceProc *proc, /* Function to call when specified ops are * invoked upon varName. */ ClientData clientData) /* Arbitrary argument to pass to proc. */ { return Tcl_TraceVar2(interp, varName, NULL, flags, proc, clientData); } #endif /* TCL_NO_DEPRECATED */ /* *---------------------------------------------------------------------- * * Tcl_TraceVar2 -- * * Arrange for reads and/or writes to a variable to cause a function to |
︙ | ︙ |
Changes to generic/tclUtil.c.
︙ | ︙ | |||
1380 1381 1382 1383 1384 1385 1386 | } /* * No matter what the caller demands, empty string must be braced! */ if ((src == NULL) || (length == 0) || (*src == '\0' && length == -1)) { | | | 1380 1381 1382 1383 1384 1385 1386 1387 1388 1389 1390 1391 1392 1393 1394 | } /* * No matter what the caller demands, empty string must be braced! */ if ((src == NULL) || (length == 0) || (*src == '\0' && length == -1)) { src = &tclEmptyString; length = 0; conversion = CONVERT_BRACE; } /* * Escape leading hash as needed and requested. */ |
︙ | ︙ | |||
2890 2891 2892 2893 2894 2895 2896 | void Tcl_DStringResult( Tcl_Interp *interp, /* Interpreter whose result is to be reset. */ Tcl_DString *dsPtr) /* Dynamic string that is to become the * result of interp. */ { | < | 2890 2891 2892 2893 2894 2895 2896 2897 2898 2899 2900 2901 2902 2903 | void Tcl_DStringResult( Tcl_Interp *interp, /* Interpreter whose result is to be reset. */ Tcl_DString *dsPtr) /* Dynamic string that is to become the * result of interp. */ { Tcl_SetObjResult(interp, TclDStringToObj(dsPtr)); } /* *---------------------------------------------------------------------- * * Tcl_DStringGetResult -- |
︙ | ︙ | |||
2920 2921 2922 2923 2924 2925 2926 2927 2928 2929 2930 2931 2932 2933 2934 | void Tcl_DStringGetResult( Tcl_Interp *interp, /* Interpreter whose result is to be reset. */ Tcl_DString *dsPtr) /* Dynamic string that is to become the result * of interp. */ { Interp *iPtr = (Interp *) interp; if (dsPtr->string != dsPtr->staticSpace) { ckfree(dsPtr->string); } /* * Do more efficient transfer when we know the result is a Tcl_Obj. When | > > > > > > > > | | | | 2919 2920 2921 2922 2923 2924 2925 2926 2927 2928 2929 2930 2931 2932 2933 2934 2935 2936 2937 2938 2939 2940 2941 2942 2943 2944 2945 2946 2947 2948 2949 2950 2951 2952 2953 2954 2955 2956 2957 2958 2959 2960 2961 2962 2963 2964 2965 2966 2967 2968 2969 2970 2971 2972 2973 2974 | void Tcl_DStringGetResult( Tcl_Interp *interp, /* Interpreter whose result is to be reset. */ Tcl_DString *dsPtr) /* Dynamic string that is to become the result * of interp. */ { #ifdef TCL_NO_DEPRECATED Tcl_Obj *obj = Tcl_GetObjResult(interp); const char *bytes = TclGetString(obj); Tcl_DStringFree(dsPtr); Tcl_DStringAppend(dsPtr, bytes, obj->length); Tcl_ResetResult(interp); #else Interp *iPtr = (Interp *) interp; if (dsPtr->string != dsPtr->staticSpace) { ckfree(dsPtr->string); } /* * Do more efficient transfer when we know the result is a Tcl_Obj. When * there's no string result, we only have to deal with two cases: * * 1. When the string rep is the empty string, when we don't copy but * instead use the staticSpace in the DString to hold an empty string. * 2. When the string rep is not there or there's a real string rep, when * we use Tcl_GetString to fetch (or generate) the string rep - which * we know to have been allocated with ckalloc() - and use it to * populate the DString space. Then, we free the internal rep. and set * the object's string representation back to the canonical empty * string. */ if (!iPtr->result[0] && iPtr->objResultPtr && !Tcl_IsShared(iPtr->objResultPtr)) { if (iPtr->objResultPtr->bytes == &tclEmptyString) { dsPtr->string = dsPtr->staticSpace; dsPtr->string[0] = 0; dsPtr->length = 0; dsPtr->spaceAvl = TCL_DSTRING_STATIC_SIZE; } else { dsPtr->string = TclGetString(iPtr->objResultPtr); dsPtr->length = iPtr->objResultPtr->length; dsPtr->spaceAvl = dsPtr->length + 1; TclFreeIntRep(iPtr->objResultPtr); iPtr->objResultPtr->bytes = &tclEmptyString; iPtr->objResultPtr->length = 0; } return; } /* * If the string result is empty, move the object result to the string |
︙ | ︙ | |||
2991 2992 2993 2994 2995 2996 2997 2998 2999 3000 3001 3002 3003 3004 | dsPtr->spaceAvl = dsPtr->length + 1; } memcpy(dsPtr->string, iPtr->result, (unsigned) dsPtr->length+1); } iPtr->result = iPtr->resultSpace; iPtr->resultSpace[0] = 0; } /* *---------------------------------------------------------------------- * * TclDStringToObj -- * | > | 2998 2999 3000 3001 3002 3003 3004 3005 3006 3007 3008 3009 3010 3011 3012 | dsPtr->spaceAvl = dsPtr->length + 1; } memcpy(dsPtr->string, iPtr->result, (unsigned) dsPtr->length+1); } iPtr->result = iPtr->resultSpace; iPtr->resultSpace[0] = 0; #endif /* !TCL_NO_DEPRECATED */ } /* *---------------------------------------------------------------------- * * TclDStringToObj -- * |
︙ | ︙ | |||
3572 3573 3574 3575 3576 3577 3578 | Tcl_Obj *objPtr, /* Points to an object containing either "end" * or an integer. */ int endValue, /* The value to be stored at "indexPtr" if * "objPtr" holds "end". */ int *indexPtr) /* Location filled in with an integer * representing an index. */ { | | | > | 3580 3581 3582 3583 3584 3585 3586 3587 3588 3589 3590 3591 3592 3593 3594 3595 3596 3597 3598 3599 3600 3601 3602 3603 3604 3605 3606 3607 3608 3609 3610 3611 3612 3613 | Tcl_Obj *objPtr, /* Points to an object containing either "end" * or an integer. */ int endValue, /* The value to be stored at "indexPtr" if * "objPtr" holds "end". */ int *indexPtr) /* Location filled in with an integer * representing an index. */ { size_t length; char *opPtr; const char *bytes; if (TclGetIntFromObj(NULL, objPtr, indexPtr) == TCL_OK) { return TCL_OK; } if (SetEndOffsetFromAny(NULL, objPtr) == TCL_OK) { /* * If the object is already an offset from the end of the list, or can * be converted to one, use it. */ *indexPtr = endValue + objPtr->internalRep.longValue; return TCL_OK; } bytes = TclGetString(objPtr); length = objPtr->length; /* * Leading whitespace is acceptable in an index. */ while (length && TclIsSpaceProc(*bytes)) { bytes++; |
︙ | ︙ |
Changes to generic/tclVar.c.
︙ | ︙ | |||
1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 | * * Side effects: * None. * *---------------------------------------------------------------------- */ #undef Tcl_GetVar const char * Tcl_GetVar( Tcl_Interp *interp, /* Command interpreter in which varName is to * be looked up. */ const char *varName, /* Name of a variable in interp. */ int flags) /* OR-ed combination of TCL_GLOBAL_ONLY, * TCL_NAMESPACE_ONLY or TCL_LEAVE_ERR_MSG * bits. */ { Tcl_Obj *varNamePtr = Tcl_NewStringObj(varName, -1); Tcl_Obj *resultPtr = Tcl_ObjGetVar2(interp, varNamePtr, NULL, flags); TclDecrRefCount(varNamePtr); if (resultPtr == NULL) { return NULL; } return TclGetString(resultPtr); } /* *---------------------------------------------------------------------- * * Tcl_GetVar2 -- * * Return the value of a Tcl variable as a string, given a two-part name | > > | 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 | * * Side effects: * None. * *---------------------------------------------------------------------- */ #ifndef TCL_NO_DEPRECATED #undef Tcl_GetVar const char * Tcl_GetVar( Tcl_Interp *interp, /* Command interpreter in which varName is to * be looked up. */ const char *varName, /* Name of a variable in interp. */ int flags) /* OR-ed combination of TCL_GLOBAL_ONLY, * TCL_NAMESPACE_ONLY or TCL_LEAVE_ERR_MSG * bits. */ { Tcl_Obj *varNamePtr = Tcl_NewStringObj(varName, -1); Tcl_Obj *resultPtr = Tcl_ObjGetVar2(interp, varNamePtr, NULL, flags); TclDecrRefCount(varNamePtr); if (resultPtr == NULL) { return NULL; } return TclGetString(resultPtr); } #endif /* TCL_NO_DEPRECATED */ /* *---------------------------------------------------------------------- * * Tcl_GetVar2 -- * * Return the value of a Tcl variable as a string, given a two-part name |
︙ | ︙ | |||
1406 1407 1408 1409 1410 1411 1412 1413 1414 1415 1416 1417 1418 1419 1420 1421 1422 1423 1424 | * If varName is defined as a local or global variable in interp, its * value is changed to newValue. If varName isn't currently defined, then * a new global variable by that name is created. * *---------------------------------------------------------------------- */ #undef Tcl_SetVar const char * Tcl_SetVar( Tcl_Interp *interp, /* Command interpreter in which varName is to * be looked up. */ const char *varName, /* Name of a variable in interp. */ const char *newValue, /* New value for varName. */ int flags) /* Various flags that tell how to set value: * any of TCL_GLOBAL_ONLY, TCL_NAMESPACE_ONLY, * TCL_APPEND_VALUE, TCL_LIST_ELEMENT, * TCL_LEAVE_ERR_MSG. */ { | > < | < < < > | 1408 1409 1410 1411 1412 1413 1414 1415 1416 1417 1418 1419 1420 1421 1422 1423 1424 1425 1426 1427 1428 1429 1430 1431 1432 1433 1434 1435 1436 1437 1438 1439 1440 1441 1442 1443 | * If varName is defined as a local or global variable in interp, its * value is changed to newValue. If varName isn't currently defined, then * a new global variable by that name is created. * *---------------------------------------------------------------------- */ #ifndef TCL_NO_DEPRECATED #undef Tcl_SetVar const char * Tcl_SetVar( Tcl_Interp *interp, /* Command interpreter in which varName is to * be looked up. */ const char *varName, /* Name of a variable in interp. */ const char *newValue, /* New value for varName. */ int flags) /* Various flags that tell how to set value: * any of TCL_GLOBAL_ONLY, TCL_NAMESPACE_ONLY, * TCL_APPEND_VALUE, TCL_LIST_ELEMENT, * TCL_LEAVE_ERR_MSG. */ { Tcl_Obj *varValuePtr = Tcl_SetVar2Ex(interp, varName, NULL, Tcl_NewStringObj(newValue, -1), flags); if (varValuePtr == NULL) { return NULL; } return TclGetString(varValuePtr); } #endif /* TCL_NO_DEPRECATED */ /* *---------------------------------------------------------------------- * * Tcl_SetVar2 -- * * Given a two-part variable name, which may refer either to a scalar |
︙ | ︙ | |||
2001 2002 2003 2004 2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 | * Side effects: * If varName is defined as a local or global variable in interp, it is * deleted. * *---------------------------------------------------------------------- */ #undef Tcl_UnsetVar int Tcl_UnsetVar( Tcl_Interp *interp, /* Command interpreter in which varName is to * be looked up. */ const char *varName, /* Name of a variable in interp. May be either * a scalar name or an array name or an | > | 2001 2002 2003 2004 2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 | * Side effects: * If varName is defined as a local or global variable in interp, it is * deleted. * *---------------------------------------------------------------------- */ #ifndef TCL_NO_DEPRECATED #undef Tcl_UnsetVar int Tcl_UnsetVar( Tcl_Interp *interp, /* Command interpreter in which varName is to * be looked up. */ const char *varName, /* Name of a variable in interp. May be either * a scalar name or an array name or an |
︙ | ︙ | |||
2029 2030 2031 2032 2033 2034 2035 2036 2037 2038 2039 2040 2041 2042 | flags &= (TCL_GLOBAL_ONLY|TCL_NAMESPACE_ONLY|TCL_LEAVE_ERR_MSG); result = TclObjUnsetVar2(interp, varNamePtr, NULL, flags); Tcl_DecrRefCount(varNamePtr); return result; } /* *---------------------------------------------------------------------- * * Tcl_UnsetVar2 -- * * Delete a variable, given a 2-part name. | > | 2030 2031 2032 2033 2034 2035 2036 2037 2038 2039 2040 2041 2042 2043 2044 | flags &= (TCL_GLOBAL_ONLY|TCL_NAMESPACE_ONLY|TCL_LEAVE_ERR_MSG); result = TclObjUnsetVar2(interp, varNamePtr, NULL, flags); Tcl_DecrRefCount(varNamePtr); return result; } #endif /* TCL_NO_DEPRECATED */ /* *---------------------------------------------------------------------- * * Tcl_UnsetVar2 -- * * Delete a variable, given a 2-part name. |
︙ | ︙ | |||
4046 4047 4048 4049 4050 4051 4052 | * ObjMakeUpvar -- * * This function does all of the work of the "global" and "upvar" * commands. * * Results: * A standard Tcl completion code. If an error occurs then an error | | | 4048 4049 4050 4051 4052 4053 4054 4055 4056 4057 4058 4059 4060 4061 4062 | * ObjMakeUpvar -- * * This function does all of the work of the "global" and "upvar" * commands. * * Results: * A standard Tcl completion code. If an error occurs then an error * message is left in interp. * * Side effects: * The variable given by myName is linked to the variable in framePtr * given by otherP1 and otherP2, so that references to myName are * redirected to the other variable like a symbolic link. * Callers must Incr myNamePtr if they plan to Decr it. * Callers must Incr otherP1Ptr if they plan to Decr it. |
︙ | ︙ | |||
4140 4141 4142 4143 4144 4145 4146 | * TclPtrMakeUpvar -- * * This procedure does all of the work of the "global" and "upvar" * commands. * * Results: * A standard Tcl completion code. If an error occurs then an error | | | 4142 4143 4144 4145 4146 4147 4148 4149 4150 4151 4152 4153 4154 4155 4156 | * TclPtrMakeUpvar -- * * This procedure does all of the work of the "global" and "upvar" * commands. * * Results: * A standard Tcl completion code. If an error occurs then an error * message is left in interp. * * Side effects: * The variable given by myName is linked to the variable in framePtr * given by otherP1 and otherP2, so that references to myName are * redirected to the other variable like a symbolic link. * *---------------------------------------------------------------------- |
︙ | ︙ | |||
4316 4317 4318 4319 4320 4321 4322 4323 4324 4325 4326 4327 4328 4329 | * accessible under the name localNameStr, so that references to * localNameStr are redirected to the other variable like a symbolic * link. * *---------------------------------------------------------------------- */ #undef Tcl_UpVar int Tcl_UpVar( Tcl_Interp *interp, /* Command interpreter in which varName is to * be looked up. */ const char *frameName, /* Name of the frame containing the source * variable, such as "1" or "#0". */ | > | 4318 4319 4320 4321 4322 4323 4324 4325 4326 4327 4328 4329 4330 4331 4332 | * accessible under the name localNameStr, so that references to * localNameStr are redirected to the other variable like a symbolic * link. * *---------------------------------------------------------------------- */ #ifndef TCL_NO_DEPRECATED #undef Tcl_UpVar int Tcl_UpVar( Tcl_Interp *interp, /* Command interpreter in which varName is to * be looked up. */ const char *frameName, /* Name of the frame containing the source * variable, such as "1" or "#0". */ |
︙ | ︙ | |||
4349 4350 4351 4352 4353 4354 4355 4356 4357 4358 4359 4360 4361 4362 | result = ObjMakeUpvar(interp, framePtr, varNamePtr, NULL, 0, localNamePtr, flags, -1); Tcl_DecrRefCount(varNamePtr); Tcl_DecrRefCount(localNamePtr); return result; } /* *---------------------------------------------------------------------- * * Tcl_UpVar2 -- * * This function links one variable to another, just like the "upvar" | > | 4352 4353 4354 4355 4356 4357 4358 4359 4360 4361 4362 4363 4364 4365 4366 | result = ObjMakeUpvar(interp, framePtr, varNamePtr, NULL, 0, localNamePtr, flags, -1); Tcl_DecrRefCount(varNamePtr); Tcl_DecrRefCount(localNamePtr); return result; } #endif /* TCL_NO_DEPRECATED */ /* *---------------------------------------------------------------------- * * Tcl_UpVar2 -- * * This function links one variable to another, just like the "upvar" |
︙ | ︙ |
Changes to generic/tclZlib.c.
︙ | ︙ | |||
1200 1201 1202 1203 1204 1205 1206 | } if (zshPtr->mode == TCL_ZLIB_STREAM_DEFLATE) { zshPtr->stream.next_in = Tcl_GetByteArrayFromObj(data, &size); zshPtr->stream.avail_in = size; /* | | | | 1200 1201 1202 1203 1204 1205 1206 1207 1208 1209 1210 1211 1212 1213 1214 1215 1216 1217 | } if (zshPtr->mode == TCL_ZLIB_STREAM_DEFLATE) { zshPtr->stream.next_in = Tcl_GetByteArrayFromObj(data, &size); zshPtr->stream.avail_in = size; /* * Must not do a zero-length compress unless finalizing. [Bug 25842c161] */ if (size == 0 && flush != Z_FINISH) { return TCL_OK; } if (HaveDictToSet(zshPtr)) { e = SetDeflateDictionary(&zshPtr->stream, zshPtr->compDictObj); if (e != Z_OK) { ConvertError(zshPtr->interp, e, zshPtr->stream.adler); |
︙ | ︙ |
Changes to library/init.tcl.
︙ | ︙ | |||
41 42 43 44 45 46 47 48 49 50 51 52 53 54 | if {![info exists auto_path]} { if {[info exists env(TCLLIBPATH)]} { set auto_path $env(TCLLIBPATH) } else { set auto_path "" } } namespace eval tcl { variable Dir foreach Dir [list $::tcl_library [file dirname $::tcl_library]] { if {$Dir ni $::auto_path} { lappend ::auto_path $Dir } } | > | 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 | if {![info exists auto_path]} { if {[info exists env(TCLLIBPATH)]} { set auto_path $env(TCLLIBPATH) } else { set auto_path "" } } namespace eval tcl { variable Dir foreach Dir [list $::tcl_library [file dirname $::tcl_library]] { if {$Dir ni $::auto_path} { lappend ::auto_path $Dir } } |
︙ | ︙ | |||
107 108 109 110 111 112 113 114 115 116 117 118 119 120 | if {$arg > $val} {set val $arg} } return $val } namespace export min max } } # Windows specific end of initialization if {(![interp issafe]) && ($tcl_platform(platform) eq "windows")} { namespace eval tcl { proc EnvTraceProc {lo n1 n2 op} { global env | > > | 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 | if {$arg > $val} {set val $arg} } return $val } namespace export min max } } namespace eval tcl::Pkg {} # Windows specific end of initialization if {(![interp issafe]) && ($tcl_platform(platform) eq "windows")} { namespace eval tcl { proc EnvTraceProc {lo n1 n2 op} { global env |
︙ | ︙ | |||
165 166 167 168 169 170 171 | package unknown {::tcl::tm::UnknownHandler ::tclPkgUnknown} } # Set up the 'clock' ensemble namespace eval ::tcl::clock [list variable TclLibDir $::tcl_library] | < < < < < < | | > | 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 | package unknown {::tcl::tm::UnknownHandler ::tclPkgUnknown} } # Set up the 'clock' ensemble namespace eval ::tcl::clock [list variable TclLibDir $::tcl_library] proc ::tcl::initClock {} { # Auto-loading stubs for 'clock.tcl' foreach cmd {add format scan} { proc ::tcl::clock::$cmd args { variable TclLibDir source -encoding utf-8 [file join $TclLibDir clock.tcl] return [uplevel 1 [info level 0]] } } rename ::tcl::initClock {} } ::tcl::initClock } # Conditionalize for presence of exec. if {[namespace which -command exec] eq ""} { # Some machines do not have exec. Also, on all |
︙ | ︙ | |||
452 453 454 455 456 457 458 459 460 461 462 463 464 465 | if {[namespace which -command $name] ne ""} { return 1 } } } return 0 } # auto_load_index -- # Loads the contents of tclIndex files on the auto_path directory # list. This is usually invoked within auto_load to load the index # of available commands. Returns 1 if the index is loaded, and 0 if # the index is already loaded and up to date. # | > > > > > > > > > > > > > > > > | 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 | if {[namespace which -command $name] ne ""} { return 1 } } } return 0 } # ::tcl::Pkg::source -- # This procedure provides an alternative "source" command, which doesn't # register the file for the "package files" command. Safe interpreters # don't have to do anything special. # # Arguments: # filename proc ::tcl::Pkg::source {filename} { if {[interp issafe]} { uplevel 1 [list ::source $filename] } else { uplevel 1 [list ::source -nopkg $filename] } } # auto_load_index -- # Loads the contents of tclIndex files on the auto_path directory # list. This is usually invoked within auto_load to load the index # of available commands. Returns 1 if the index is loaded, and 0 if # the index is already loaded and up to date. # |
︙ | ︙ | |||
495 496 497 498 499 500 501 | while {[gets $f line] >= 0} { if {([string index $line 0] eq "#") \ || ([llength $line] != 2)} { continue } set name [lindex $line 0] set auto_index($name) \ | | | 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 | while {[gets $f line] >= 0} { if {([string index $line 0] eq "#") \ || ([llength $line] != 2)} { continue } set name [lindex $line 0] set auto_index($name) \ "::tcl::Pkg::source [file join $dir [lindex $line 1]]" } } else { error "[file join $dir tclIndex] isn't a proper Tcl index file" } } msg opts] if {$f ne ""} { close $f |
︙ | ︙ | |||
632 633 634 635 636 637 638 | global auto_execs env tcl_platform if {[info exists auto_execs($name)]} { return $auto_execs($name) } set auto_execs($name) "" | | > | | 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 | global auto_execs env tcl_platform if {[info exists auto_execs($name)]} { return $auto_execs($name) } set auto_execs($name) "" set shellBuiltins [list assoc cls copy date del dir echo erase ftype \ md mkdir mklink move rd ren rename rmdir start \ time type ver vol] if {[info exists env(PATHEXT)]} { # Add an initial ; to have the {} extension check first. set execExtensions [split ";$env(PATHEXT)" ";"] } else { set execExtensions [list {} .com .exe .bat .cmd] } |
︙ | ︙ |
Changes to library/package.tcl.
︙ | ︙ | |||
484 485 486 487 488 489 490 | # subdirectories catch { foreach file [glob -directory $dir -join -nocomplain \ * pkgIndex.tcl] { set dir [file dirname $file] if {![info exists procdDirs($dir)]} { try { | | | | 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 | # subdirectories catch { foreach file [glob -directory $dir -join -nocomplain \ * pkgIndex.tcl] { set dir [file dirname $file] if {![info exists procdDirs($dir)]} { try { ::tcl::Pkg::source $file } trap {POSIX EACCES} {} { # $file was not readable; silently ignore continue } on error msg { tclLog "error reading package index file $file: $msg" } on ok {} { set procdDirs($dir) 1 } } } } set dir [lindex $use_path end] if {![info exists procdDirs($dir)]} { set file [file join $dir pkgIndex.tcl] # safe interps usually don't have "file exists", if {([interp issafe] || [file exists $file])} { try { ::tcl::Pkg::source $file } trap {POSIX EACCES} {} { # $file was not readable; silently ignore continue } on error msg { tclLog "error reading package index file $file: $msg" } on ok {} { set procdDirs($dir) 1 |
︙ | ︙ | |||
586 587 588 589 590 591 592 | # get the pkgIndex files out of the subdirectories foreach file [glob -directory $dir -join -nocomplain \ * Resources Scripts pkgIndex.tcl] { set dir [file dirname $file] if {![info exists procdDirs($dir)]} { try { | | | 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 | # get the pkgIndex files out of the subdirectories foreach file [glob -directory $dir -join -nocomplain \ * Resources Scripts pkgIndex.tcl] { set dir [file dirname $file] if {![info exists procdDirs($dir)]} { try { ::tcl::Pkg::source $file } trap {POSIX EACCES} {} { # $file was not readable; silently ignore continue } on error msg { tclLog "error reading package index file $file: $msg" } on ok {} { set procdDirs($dir) 1 |
︙ | ︙ |
Changes to library/tclIndex.
1 2 3 4 5 6 7 8 9 | # Tcl autoload index file, version 2.0 # -*- tcl -*- # This file is generated by the "auto_mkindex" command # and sourced to set up indexing information for one or # more commands. Typically each line is a command that # sets an element in the auto_index array, where the # element name is the name of a command and the value is # a script that loads the command. | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 | # Tcl autoload index file, version 2.0 # -*- tcl -*- # This file is generated by the "auto_mkindex" command # and sourced to set up indexing information for one or # more commands. Typically each line is a command that # sets an element in the auto_index array, where the # element name is the name of a command and the value is # a script that loads the command. set auto_index(auto_reset) [list ::tcl::Pkg::source [file join $dir auto.tcl]] set auto_index(tcl_findLibrary) [list ::tcl::Pkg::source [file join $dir auto.tcl]] set auto_index(auto_mkindex) [list ::tcl::Pkg::source [file join $dir auto.tcl]] set auto_index(auto_mkindex_old) [list ::tcl::Pkg::source [file join $dir auto.tcl]] set auto_index(::auto_mkindex_parser::init) [list ::tcl::Pkg::source [file join $dir auto.tcl]] set auto_index(::auto_mkindex_parser::cleanup) [list ::tcl::Pkg::source [file join $dir auto.tcl]] set auto_index(::auto_mkindex_parser::mkindex) [list ::tcl::Pkg::source [file join $dir auto.tcl]] set auto_index(::auto_mkindex_parser::hook) [list ::tcl::Pkg::source [file join $dir auto.tcl]] set auto_index(::auto_mkindex_parser::slavehook) [list ::tcl::Pkg::source [file join $dir auto.tcl]] set auto_index(::auto_mkindex_parser::command) [list ::tcl::Pkg::source [file join $dir auto.tcl]] set auto_index(::auto_mkindex_parser::commandInit) [list ::tcl::Pkg::source [file join $dir auto.tcl]] set auto_index(::auto_mkindex_parser::fullname) [list ::tcl::Pkg::source [file join $dir auto.tcl]] set auto_index(history) [list ::tcl::Pkg::source [file join $dir history.tcl]] set auto_index(::tcl::HistAdd) [list ::tcl::Pkg::source [file join $dir history.tcl]] set auto_index(::tcl::HistKeep) [list ::tcl::Pkg::source [file join $dir history.tcl]] set auto_index(::tcl::HistClear) [list ::tcl::Pkg::source [file join $dir history.tcl]] set auto_index(::tcl::HistInfo) [list ::tcl::Pkg::source [file join $dir history.tcl]] set auto_index(::tcl::HistRedo) [list ::tcl::Pkg::source [file join $dir history.tcl]] set auto_index(::tcl::HistIndex) [list ::tcl::Pkg::source [file join $dir history.tcl]] set auto_index(::tcl::HistEvent) [list ::tcl::Pkg::source [file join $dir history.tcl]] set auto_index(::tcl::HistChange) [list ::tcl::Pkg::source [file join $dir history.tcl]] set auto_index(pkg_mkIndex) [list ::tcl::Pkg::source [file join $dir package.tcl]] set auto_index(tclPkgSetup) [list ::tcl::Pkg::source [file join $dir package.tcl]] set auto_index(tclPkgUnknown) [list ::tcl::Pkg::source [file join $dir package.tcl]] set auto_index(::tcl::MacOSXPkgUnknown) [list ::tcl::Pkg::source [file join $dir package.tcl]] set auto_index(::pkg::create) [list ::tcl::Pkg::source [file join $dir package.tcl]] set auto_index(parray) [list ::tcl::Pkg::source [file join $dir parray.tcl]] set auto_index(::safe::InterpStatics) [list ::tcl::Pkg::source [file join $dir safe.tcl]] set auto_index(::safe::InterpNested) [list ::tcl::Pkg::source [file join $dir safe.tcl]] set auto_index(::safe::interpCreate) [list ::tcl::Pkg::source [file join $dir safe.tcl]] set auto_index(::safe::interpInit) [list ::tcl::Pkg::source [file join $dir safe.tcl]] set auto_index(::safe::CheckInterp) [list ::tcl::Pkg::source [file join $dir safe.tcl]] set auto_index(::safe::interpConfigure) [list ::tcl::Pkg::source [file join $dir safe.tcl]] set auto_index(::safe::InterpCreate) [list ::tcl::Pkg::source [file join $dir safe.tcl]] set auto_index(::safe::InterpSetConfig) [list ::tcl::Pkg::source [file join $dir safe.tcl]] set auto_index(::safe::interpFindInAccessPath) [list ::tcl::Pkg::source [file join $dir safe.tcl]] set auto_index(::safe::interpAddToAccessPath) [list ::tcl::Pkg::source [file join $dir safe.tcl]] set auto_index(::safe::InterpInit) [list ::tcl::Pkg::source [file join $dir safe.tcl]] set auto_index(::safe::AddSubDirs) [list ::tcl::Pkg::source [file join $dir safe.tcl]] set auto_index(::safe::interpDelete) [list ::tcl::Pkg::source [file join $dir safe.tcl]] set auto_index(::safe::setLogCmd) [list ::tcl::Pkg::source [file join $dir safe.tcl]] set auto_index(::safe::SyncAccessPath) [list ::tcl::Pkg::source [file join $dir safe.tcl]] set auto_index(::safe::PathToken) [list ::tcl::Pkg::source [file join $dir safe.tcl]] set auto_index(::safe::TranslatePath) [list ::tcl::Pkg::source [file join $dir safe.tcl]] set auto_index(::safe::Log) [list ::tcl::Pkg::source [file join $dir safe.tcl]] set auto_index(::safe::CheckFileName) [list ::tcl::Pkg::source [file join $dir safe.tcl]] set auto_index(::safe::AliasGlob) [list ::tcl::Pkg::source [file join $dir safe.tcl]] set auto_index(::safe::AliasSource) [list ::tcl::Pkg::source [file join $dir safe.tcl]] set auto_index(::safe::AliasLoad) [list ::tcl::Pkg::source [file join $dir safe.tcl]] set auto_index(::safe::FileInAccessPath) [list ::tcl::Pkg::source [file join $dir safe.tcl]] set auto_index(::safe::DirInAccessPath) [list ::tcl::Pkg::source [file join $dir safe.tcl]] set auto_index(::safe::Subset) [list ::tcl::Pkg::source [file join $dir safe.tcl]] set auto_index(::safe::AliasSubset) [list ::tcl::Pkg::source [file join $dir safe.tcl]] set auto_index(::safe::AliasEncoding) [list ::tcl::Pkg::source [file join $dir safe.tcl]] set auto_index(tcl_wordBreakAfter) [list ::tcl::Pkg::source [file join $dir word.tcl]] set auto_index(tcl_wordBreakBefore) [list ::tcl::Pkg::source [file join $dir word.tcl]] set auto_index(tcl_endOfWord) [list ::tcl::Pkg::source [file join $dir word.tcl]] set auto_index(tcl_startOfNextWord) [list ::tcl::Pkg::source [file join $dir word.tcl]] set auto_index(tcl_startOfPreviousWord) [list ::tcl::Pkg::source [file join $dir word.tcl]] set auto_index(::tcl::tm::add) [list ::tcl::Pkg::source [file join $dir tm.tcl]] set auto_index(::tcl::tm::remove) [list ::tcl::Pkg::source [file join $dir tm.tcl]] set auto_index(::tcl::tm::list) [list ::tcl::Pkg::source [file join $dir tm.tcl]] set auto_index(::tcl::tm::Defaults) [list ::tcl::Pkg::source [file join $dir tm.tcl]] set auto_index(::tcl::tm::UnknownHandler) [list ::tcl::Pkg::source [file join $dir tm.tcl]] set auto_index(::tcl::tm::roots) [list ::tcl::Pkg::source [file join $dir tm.tcl]] set auto_index(::tcl::tm::path) [list ::tcl::Pkg::source [file join $dir tm.tcl]] |
Changes to library/tzdata/Africa/Accra.
1 2 3 4 | # created by tools/tclZIC.tcl - do not edit set TZData(:Africa/Accra) { {-9223372036854775808 -52 0 LMT} | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 | # created by tools/tclZIC.tcl - do not edit set TZData(:Africa/Accra) { {-9223372036854775808 -52 0 LMT} {-1640995148 0 0 +0020} {-1556841600 1200 1 +0020} {-1546388400 0 0 +0020} {-1525305600 1200 1 +0020} {-1514852400 0 0 +0020} {-1493769600 1200 1 +0020} {-1483316400 0 0 +0020} {-1462233600 1200 1 +0020} {-1451780400 0 0 +0020} {-1430611200 1200 1 +0020} {-1420158000 0 0 +0020} {-1399075200 1200 1 +0020} {-1388622000 0 0 +0020} {-1367539200 1200 1 +0020} {-1357086000 0 0 +0020} {-1336003200 1200 1 +0020} {-1325550000 0 0 +0020} {-1304380800 1200 1 +0020} {-1293927600 0 0 +0020} {-1272844800 1200 1 +0020} {-1262391600 0 0 +0020} {-1241308800 1200 1 +0020} {-1230855600 0 0 +0020} {-1209772800 1200 1 +0020} {-1199319600 0 0 +0020} {-1178150400 1200 1 +0020} {-1167697200 0 0 +0020} {-1146614400 1200 1 +0020} {-1136161200 0 0 +0020} {-1115078400 1200 1 +0020} {-1104625200 0 0 +0020} {-1083542400 1200 1 +0020} {-1073089200 0 0 +0020} {-1051920000 1200 1 +0020} {-1041466800 0 0 +0020} {-1020384000 1200 1 +0020} {-1009930800 0 0 +0020} {-988848000 1200 1 +0020} {-978394800 0 0 +0020} {-957312000 1200 1 +0020} {-946858800 0 0 +0020} {-925689600 1200 1 +0020} {-915236400 0 0 +0020} {-894153600 1200 1 +0020} {-883700400 0 0 +0020} {-862617600 1200 1 +0020} {-852164400 0 0 +0020} } |
Changes to library/tzdata/Africa/Bissau.
1 2 3 4 | # created by tools/tclZIC.tcl - do not edit set TZData(:Africa/Bissau) { {-9223372036854775808 -3740 0 LMT} | | | 1 2 3 4 5 6 7 | # created by tools/tclZIC.tcl - do not edit set TZData(:Africa/Bissau) { {-9223372036854775808 -3740 0 LMT} {-1830380260 -3600 0 -01} {157770000 0 0 GMT} } |
Changes to library/tzdata/Africa/Ceuta.
1 2 3 4 | # created by tools/tclZIC.tcl - do not edit set TZData(:Africa/Ceuta) { {-9223372036854775808 -1276 0 LMT} | | | | | | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | # created by tools/tclZIC.tcl - do not edit set TZData(:Africa/Ceuta) { {-9223372036854775808 -1276 0 LMT} {-2177452800 0 0 WET} {-1630112400 3600 1 WEST} {-1616810400 0 0 WET} {-1451692800 0 0 WET} {-1442451600 3600 1 WEST} {-1427673600 0 0 WET} {-1379293200 3600 1 WEST} {-1364774400 0 0 WET} {-1348448400 3600 1 WEST} {-1333324800 0 0 WET} {-1316390400 3600 1 WEST} {-1301270400 0 0 WET} {-1293840000 0 0 WET} {-81432000 3600 1 WEST} {-71110800 0 0 WET} {141264000 3600 1 WEST} {147222000 0 0 WET} {199756800 3600 1 WEST} {207702000 0 0 WET} |
︙ | ︙ |
Changes to library/tzdata/Africa/El_Aaiun.
1 2 3 4 | # created by tools/tclZIC.tcl - do not edit set TZData(:Africa/El_Aaiun) { {-9223372036854775808 -3168 0 LMT} | | | 1 2 3 4 5 6 7 8 9 10 11 12 | # created by tools/tclZIC.tcl - do not edit set TZData(:Africa/El_Aaiun) { {-9223372036854775808 -3168 0 LMT} {-1136070432 -3600 0 -01} {198291600 0 0 WET} {199756800 3600 1 WEST} {207702000 0 0 WET} {231292800 3600 1 WEST} {244249200 0 0 WET} {265507200 3600 1 WEST} {271033200 0 0 WET} |
︙ | ︙ |
Changes to library/tzdata/Africa/Monrovia.
1 2 3 4 5 | # created by tools/tclZIC.tcl - do not edit set TZData(:Africa/Monrovia) { {-9223372036854775808 -2588 0 LMT} {-2776979812 -2588 0 MMT} | | | | 1 2 3 4 5 6 7 8 | # created by tools/tclZIC.tcl - do not edit set TZData(:Africa/Monrovia) { {-9223372036854775808 -2588 0 LMT} {-2776979812 -2588 0 MMT} {-1604359012 -2670 0 MMT} {63593070 0 0 GMT} } |
Changes to library/tzdata/Africa/Nairobi.
1 2 3 4 5 | # created by tools/tclZIC.tcl - do not edit set TZData(:Africa/Nairobi) { {-9223372036854775808 8836 0 LMT} {-1309746436 10800 0 EAT} | | | | 1 2 3 4 5 6 7 8 9 | # created by tools/tclZIC.tcl - do not edit set TZData(:Africa/Nairobi) { {-9223372036854775808 8836 0 LMT} {-1309746436 10800 0 EAT} {-1262314800 9000 0 +0230} {-946780200 9900 0 +0245} {-315629100 10800 0 EAT} } |
Changes to library/tzdata/Africa/Windhoek.
1 2 3 4 | # created by tools/tclZIC.tcl - do not edit set TZData(:Africa/Windhoek) { {-9223372036854775808 4104 0 LMT} | | | 1 2 3 4 5 6 7 8 9 10 11 12 | # created by tools/tclZIC.tcl - do not edit set TZData(:Africa/Windhoek) { {-9223372036854775808 4104 0 LMT} {-2458170504 5400 0 +0130} {-2109288600 7200 0 SAST} {-860976000 10800 1 SAST} {-845254800 7200 0 SAST} {637970400 7200 0 CAT} {765324000 3600 0 WAT} {778640400 7200 1 WAST} {796780800 3600 0 WAT} |
︙ | ︙ |
Changes to library/tzdata/America/Anchorage.
1 2 3 4 5 | # created by tools/tclZIC.tcl - do not edit set TZData(:America/Anchorage) { {-9223372036854775808 50424 0 LMT} {-3225362424 -35976 0 LMT} | | | | | | < | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | # created by tools/tclZIC.tcl - do not edit set TZData(:America/Anchorage) { {-9223372036854775808 50424 0 LMT} {-3225362424 -35976 0 LMT} {-2188951224 -36000 0 AST} {-883576800 -36000 0 AST} {-880200000 -32400 1 AWT} {-769395600 -32400 1 APT} {-765378000 -36000 0 AST} {-86882400 -36000 0 AHST} {-31500000 -36000 0 AHST} {-21470400 -32400 1 AHDT} {-5749200 -36000 0 AHST} {9979200 -32400 1 AHDT} {25700400 -36000 0 AHST} {41428800 -32400 1 AHDT} |
︙ | ︙ |
Changes to library/tzdata/America/Araguaina.
1 2 3 4 | # created by tools/tclZIC.tcl - do not edit set TZData(:America/Araguaina) { {-9223372036854775808 -11568 0 LMT} | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 | # created by tools/tclZIC.tcl - do not edit set TZData(:America/Araguaina) { {-9223372036854775808 -11568 0 LMT} {-1767214032 -10800 0 -03} {-1206957600 -7200 1 -02} {-1191362400 -10800 0 -03} {-1175374800 -7200 1 -02} {-1159826400 -10800 0 -03} {-633819600 -7200 1 -02} {-622069200 -10800 0 -03} {-602283600 -7200 1 -02} {-591832800 -10800 0 -03} {-570747600 -7200 1 -02} {-560210400 -10800 0 -03} {-539125200 -7200 1 -02} {-531352800 -10800 0 -03} {-191365200 -7200 1 -02} {-184197600 -10800 0 -03} {-155163600 -7200 1 -02} {-150069600 -10800 0 -03} {-128898000 -7200 1 -02} {-121125600 -10800 0 -03} {-99954000 -7200 1 -02} {-89589600 -10800 0 -03} {-68418000 -7200 1 -02} {-57967200 -10800 0 -03} {499748400 -7200 1 -02} {511236000 -10800 0 -03} {530593200 -7200 1 -02} {540266400 -10800 0 -03} {562129200 -7200 1 -02} {571197600 -10800 0 -03} {592974000 -7200 1 -02} {602042400 -10800 0 -03} {624423600 -7200 1 -02} {634701600 -10800 0 -03} {653536800 -10800 0 -03} {811047600 -10800 0 -03} {813726000 -7200 1 -02} {824004000 -10800 0 -03} {844570800 -7200 1 -02} {856058400 -10800 0 -03} {876106800 -7200 1 -02} {888717600 -10800 0 -03} {908074800 -7200 1 -02} {919562400 -10800 0 -03} {938919600 -7200 1 -02} {951616800 -10800 0 -03} {970974000 -7200 1 -02} {982461600 -10800 0 -03} {1003028400 -7200 1 -02} {1013911200 -10800 0 -03} {1036292400 -7200 1 -02} {1045360800 -10800 0 -03} {1064368800 -10800 0 -03} {1350788400 -7200 0 -02} {1361066400 -10800 0 -03} {1378000800 -10800 0 -03} } |
Changes to library/tzdata/America/Argentina/Buenos_Aires.
1 2 3 4 5 | # created by tools/tclZIC.tcl - do not edit set TZData(:America/Argentina/Buenos_Aires) { {-9223372036854775808 -14028 0 LMT} {-2372097972 -15408 0 CMT} | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 | # created by tools/tclZIC.tcl - do not edit set TZData(:America/Argentina/Buenos_Aires) { {-9223372036854775808 -14028 0 LMT} {-2372097972 -15408 0 CMT} {-1567453392 -14400 0 -04} {-1233432000 -10800 0 -03} {-1222981200 -14400 0 -04} {-1205956800 -10800 1 -03} {-1194037200 -14400 0 -04} {-1172865600 -10800 1 -03} {-1162501200 -14400 0 -04} {-1141329600 -10800 1 -03} {-1130965200 -14400 0 -04} {-1109793600 -10800 1 -03} {-1099429200 -14400 0 -04} {-1078257600 -10800 1 -03} {-1067806800 -14400 0 -04} {-1046635200 -10800 1 -03} {-1036270800 -14400 0 -04} {-1015099200 -10800 1 -03} {-1004734800 -14400 0 -04} {-983563200 -10800 1 -03} {-973198800 -14400 0 -04} {-952027200 -10800 1 -03} {-941576400 -14400 0 -04} {-931032000 -10800 1 -03} {-900882000 -14400 0 -04} {-890337600 -10800 1 -03} {-833749200 -14400 0 -04} {-827265600 -10800 1 -03} {-752274000 -14400 0 -04} {-733780800 -10800 1 -03} {-197326800 -14400 0 -04} {-190843200 -10800 1 -03} {-184194000 -14400 0 -04} {-164491200 -10800 1 -03} {-152658000 -14400 0 -04} {-132955200 -10800 1 -03} {-121122000 -14400 0 -04} {-101419200 -10800 1 -03} {-86821200 -14400 0 -04} {-71092800 -10800 1 -03} {-54766800 -14400 0 -04} {-39038400 -10800 1 -03} {-23317200 -14400 0 -04} {-7588800 -10800 0 -03} {128142000 -7200 1 -02} {136605600 -10800 0 -03} {596948400 -7200 1 -02} {605066400 -10800 0 -03} {624423600 -7200 1 -02} {636516000 -10800 0 -03} {656478000 -7200 1 -02} {667965600 -10800 0 -03} {687927600 -7200 1 -02} {699415200 -10800 0 -03} {719377200 -7200 1 -02} {731469600 -10800 0 -03} {938916000 -10800 0 -04} {938919600 -10800 1 -03} {952056000 -10800 0 -03} {1198983600 -7200 1 -02} {1205632800 -10800 0 -03} {1224385200 -7200 1 -02} {1237082400 -10800 0 -03} } |
Changes to library/tzdata/America/Argentina/Catamarca.
1 2 3 4 5 | # created by tools/tclZIC.tcl - do not edit set TZData(:America/Argentina/Catamarca) { {-9223372036854775808 -15788 0 LMT} {-2372096212 -15408 0 CMT} | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 | # created by tools/tclZIC.tcl - do not edit set TZData(:America/Argentina/Catamarca) { {-9223372036854775808 -15788 0 LMT} {-2372096212 -15408 0 CMT} {-1567453392 -14400 0 -04} {-1233432000 -10800 0 -03} {-1222981200 -14400 0 -04} {-1205956800 -10800 1 -03} {-1194037200 -14400 0 -04} {-1172865600 -10800 1 -03} {-1162501200 -14400 0 -04} {-1141329600 -10800 1 -03} {-1130965200 -14400 0 -04} {-1109793600 -10800 1 -03} {-1099429200 -14400 0 -04} {-1078257600 -10800 1 -03} {-1067806800 -14400 0 -04} {-1046635200 -10800 1 -03} {-1036270800 -14400 0 -04} {-1015099200 -10800 1 -03} {-1004734800 -14400 0 -04} {-983563200 -10800 1 -03} {-973198800 -14400 0 -04} {-952027200 -10800 1 -03} {-941576400 -14400 0 -04} {-931032000 -10800 1 -03} {-900882000 -14400 0 -04} {-890337600 -10800 1 -03} {-833749200 -14400 0 -04} {-827265600 -10800 1 -03} {-752274000 -14400 0 -04} {-733780800 -10800 1 -03} {-197326800 -14400 0 -04} {-190843200 -10800 1 -03} {-184194000 -14400 0 -04} {-164491200 -10800 1 -03} {-152658000 -14400 0 -04} {-132955200 -10800 1 -03} {-121122000 -14400 0 -04} {-101419200 -10800 1 -03} {-86821200 -14400 0 -04} {-71092800 -10800 1 -03} {-54766800 -14400 0 -04} {-39038400 -10800 1 -03} {-23317200 -14400 0 -04} {-7588800 -10800 0 -03} {128142000 -7200 1 -02} {136605600 -10800 0 -03} {596948400 -7200 1 -02} {605066400 -10800 0 -03} {624423600 -7200 1 -02} {636516000 -10800 0 -03} {656478000 -7200 1 -02} {667965600 -14400 0 -04} {687931200 -7200 0 -02} {699415200 -10800 0 -03} {719377200 -7200 1 -02} {731469600 -10800 0 -03} {938916000 -10800 0 -04} {938919600 -10800 1 -03} {952056000 -10800 0 -03} {1086058800 -14400 0 -04} {1087704000 -10800 0 -03} {1198983600 -7200 1 -02} {1205632800 -10800 0 -03} {1224295200 -10800 0 -03} } |
Changes to library/tzdata/America/Argentina/Cordoba.
1 2 3 4 5 | # created by tools/tclZIC.tcl - do not edit set TZData(:America/Argentina/Cordoba) { {-9223372036854775808 -15408 0 LMT} {-2372096592 -15408 0 CMT} | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 | # created by tools/tclZIC.tcl - do not edit set TZData(:America/Argentina/Cordoba) { {-9223372036854775808 -15408 0 LMT} {-2372096592 -15408 0 CMT} {-1567453392 -14400 0 -04} {-1233432000 -10800 0 -03} {-1222981200 -14400 0 -04} {-1205956800 -10800 1 -03} {-1194037200 -14400 0 -04} {-1172865600 -10800 1 -03} {-1162501200 -14400 0 -04} {-1141329600 -10800 1 -03} {-1130965200 -14400 0 -04} {-1109793600 -10800 1 -03} {-1099429200 -14400 0 -04} {-1078257600 -10800 1 -03} {-1067806800 -14400 0 -04} {-1046635200 -10800 1 -03} {-1036270800 -14400 0 -04} {-1015099200 -10800 1 -03} {-1004734800 -14400 0 -04} {-983563200 -10800 1 -03} {-973198800 -14400 0 -04} {-952027200 -10800 1 -03} {-941576400 -14400 0 -04} {-931032000 -10800 1 -03} {-900882000 -14400 0 -04} {-890337600 -10800 1 -03} {-833749200 -14400 0 -04} {-827265600 -10800 1 -03} {-752274000 -14400 0 -04} {-733780800 -10800 1 -03} {-197326800 -14400 0 -04} {-190843200 -10800 1 -03} {-184194000 -14400 0 -04} {-164491200 -10800 1 -03} {-152658000 -14400 0 -04} {-132955200 -10800 1 -03} {-121122000 -14400 0 -04} {-101419200 -10800 1 -03} {-86821200 -14400 0 -04} {-71092800 -10800 1 -03} {-54766800 -14400 0 -04} {-39038400 -10800 1 -03} {-23317200 -14400 0 -04} {-7588800 -10800 0 -03} {128142000 -7200 1 -02} {136605600 -10800 0 -03} {596948400 -7200 1 -02} {605066400 -10800 0 -03} {624423600 -7200 1 -02} {636516000 -10800 0 -03} {656478000 -7200 1 -02} {667965600 -14400 0 -04} {687931200 -7200 0 -02} {699415200 -10800 0 -03} {719377200 -7200 1 -02} {731469600 -10800 0 -03} {938916000 -10800 0 -04} {938919600 -10800 1 -03} {952056000 -10800 0 -03} {1198983600 -7200 1 -02} {1205632800 -10800 0 -03} {1224385200 -7200 1 -02} {1237082400 -10800 0 -03} } |
Changes to library/tzdata/America/Argentina/Jujuy.
1 2 3 4 5 | # created by tools/tclZIC.tcl - do not edit set TZData(:America/Argentina/Jujuy) { {-9223372036854775808 -15672 0 LMT} {-2372096328 -15408 0 CMT} | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 | # created by tools/tclZIC.tcl - do not edit set TZData(:America/Argentina/Jujuy) { {-9223372036854775808 -15672 0 LMT} {-2372096328 -15408 0 CMT} {-1567453392 -14400 0 -04} {-1233432000 -10800 0 -03} {-1222981200 -14400 0 -04} {-1205956800 -10800 1 -03} {-1194037200 -14400 0 -04} {-1172865600 -10800 1 -03} {-1162501200 -14400 0 -04} {-1141329600 -10800 1 -03} {-1130965200 -14400 0 -04} {-1109793600 -10800 1 -03} {-1099429200 -14400 0 -04} {-1078257600 -10800 1 -03} {-1067806800 -14400 0 -04} {-1046635200 -10800 1 -03} {-1036270800 -14400 0 -04} {-1015099200 -10800 1 -03} {-1004734800 -14400 0 -04} {-983563200 -10800 1 -03} {-973198800 -14400 0 -04} {-952027200 -10800 1 -03} {-941576400 -14400 0 -04} {-931032000 -10800 1 -03} {-900882000 -14400 0 -04} {-890337600 -10800 1 -03} {-833749200 -14400 0 -04} {-827265600 -10800 1 -03} {-752274000 -14400 0 -04} {-733780800 -10800 1 -03} {-197326800 -14400 0 -04} {-190843200 -10800 1 -03} {-184194000 -14400 0 -04} {-164491200 -10800 1 -03} {-152658000 -14400 0 -04} {-132955200 -10800 1 -03} {-121122000 -14400 0 -04} {-101419200 -10800 1 -03} {-86821200 -14400 0 -04} {-71092800 -10800 1 -03} {-54766800 -14400 0 -04} {-39038400 -10800 1 -03} {-23317200 -14400 0 -04} {-7588800 -10800 0 -03} {128142000 -7200 1 -02} {136605600 -10800 0 -03} {596948400 -7200 1 -02} {605066400 -10800 0 -03} {624423600 -7200 1 -02} {636516000 -14400 0 -04} {657086400 -10800 1 -03} {669178800 -14400 0 -04} {686721600 -7200 1 -02} {694231200 -7200 0 -03} {699415200 -10800 0 -03} {719377200 -7200 1 -02} {731469600 -10800 0 -03} {938916000 -10800 0 -04} {938919600 -10800 1 -03} {952056000 -10800 0 -03} {1198983600 -7200 1 -02} {1205632800 -10800 0 -03} {1224295200 -10800 0 -03} } |
Changes to library/tzdata/America/Argentina/La_Rioja.
1 2 3 4 5 | # created by tools/tclZIC.tcl - do not edit set TZData(:America/Argentina/La_Rioja) { {-9223372036854775808 -16044 0 LMT} {-2372095956 -15408 0 CMT} | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 | # created by tools/tclZIC.tcl - do not edit set TZData(:America/Argentina/La_Rioja) { {-9223372036854775808 -16044 0 LMT} {-2372095956 -15408 0 CMT} {-1567453392 -14400 0 -04} {-1233432000 -10800 0 -03} {-1222981200 -14400 0 -04} {-1205956800 -10800 1 -03} {-1194037200 -14400 0 -04} {-1172865600 -10800 1 -03} {-1162501200 -14400 0 -04} {-1141329600 -10800 1 -03} {-1130965200 -14400 0 -04} {-1109793600 -10800 1 -03} {-1099429200 -14400 0 -04} {-1078257600 -10800 1 -03} {-1067806800 -14400 0 -04} {-1046635200 -10800 1 -03} {-1036270800 -14400 0 -04} {-1015099200 -10800 1 -03} {-1004734800 -14400 0 -04} {-983563200 -10800 1 -03} {-973198800 -14400 0 -04} {-952027200 -10800 1 -03} {-941576400 -14400 0 -04} {-931032000 -10800 1 -03} {-900882000 -14400 0 -04} {-890337600 -10800 1 -03} {-833749200 -14400 0 -04} {-827265600 -10800 1 -03} {-752274000 -14400 0 -04} {-733780800 -10800 1 -03} {-197326800 -14400 0 -04} {-190843200 -10800 1 -03} {-184194000 -14400 0 -04} {-164491200 -10800 1 -03} {-152658000 -14400 0 -04} {-132955200 -10800 1 -03} {-121122000 -14400 0 -04} {-101419200 -10800 1 -03} {-86821200 -14400 0 -04} {-71092800 -10800 1 -03} {-54766800 -14400 0 -04} {-39038400 -10800 1 -03} {-23317200 -14400 0 -04} {-7588800 -10800 0 -03} {128142000 -7200 1 -02} {136605600 -10800 0 -03} {596948400 -7200 1 -02} {605066400 -10800 0 -03} {624423600 -7200 1 -02} {636516000 -10800 0 -03} {656478000 -7200 1 -02} {667792800 -14400 0 -04} {673588800 -10800 0 -03} {687927600 -7200 1 -02} {699415200 -10800 0 -03} {719377200 -7200 1 -02} {731469600 -10800 0 -03} {938916000 -10800 0 -04} {938919600 -10800 1 -03} {952056000 -10800 0 -03} {1086058800 -14400 0 -04} {1087704000 -10800 0 -03} {1198983600 -7200 1 -02} {1205632800 -10800 0 -03} {1224295200 -10800 0 -03} } |
Changes to library/tzdata/America/Argentina/Mendoza.
1 2 3 4 5 | # created by tools/tclZIC.tcl - do not edit set TZData(:America/Argentina/Mendoza) { {-9223372036854775808 -16516 0 LMT} {-2372095484 -15408 0 CMT} | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 | # created by tools/tclZIC.tcl - do not edit set TZData(:America/Argentina/Mendoza) { {-9223372036854775808 -16516 0 LMT} {-2372095484 -15408 0 CMT} {-1567453392 -14400 0 -04} {-1233432000 -10800 0 -03} {-1222981200 -14400 0 -04} {-1205956800 -10800 1 -03} {-1194037200 -14400 0 -04} {-1172865600 -10800 1 -03} {-1162501200 -14400 0 -04} {-1141329600 -10800 1 -03} {-1130965200 -14400 0 -04} {-1109793600 -10800 1 -03} {-1099429200 -14400 0 -04} {-1078257600 -10800 1 -03} {-1067806800 -14400 0 -04} {-1046635200 -10800 1 -03} {-1036270800 -14400 0 -04} {-1015099200 -10800 1 -03} {-1004734800 -14400 0 -04} {-983563200 -10800 1 -03} {-973198800 -14400 0 -04} {-952027200 -10800 1 -03} {-941576400 -14400 0 -04} {-931032000 -10800 1 -03} {-900882000 -14400 0 -04} {-890337600 -10800 1 -03} {-833749200 -14400 0 -04} {-827265600 -10800 1 -03} {-752274000 -14400 0 -04} {-733780800 -10800 1 -03} {-197326800 -14400 0 -04} {-190843200 -10800 1 -03} {-184194000 -14400 0 -04} {-164491200 -10800 1 -03} {-152658000 -14400 0 -04} {-132955200 -10800 1 -03} {-121122000 -14400 0 -04} {-101419200 -10800 1 -03} {-86821200 -14400 0 -04} {-71092800 -10800 1 -03} {-54766800 -14400 0 -04} {-39038400 -10800 1 -03} {-23317200 -14400 0 -04} {-7588800 -10800 0 -03} {128142000 -7200 1 -02} {136605600 -10800 0 -03} {596948400 -7200 1 -02} {605066400 -10800 0 -03} {624423600 -7200 1 -02} {636516000 -14400 0 -04} {655963200 -10800 1 -03} {667796400 -14400 0 -04} {687499200 -10800 1 -03} {699418800 -14400 0 -04} {719380800 -7200 0 -02} {731469600 -10800 0 -03} {938916000 -10800 0 -04} {938919600 -10800 1 -03} {952056000 -10800 0 -03} {1085281200 -14400 0 -04} {1096171200 -10800 0 -03} {1198983600 -7200 1 -02} {1205632800 -10800 0 -03} {1224295200 -10800 0 -03} } |
Changes to library/tzdata/America/Argentina/Rio_Gallegos.
1 2 3 4 5 | # created by tools/tclZIC.tcl - do not edit set TZData(:America/Argentina/Rio_Gallegos) { {-9223372036854775808 -16612 0 LMT} {-2372095388 -15408 0 CMT} | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 | # created by tools/tclZIC.tcl - do not edit set TZData(:America/Argentina/Rio_Gallegos) { {-9223372036854775808 -16612 0 LMT} {-2372095388 -15408 0 CMT} {-1567453392 -14400 0 -04} {-1233432000 -10800 0 -03} {-1222981200 -14400 0 -04} {-1205956800 -10800 1 -03} {-1194037200 -14400 0 -04} {-1172865600 -10800 1 -03} {-1162501200 -14400 0 -04} {-1141329600 -10800 1 -03} {-1130965200 -14400 0 -04} {-1109793600 -10800 1 -03} {-1099429200 -14400 0 -04} {-1078257600 -10800 1 -03} {-1067806800 -14400 0 -04} {-1046635200 -10800 1 -03} {-1036270800 -14400 0 -04} {-1015099200 -10800 1 -03} {-1004734800 -14400 0 -04} {-983563200 -10800 1 -03} {-973198800 -14400 0 -04} {-952027200 -10800 1 -03} {-941576400 -14400 0 -04} {-931032000 -10800 1 -03} {-900882000 -14400 0 -04} {-890337600 -10800 1 -03} {-833749200 -14400 0 -04} {-827265600 -10800 1 -03} {-752274000 -14400 0 -04} {-733780800 -10800 1 -03} {-197326800 -14400 0 -04} {-190843200 -10800 1 -03} {-184194000 -14400 0 -04} {-164491200 -10800 1 -03} {-152658000 -14400 0 -04} {-132955200 -10800 1 -03} {-121122000 -14400 0 -04} {-101419200 -10800 1 -03} {-86821200 -14400 0 -04} {-71092800 -10800 1 -03} {-54766800 -14400 0 -04} {-39038400 -10800 1 -03} {-23317200 -14400 0 -04} {-7588800 -10800 0 -03} {128142000 -7200 1 -02} {136605600 -10800 0 -03} {596948400 -7200 1 -02} {605066400 -10800 0 -03} {624423600 -7200 1 -02} {636516000 -10800 0 -03} {656478000 -7200 1 -02} {667965600 -10800 0 -03} {687927600 -7200 1 -02} {699415200 -10800 0 -03} {719377200 -7200 1 -02} {731469600 -10800 0 -03} {938916000 -10800 0 -04} {938919600 -10800 1 -03} {952056000 -10800 0 -03} {1086058800 -14400 0 -04} {1087704000 -10800 0 -03} {1198983600 -7200 1 -02} {1205632800 -10800 0 -03} {1224295200 -10800 0 -03} } |
Changes to library/tzdata/America/Argentina/Salta.
1 2 3 4 5 | # created by tools/tclZIC.tcl - do not edit set TZData(:America/Argentina/Salta) { {-9223372036854775808 -15700 0 LMT} {-2372096300 -15408 0 CMT} | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 | # created by tools/tclZIC.tcl - do not edit set TZData(:America/Argentina/Salta) { {-9223372036854775808 -15700 0 LMT} {-2372096300 -15408 0 CMT} {-1567453392 -14400 0 -04} {-1233432000 -10800 0 -03} {-1222981200 -14400 0 -04} {-1205956800 -10800 1 -03} {-1194037200 -14400 0 -04} {-1172865600 -10800 1 -03} {-1162501200 -14400 0 -04} {-1141329600 -10800 1 -03} {-1130965200 -14400 0 -04} {-1109793600 -10800 1 -03} {-1099429200 -14400 0 -04} {-1078257600 -10800 1 -03} {-1067806800 -14400 0 -04} {-1046635200 -10800 1 -03} {-1036270800 -14400 0 -04} {-1015099200 -10800 1 -03} {-1004734800 -14400 0 -04} {-983563200 -10800 1 -03} {-973198800 -14400 0 -04} {-952027200 -10800 1 -03} {-941576400 -14400 0 -04} {-931032000 -10800 1 -03} {-900882000 -14400 0 -04} {-890337600 -10800 1 -03} {-833749200 -14400 0 -04} {-827265600 -10800 1 -03} {-752274000 -14400 0 -04} {-733780800 -10800 1 -03} {-197326800 -14400 0 -04} {-190843200 -10800 1 -03} {-184194000 -14400 0 -04} {-164491200 -10800 1 -03} {-152658000 -14400 0 -04} {-132955200 -10800 1 -03} {-121122000 -14400 0 -04} {-101419200 -10800 1 -03} {-86821200 -14400 0 -04} {-71092800 -10800 1 -03} {-54766800 -14400 0 -04} {-39038400 -10800 1 -03} {-23317200 -14400 0 -04} {-7588800 -10800 0 -03} {128142000 -7200 1 -02} {136605600 -10800 0 -03} {596948400 -7200 1 -02} {605066400 -10800 0 -03} {624423600 -7200 1 -02} {636516000 -10800 0 -03} {656478000 -7200 1 -02} {667965600 -14400 0 -04} {687931200 -7200 0 -02} {699415200 -10800 0 -03} {719377200 -7200 1 -02} {731469600 -10800 0 -03} {938916000 -10800 0 -04} {938919600 -10800 1 -03} {952056000 -10800 0 -03} {1198983600 -7200 1 -02} {1205632800 -10800 0 -03} {1224295200 -10800 0 -03} } |
Changes to library/tzdata/America/Argentina/San_Juan.
1 2 3 4 5 | # created by tools/tclZIC.tcl - do not edit set TZData(:America/Argentina/San_Juan) { {-9223372036854775808 -16444 0 LMT} {-2372095556 -15408 0 CMT} | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 | # created by tools/tclZIC.tcl - do not edit set TZData(:America/Argentina/San_Juan) { {-9223372036854775808 -16444 0 LMT} {-2372095556 -15408 0 CMT} {-1567453392 -14400 0 -04} {-1233432000 -10800 0 -03} {-1222981200 -14400 0 -04} {-1205956800 -10800 1 -03} {-1194037200 -14400 0 -04} {-1172865600 -10800 1 -03} {-1162501200 -14400 0 -04} {-1141329600 -10800 1 -03} {-1130965200 -14400 0 -04} {-1109793600 -10800 1 -03} {-1099429200 -14400 0 -04} {-1078257600 -10800 1 -03} {-1067806800 -14400 0 -04} {-1046635200 -10800 1 -03} {-1036270800 -14400 0 -04} {-1015099200 -10800 1 -03} {-1004734800 -14400 0 -04} {-983563200 -10800 1 -03} {-973198800 -14400 0 -04} {-952027200 -10800 1 -03} {-941576400 -14400 0 -04} {-931032000 -10800 1 -03} {-900882000 -14400 0 -04} {-890337600 -10800 1 -03} {-833749200 -14400 0 -04} {-827265600 -10800 1 -03} {-752274000 -14400 0 -04} {-733780800 -10800 1 -03} {-197326800 -14400 0 -04} {-190843200 -10800 1 -03} {-184194000 -14400 0 -04} {-164491200 -10800 1 -03} {-152658000 -14400 0 -04} {-132955200 -10800 1 -03} {-121122000 -14400 0 -04} {-101419200 -10800 1 -03} {-86821200 -14400 0 -04} {-71092800 -10800 1 -03} {-54766800 -14400 0 -04} {-39038400 -10800 1 -03} {-23317200 -14400 0 -04} {-7588800 -10800 0 -03} {128142000 -7200 1 -02} {136605600 -10800 0 -03} {596948400 -7200 1 -02} {605066400 -10800 0 -03} {624423600 -7200 1 -02} {636516000 -10800 0 -03} {656478000 -7200 1 -02} {667792800 -14400 0 -04} {673588800 -10800 0 -03} {687927600 -7200 1 -02} {699415200 -10800 0 -03} {719377200 -7200 1 -02} {731469600 -10800 0 -03} {938916000 -10800 0 -04} {938919600 -10800 1 -03} {952056000 -10800 0 -03} {1085972400 -14400 0 -04} {1090728000 -10800 0 -03} {1198983600 -7200 1 -02} {1205632800 -10800 0 -03} {1224295200 -10800 0 -03} } |
Changes to library/tzdata/America/Argentina/San_Luis.
1 2 3 4 5 | # created by tools/tclZIC.tcl - do not edit set TZData(:America/Argentina/San_Luis) { {-9223372036854775808 -15924 0 LMT} {-2372096076 -15408 0 CMT} | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 | # created by tools/tclZIC.tcl - do not edit set TZData(:America/Argentina/San_Luis) { {-9223372036854775808 -15924 0 LMT} {-2372096076 -15408 0 CMT} {-1567453392 -14400 0 -04} {-1233432000 -10800 0 -03} {-1222981200 -14400 0 -04} {-1205956800 -10800 1 -03} {-1194037200 -14400 0 -04} {-1172865600 -10800 1 -03} {-1162501200 -14400 0 -04} {-1141329600 -10800 1 -03} {-1130965200 -14400 0 -04} {-1109793600 -10800 1 -03} {-1099429200 -14400 0 -04} {-1078257600 -10800 1 -03} {-1067806800 -14400 0 -04} {-1046635200 -10800 1 -03} {-1036270800 -14400 0 -04} {-1015099200 -10800 1 -03} {-1004734800 -14400 0 -04} {-983563200 -10800 1 -03} {-973198800 -14400 0 -04} {-952027200 -10800 1 -03} {-941576400 -14400 0 -04} {-931032000 -10800 1 -03} {-900882000 -14400 0 -04} {-890337600 -10800 1 -03} {-833749200 -14400 0 -04} {-827265600 -10800 1 -03} {-752274000 -14400 0 -04} {-733780800 -10800 1 -03} {-197326800 -14400 0 -04} {-190843200 -10800 1 -03} {-184194000 -14400 0 -04} {-164491200 -10800 1 -03} {-152658000 -14400 0 -04} {-132955200 -10800 1 -03} {-121122000 -14400 0 -04} {-101419200 -10800 1 -03} {-86821200 -14400 0 -04} {-71092800 -10800 1 -03} {-54766800 -14400 0 -04} {-39038400 -10800 1 -03} {-23317200 -14400 0 -04} {-7588800 -10800 0 -03} {128142000 -7200 1 -02} {136605600 -10800 0 -03} {596948400 -7200 1 -02} {605066400 -10800 0 -03} {624423600 -7200 1 -02} {631159200 -7200 1 -02} {637380000 -14400 0 -04} {655963200 -10800 1 -03} {667796400 -14400 0 -04} {675748800 -10800 0 -03} {938919600 -10800 1 -03} {952052400 -10800 0 -03} {1085972400 -14400 0 -04} {1090728000 -10800 0 -03} {1198983600 -7200 1 -02} {1200880800 -10800 0 -04} {1205031600 -14400 0 -04} {1223784000 -10800 1 -03} {1236481200 -14400 0 -04} {1255233600 -10800 0 -03} } |
Changes to library/tzdata/America/Argentina/Tucuman.
1 2 3 4 5 | # created by tools/tclZIC.tcl - do not edit set TZData(:America/Argentina/Tucuman) { {-9223372036854775808 -15652 0 LMT} {-2372096348 -15408 0 CMT} | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 | # created by tools/tclZIC.tcl - do not edit set TZData(:America/Argentina/Tucuman) { {-9223372036854775808 -15652 0 LMT} {-2372096348 -15408 0 CMT} {-1567453392 -14400 0 -04} {-1233432000 -10800 0 -03} {-1222981200 -14400 0 -04} {-1205956800 -10800 1 -03} {-1194037200 -14400 0 -04} {-1172865600 -10800 1 -03} {-1162501200 -14400 0 -04} {-1141329600 -10800 1 -03} {-1130965200 -14400 0 -04} {-1109793600 -10800 1 -03} {-1099429200 -14400 0 -04} {-1078257600 -10800 1 -03} {-1067806800 -14400 0 -04} {-1046635200 -10800 1 -03} {-1036270800 -14400 0 -04} {-1015099200 -10800 1 -03} {-1004734800 -14400 0 -04} {-983563200 -10800 1 -03} {-973198800 -14400 0 -04} {-952027200 -10800 1 -03} {-941576400 -14400 0 -04} {-931032000 -10800 1 -03} {-900882000 -14400 0 -04} {-890337600 -10800 1 -03} {-833749200 -14400 0 -04} {-827265600 -10800 1 -03} {-752274000 -14400 0 -04} {-733780800 -10800 1 -03} {-197326800 -14400 0 -04} {-190843200 -10800 1 -03} {-184194000 -14400 0 -04} {-164491200 -10800 1 -03} {-152658000 -14400 0 -04} {-132955200 -10800 1 -03} {-121122000 -14400 0 -04} {-101419200 -10800 1 -03} {-86821200 -14400 0 -04} {-71092800 -10800 1 -03} {-54766800 -14400 0 -04} {-39038400 -10800 1 -03} {-23317200 -14400 0 -04} {-7588800 -10800 0 -03} {128142000 -7200 1 -02} {136605600 -10800 0 -03} {596948400 -7200 1 -02} {605066400 -10800 0 -03} {624423600 -7200 1 -02} {636516000 -10800 0 -03} {656478000 -7200 1 -02} {667965600 -14400 0 -04} {687931200 -7200 0 -02} {699415200 -10800 0 -03} {719377200 -7200 1 -02} {731469600 -10800 0 -03} {938916000 -10800 0 -04} {938919600 -10800 1 -03} {952056000 -10800 0 -03} {1086058800 -14400 0 -04} {1087099200 -10800 0 -03} {1198983600 -7200 1 -02} {1205632800 -10800 0 -03} {1224385200 -7200 1 -02} {1237082400 -10800 0 -03} } |
Changes to library/tzdata/America/Argentina/Ushuaia.
1 2 3 4 5 | # created by tools/tclZIC.tcl - do not edit set TZData(:America/Argentina/Ushuaia) { {-9223372036854775808 -16392 0 LMT} {-2372095608 -15408 0 CMT} | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 | # created by tools/tclZIC.tcl - do not edit set TZData(:America/Argentina/Ushuaia) { {-9223372036854775808 -16392 0 LMT} {-2372095608 -15408 0 CMT} {-1567453392 -14400 0 -04} {-1233432000 -10800 0 -03} {-1222981200 -14400 0 -04} {-1205956800 -10800 1 -03} {-1194037200 -14400 0 -04} {-1172865600 -10800 1 -03} {-1162501200 -14400 0 -04} {-1141329600 -10800 1 -03} {-1130965200 -14400 0 -04} {-1109793600 -10800 1 -03} {-1099429200 -14400 0 -04} {-1078257600 -10800 1 -03} {-1067806800 -14400 0 -04} {-1046635200 -10800 1 -03} {-1036270800 -14400 0 -04} {-1015099200 -10800 1 -03} {-1004734800 -14400 0 -04} {-983563200 -10800 1 -03} {-973198800 -14400 0 -04} {-952027200 -10800 1 -03} {-941576400 -14400 0 -04} {-931032000 -10800 1 -03} {-900882000 -14400 0 -04} {-890337600 -10800 1 -03} {-833749200 -14400 0 -04} {-827265600 -10800 1 -03} {-752274000 -14400 0 -04} {-733780800 -10800 1 -03} {-197326800 -14400 0 -04} {-190843200 -10800 1 -03} {-184194000 -14400 0 -04} {-164491200 -10800 1 -03} {-152658000 -14400 0 -04} {-132955200 -10800 1 -03} {-121122000 -14400 0 -04} {-101419200 -10800 1 -03} {-86821200 -14400 0 -04} {-71092800 -10800 1 -03} {-54766800 -14400 0 -04} {-39038400 -10800 1 -03} {-23317200 -14400 0 -04} {-7588800 -10800 0 -03} {128142000 -7200 1 -02} {136605600 -10800 0 -03} {596948400 -7200 1 -02} {605066400 -10800 0 -03} {624423600 -7200 1 -02} {636516000 -10800 0 -03} {656478000 -7200 1 -02} {667965600 -10800 0 -03} {687927600 -7200 1 -02} {699415200 -10800 0 -03} {719377200 -7200 1 -02} {731469600 -10800 0 -03} {938916000 -10800 0 -04} {938919600 -10800 1 -03} {952056000 -10800 0 -03} {1085886000 -14400 0 -04} {1087704000 -10800 0 -03} {1198983600 -7200 1 -02} {1205632800 -10800 0 -03} {1224295200 -10800 0 -03} } |
Changes to library/tzdata/America/Asuncion.
1 2 3 4 5 | # created by tools/tclZIC.tcl - do not edit set TZData(:America/Asuncion) { {-9223372036854775808 -13840 0 LMT} {-2524507760 -13840 0 AMT} | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 | # created by tools/tclZIC.tcl - do not edit set TZData(:America/Asuncion) { {-9223372036854775808 -13840 0 LMT} {-2524507760 -13840 0 AMT} {-1206389360 -14400 0 -04} {86760000 -10800 0 -03} {134017200 -14400 0 -04} {162878400 -14400 0 -04} {181368000 -10800 1 -03} {194497200 -14400 0 -04} {212990400 -10800 1 -03} {226033200 -14400 0 -04} {244526400 -10800 1 -03} {257569200 -14400 0 -04} {276062400 -10800 1 -03} {291783600 -14400 0 -04} {307598400 -10800 1 -03} {323406000 -14400 0 -04} {339220800 -10800 1 -03} {354942000 -14400 0 -04} {370756800 -10800 1 -03} {386478000 -14400 0 -04} {402292800 -10800 1 -03} {418014000 -14400 0 -04} {433828800 -10800 1 -03} {449636400 -14400 0 -04} {465451200 -10800 1 -03} {481172400 -14400 0 -04} {496987200 -10800 1 -03} {512708400 -14400 0 -04} {528523200 -10800 1 -03} {544244400 -14400 0 -04} {560059200 -10800 1 -03} {575866800 -14400 0 -04} {591681600 -10800 1 -03} {607402800 -14400 0 -04} {625032000 -10800 1 -03} {638938800 -14400 0 -04} {654753600 -10800 1 -03} {670474800 -14400 0 -04} {686721600 -10800 1 -03} {699418800 -14400 0 -04} {718257600 -10800 1 -03} {733546800 -14400 0 -04} {749448000 -10800 1 -03} {762318000 -14400 0 -04} {780984000 -10800 1 -03} {793767600 -14400 0 -04} {812520000 -10800 1 -03} {825649200 -14400 0 -04} {844574400 -10800 1 -03} {856666800 -14400 0 -04} {876024000 -10800 1 -03} {888721200 -14400 0 -04} {907473600 -10800 1 -03} {920775600 -14400 0 -04} {938923200 -10800 1 -03} {952225200 -14400 0 -04} {970372800 -10800 1 -03} {983674800 -14400 0 -04} {1002427200 -10800 1 -03} {1018148400 -14400 0 -04} {1030852800 -10800 1 -03} {1049598000 -14400 0 -04} {1062907200 -10800 1 -03} {1081047600 -14400 0 -04} {1097985600 -10800 1 -03} {1110682800 -14400 0 -04} {1129435200 -10800 1 -03} {1142132400 -14400 0 -04} {1160884800 -10800 1 -03} {1173582000 -14400 0 -04} {1192939200 -10800 1 -03} {1205031600 -14400 0 -04} {1224388800 -10800 1 -03} {1236481200 -14400 0 -04} {1255838400 -10800 1 -03} {1270954800 -14400 0 -04} {1286078400 -10800 1 -03} {1302404400 -14400 0 -04} {1317528000 -10800 1 -03} {1333854000 -14400 0 -04} {1349582400 -10800 1 -03} {1364094000 -14400 0 -04} {1381032000 -10800 1 -03} {1395543600 -14400 0 -04} {1412481600 -10800 1 -03} {1426993200 -14400 0 -04} {1443931200 -10800 1 -03} {1459047600 -14400 0 -04} {1475380800 -10800 1 -03} {1490497200 -14400 0 -04} {1506830400 -10800 1 -03} {1521946800 -14400 0 -04} {1538884800 -10800 1 -03} {1553396400 -14400 0 -04} {1570334400 -10800 1 -03} {1584846000 -14400 0 -04} {1601784000 -10800 1 -03} {1616900400 -14400 0 -04} {1633233600 -10800 1 -03} {1648350000 -14400 0 -04} {1664683200 -10800 1 -03} {1679799600 -14400 0 -04} {1696132800 -10800 1 -03} {1711249200 -14400 0 -04} {1728187200 -10800 1 -03} {1742698800 -14400 0 -04} {1759636800 -10800 1 -03} {1774148400 -14400 0 -04} {1791086400 -10800 1 -03} {1806202800 -14400 0 -04} {1822536000 -10800 1 -03} {1837652400 -14400 0 -04} {1853985600 -10800 1 -03} {1869102000 -14400 0 -04} {1886040000 -10800 1 -03} {1900551600 -14400 0 -04} {1917489600 -10800 1 -03} {1932001200 -14400 0 -04} {1948939200 -10800 1 -03} {1964055600 -14400 0 -04} {1980388800 -10800 1 -03} {1995505200 -14400 0 -04} {2011838400 -10800 1 -03} {2026954800 -14400 0 -04} {2043288000 -10800 1 -03} {2058404400 -14400 0 -04} {2075342400 -10800 1 -03} {2089854000 -14400 0 -04} {2106792000 -10800 1 -03} {2121303600 -14400 0 -04} {2138241600 -10800 1 -03} {2153358000 -14400 0 -04} {2169691200 -10800 1 -03} {2184807600 -14400 0 -04} {2201140800 -10800 1 -03} {2216257200 -14400 0 -04} {2233195200 -10800 1 -03} {2247706800 -14400 0 -04} {2264644800 -10800 1 -03} {2279156400 -14400 0 -04} {2296094400 -10800 1 -03} {2310606000 -14400 0 -04} {2327544000 -10800 1 -03} {2342660400 -14400 0 -04} {2358993600 -10800 1 -03} {2374110000 -14400 0 -04} {2390443200 -10800 1 -03} {2405559600 -14400 0 -04} {2422497600 -10800 1 -03} {2437009200 -14400 0 -04} {2453947200 -10800 1 -03} {2468458800 -14400 0 -04} {2485396800 -10800 1 -03} {2500513200 -14400 0 -04} {2516846400 -10800 1 -03} {2531962800 -14400 0 -04} {2548296000 -10800 1 -03} {2563412400 -14400 0 -04} {2579745600 -10800 1 -03} {2594862000 -14400 0 -04} {2611800000 -10800 1 -03} {2626311600 -14400 0 -04} {2643249600 -10800 1 -03} {2657761200 -14400 0 -04} {2674699200 -10800 1 -03} {2689815600 -14400 0 -04} {2706148800 -10800 1 -03} {2721265200 -14400 0 -04} {2737598400 -10800 1 -03} {2752714800 -14400 0 -04} {2769652800 -10800 1 -03} {2784164400 -14400 0 -04} {2801102400 -10800 1 -03} {2815614000 -14400 0 -04} {2832552000 -10800 1 -03} {2847668400 -14400 0 -04} {2864001600 -10800 1 -03} {2879118000 -14400 0 -04} {2895451200 -10800 1 -03} {2910567600 -14400 0 -04} {2926900800 -10800 1 -03} {2942017200 -14400 0 -04} {2958955200 -10800 1 -03} {2973466800 -14400 0 -04} {2990404800 -10800 1 -03} {3004916400 -14400 0 -04} {3021854400 -10800 1 -03} {3036970800 -14400 0 -04} {3053304000 -10800 1 -03} {3068420400 -14400 0 -04} {3084753600 -10800 1 -03} {3099870000 -14400 0 -04} {3116808000 -10800 1 -03} {3131319600 -14400 0 -04} {3148257600 -10800 1 -03} {3162769200 -14400 0 -04} {3179707200 -10800 1 -03} {3194218800 -14400 0 -04} {3211156800 -10800 1 -03} {3226273200 -14400 0 -04} {3242606400 -10800 1 -03} {3257722800 -14400 0 -04} {3274056000 -10800 1 -03} {3289172400 -14400 0 -04} {3306110400 -10800 1 -03} {3320622000 -14400 0 -04} {3337560000 -10800 1 -03} {3352071600 -14400 0 -04} {3369009600 -10800 1 -03} {3384126000 -14400 0 -04} {3400459200 -10800 1 -03} {3415575600 -14400 0 -04} {3431908800 -10800 1 -03} {3447025200 -14400 0 -04} {3463358400 -10800 1 -03} {3478474800 -14400 0 -04} {3495412800 -10800 1 -03} {3509924400 -14400 0 -04} {3526862400 -10800 1 -03} {3541374000 -14400 0 -04} {3558312000 -10800 1 -03} {3573428400 -14400 0 -04} {3589761600 -10800 1 -03} {3604878000 -14400 0 -04} {3621211200 -10800 1 -03} {3636327600 -14400 0 -04} {3653265600 -10800 1 -03} {3667777200 -14400 0 -04} {3684715200 -10800 1 -03} {3699226800 -14400 0 -04} {3716164800 -10800 1 -03} {3731281200 -14400 0 -04} {3747614400 -10800 1 -03} {3762730800 -14400 0 -04} {3779064000 -10800 1 -03} {3794180400 -14400 0 -04} {3810513600 -10800 1 -03} {3825630000 -14400 0 -04} {3842568000 -10800 1 -03} {3857079600 -14400 0 -04} {3874017600 -10800 1 -03} {3888529200 -14400 0 -04} {3905467200 -10800 1 -03} {3920583600 -14400 0 -04} {3936916800 -10800 1 -03} {3952033200 -14400 0 -04} {3968366400 -10800 1 -03} {3983482800 -14400 0 -04} {4000420800 -10800 1 -03} {4014932400 -14400 0 -04} {4031870400 -10800 1 -03} {4046382000 -14400 0 -04} {4063320000 -10800 1 -03} {4077831600 -14400 0 -04} {4094769600 -10800 1 -03} } |
Changes to library/tzdata/America/Bahia.
1 2 3 4 | # created by tools/tclZIC.tcl - do not edit set TZData(:America/Bahia) { {-9223372036854775808 -9244 0 LMT} | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 | # created by tools/tclZIC.tcl - do not edit set TZData(:America/Bahia) { {-9223372036854775808 -9244 0 LMT} {-1767216356 -10800 0 -03} {-1206957600 -7200 1 -02} {-1191362400 -10800 0 -03} {-1175374800 -7200 1 -02} {-1159826400 -10800 0 -03} {-633819600 -7200 1 -02} {-622069200 -10800 0 -03} {-602283600 -7200 1 -02} {-591832800 -10800 0 -03} {-570747600 -7200 1 -02} {-560210400 -10800 0 -03} {-539125200 -7200 1 -02} {-531352800 -10800 0 -03} {-191365200 -7200 1 -02} {-184197600 -10800 0 -03} {-155163600 -7200 1 -02} {-150069600 -10800 0 -03} {-128898000 -7200 1 -02} {-121125600 -10800 0 -03} {-99954000 -7200 1 -02} {-89589600 -10800 0 -03} {-68418000 -7200 1 -02} {-57967200 -10800 0 -03} {499748400 -7200 1 -02} {511236000 -10800 0 -03} {530593200 -7200 1 -02} {540266400 -10800 0 -03} {562129200 -7200 1 -02} {571197600 -10800 0 -03} {592974000 -7200 1 -02} {602042400 -10800 0 -03} {624423600 -7200 1 -02} {634701600 -10800 0 -03} {656478000 -7200 1 -02} {666756000 -10800 0 -03} {687927600 -7200 1 -02} {697600800 -10800 0 -03} {719982000 -7200 1 -02} {728445600 -10800 0 -03} {750826800 -7200 1 -02} {761709600 -10800 0 -03} {782276400 -7200 1 -02} {793159200 -10800 0 -03} {813726000 -7200 1 -02} {824004000 -10800 0 -03} {844570800 -7200 1 -02} {856058400 -10800 0 -03} {876106800 -7200 1 -02} {888717600 -10800 0 -03} {908074800 -7200 1 -02} {919562400 -10800 0 -03} {938919600 -7200 1 -02} {951616800 -10800 0 -03} {970974000 -7200 1 -02} {982461600 -10800 0 -03} {1003028400 -7200 1 -02} {1013911200 -10800 0 -03} {1036292400 -7200 1 -02} {1045360800 -10800 0 -03} {1064368800 -10800 0 -03} {1318734000 -7200 0 -02} {1330221600 -10800 0 -03} {1350784800 -10800 0 -03} } |
Changes to library/tzdata/America/Belem.
1 2 3 4 | # created by tools/tclZIC.tcl - do not edit set TZData(:America/Belem) { {-9223372036854775808 -11636 0 LMT} | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 | # created by tools/tclZIC.tcl - do not edit set TZData(:America/Belem) { {-9223372036854775808 -11636 0 LMT} {-1767213964 -10800 0 -03} {-1206957600 -7200 1 -02} {-1191362400 -10800 0 -03} {-1175374800 -7200 1 -02} {-1159826400 -10800 0 -03} {-633819600 -7200 1 -02} {-622069200 -10800 0 -03} {-602283600 -7200 1 -02} {-591832800 -10800 0 -03} {-570747600 -7200 1 -02} {-560210400 -10800 0 -03} {-539125200 -7200 1 -02} {-531352800 -10800 0 -03} {-191365200 -7200 1 -02} {-184197600 -10800 0 -03} {-155163600 -7200 1 -02} {-150069600 -10800 0 -03} {-128898000 -7200 1 -02} {-121125600 -10800 0 -03} {-99954000 -7200 1 -02} {-89589600 -10800 0 -03} {-68418000 -7200 1 -02} {-57967200 -10800 0 -03} {499748400 -7200 1 -02} {511236000 -10800 0 -03} {530593200 -7200 1 -02} {540266400 -10800 0 -03} {562129200 -7200 1 -02} {571197600 -10800 0 -03} {590032800 -10800 0 -03} } |
Changes to library/tzdata/America/Belize.
1 2 3 4 5 | # created by tools/tclZIC.tcl - do not edit set TZData(:America/Belize) { {-9223372036854775808 -21168 0 LMT} {-1822500432 -21600 0 CST} | | | | | | | | | | | | | | | | | | | | | | | | | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 | # created by tools/tclZIC.tcl - do not edit set TZData(:America/Belize) { {-9223372036854775808 -21168 0 LMT} {-1822500432 -21600 0 CST} {-1616954400 -19800 1 -0530} {-1606069800 -21600 0 CST} {-1585504800 -19800 1 -0530} {-1574015400 -21600 0 CST} {-1554055200 -19800 1 -0530} {-1542565800 -21600 0 CST} {-1522605600 -19800 1 -0530} {-1511116200 -21600 0 CST} {-1490551200 -19800 1 -0530} {-1479666600 -21600 0 CST} {-1459101600 -19800 1 -0530} {-1448217000 -21600 0 CST} {-1427652000 -19800 1 -0530} {-1416162600 -21600 0 CST} {-1396202400 -19800 1 -0530} {-1384713000 -21600 0 CST} {-1364752800 -19800 1 -0530} {-1353263400 -21600 0 CST} {-1333303200 -19800 1 -0530} {-1321813800 -21600 0 CST} {-1301248800 -19800 1 -0530} {-1290364200 -21600 0 CST} {-1269799200 -19800 1 -0530} {-1258914600 -21600 0 CST} {-1238349600 -19800 1 -0530} {-1226860200 -21600 0 CST} {-1206900000 -19800 1 -0530} {-1195410600 -21600 0 CST} {-1175450400 -19800 1 -0530} {-1163961000 -21600 0 CST} {-1143396000 -19800 1 -0530} {-1132511400 -21600 0 CST} {-1111946400 -19800 1 -0530} {-1101061800 -21600 0 CST} {-1080496800 -19800 1 -0530} {-1069612200 -21600 0 CST} {-1049047200 -19800 1 -0530} {-1037557800 -21600 0 CST} {-1017597600 -19800 1 -0530} {-1006108200 -21600 0 CST} {-986148000 -19800 1 -0530} {-974658600 -21600 0 CST} {-954093600 -19800 1 -0530} {-943209000 -21600 0 CST} {-922644000 -19800 1 -0530} {-911759400 -21600 0 CST} {-891194400 -19800 1 -0530} {-879705000 -21600 0 CST} {-859744800 -19800 1 -0530} {-848255400 -21600 0 CST} {123919200 -18000 1 CDT} {129618000 -21600 0 CST} {409039200 -18000 1 CDT} {413874000 -21600 0 CST} } |
Changes to library/tzdata/America/Boa_Vista.
1 2 3 4 | # created by tools/tclZIC.tcl - do not edit set TZData(:America/Boa_Vista) { {-9223372036854775808 -14560 0 LMT} | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 | # created by tools/tclZIC.tcl - do not edit set TZData(:America/Boa_Vista) { {-9223372036854775808 -14560 0 LMT} {-1767211040 -14400 0 -04} {-1206954000 -10800 1 -03} {-1191358800 -14400 0 -04} {-1175371200 -10800 1 -03} {-1159822800 -14400 0 -04} {-633816000 -10800 1 -03} {-622065600 -14400 0 -04} {-602280000 -10800 1 -03} {-591829200 -14400 0 -04} {-570744000 -10800 1 -03} {-560206800 -14400 0 -04} {-539121600 -10800 1 -03} {-531349200 -14400 0 -04} {-191361600 -10800 1 -03} {-184194000 -14400 0 -04} {-155160000 -10800 1 -03} {-150066000 -14400 0 -04} {-128894400 -10800 1 -03} {-121122000 -14400 0 -04} {-99950400 -10800 1 -03} {-89586000 -14400 0 -04} {-68414400 -10800 1 -03} {-57963600 -14400 0 -04} {499752000 -10800 1 -03} {511239600 -14400 0 -04} {530596800 -10800 1 -03} {540270000 -14400 0 -04} {562132800 -10800 1 -03} {571201200 -14400 0 -04} {590036400 -14400 0 -04} {938664000 -14400 0 -04} {938923200 -10800 1 -03} {951620400 -14400 0 -04} {970977600 -10800 1 -03} {971578800 -14400 0 -04} } |
Changes to library/tzdata/America/Bogota.
1 2 3 4 5 | # created by tools/tclZIC.tcl - do not edit set TZData(:America/Bogota) { {-9223372036854775808 -17776 0 LMT} {-2707671824 -17776 0 BMT} | | | | | 1 2 3 4 5 6 7 8 9 | # created by tools/tclZIC.tcl - do not edit set TZData(:America/Bogota) { {-9223372036854775808 -17776 0 LMT} {-2707671824 -17776 0 BMT} {-1739041424 -18000 0 -05} {704869200 -14400 1 -04} {733896000 -18000 0 -05} } |
Changes to library/tzdata/America/Campo_Grande.
1 2 3 4 | # created by tools/tclZIC.tcl - do not edit set TZData(:America/Campo_Grande) { {-9223372036854775808 -13108 0 LMT} | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 | # created by tools/tclZIC.tcl - do not edit set TZData(:America/Campo_Grande) { {-9223372036854775808 -13108 0 LMT} {-1767212492 -14400 0 -04} {-1206954000 -10800 1 -03} {-1191358800 -14400 0 -04} {-1175371200 -10800 1 -03} {-1159822800 -14400 0 -04} {-633816000 -10800 1 -03} {-622065600 -14400 0 -04} {-602280000 -10800 1 -03} {-591829200 -14400 0 -04} {-570744000 -10800 1 -03} {-560206800 -14400 0 -04} {-539121600 -10800 1 -03} {-531349200 -14400 0 -04} {-191361600 -10800 1 -03} {-184194000 -14400 0 -04} {-155160000 -10800 1 -03} {-150066000 -14400 0 -04} {-128894400 -10800 1 -03} {-121122000 -14400 0 -04} {-99950400 -10800 1 -03} {-89586000 -14400 0 -04} {-68414400 -10800 1 -03} {-57963600 -14400 0 -04} {499752000 -10800 1 -03} {511239600 -14400 0 -04} {530596800 -10800 1 -03} {540270000 -14400 0 -04} {562132800 -10800 1 -03} {571201200 -14400 0 -04} {592977600 -10800 1 -03} {602046000 -14400 0 -04} {624427200 -10800 1 -03} {634705200 -14400 0 -04} {656481600 -10800 1 -03} {666759600 -14400 0 -04} {687931200 -10800 1 -03} {697604400 -14400 0 -04} {719985600 -10800 1 -03} {728449200 -14400 0 -04} {750830400 -10800 1 -03} {761713200 -14400 0 -04} {782280000 -10800 1 -03} {793162800 -14400 0 -04} {813729600 -10800 1 -03} {824007600 -14400 0 -04} {844574400 -10800 1 -03} {856062000 -14400 0 -04} {876110400 -10800 1 -03} {888721200 -14400 0 -04} {908078400 -10800 1 -03} {919566000 -14400 0 -04} {938923200 -10800 1 -03} {951620400 -14400 0 -04} {970977600 -10800 1 -03} {982465200 -14400 0 -04} {1003032000 -10800 1 -03} {1013914800 -14400 0 -04} {1036296000 -10800 1 -03} {1045364400 -14400 0 -04} {1066536000 -10800 1 -03} {1076814000 -14400 0 -04} {1099368000 -10800 1 -03} {1108868400 -14400 0 -04} {1129435200 -10800 1 -03} {1140318000 -14400 0 -04} {1162699200 -10800 1 -03} {1172372400 -14400 0 -04} {1192334400 -10800 1 -03} {1203217200 -14400 0 -04} {1224388800 -10800 1 -03} {1234666800 -14400 0 -04} {1255838400 -10800 1 -03} {1266721200 -14400 0 -04} {1287288000 -10800 1 -03} {1298170800 -14400 0 -04} {1318737600 -10800 1 -03} {1330225200 -14400 0 -04} {1350792000 -10800 1 -03} {1361070000 -14400 0 -04} {1382241600 -10800 1 -03} {1392519600 -14400 0 -04} {1413691200 -10800 1 -03} {1424574000 -14400 0 -04} {1445140800 -10800 1 -03} {1456023600 -14400 0 -04} {1476590400 -10800 1 -03} {1487473200 -14400 0 -04} {1508040000 -10800 1 -03} {1518922800 -14400 0 -04} {1540094400 -10800 1 -03} {1550372400 -14400 0 -04} {1571544000 -10800 1 -03} {1581822000 -14400 0 -04} {1602993600 -10800 1 -03} {1613876400 -14400 0 -04} {1634443200 -10800 1 -03} {1645326000 -14400 0 -04} {1665892800 -10800 1 -03} {1677380400 -14400 0 -04} {1697342400 -10800 1 -03} {1708225200 -14400 0 -04} {1729396800 -10800 1 -03} {1739674800 -14400 0 -04} {1760846400 -10800 1 -03} {1771729200 -14400 0 -04} {1792296000 -10800 1 -03} {1803178800 -14400 0 -04} {1823745600 -10800 1 -03} {1834628400 -14400 0 -04} {1855195200 -10800 1 -03} {1866078000 -14400 0 -04} {1887249600 -10800 1 -03} {1897527600 -14400 0 -04} {1918699200 -10800 1 -03} {1928977200 -14400 0 -04} {1950148800 -10800 1 -03} {1960426800 -14400 0 -04} {1981598400 -10800 1 -03} {1992481200 -14400 0 -04} {2013048000 -10800 1 -03} {2024535600 -14400 0 -04} {2044497600 -10800 1 -03} {2055380400 -14400 0 -04} {2076552000 -10800 1 -03} {2086830000 -14400 0 -04} {2108001600 -10800 1 -03} {2118884400 -14400 0 -04} {2139451200 -10800 1 -03} {2150334000 -14400 0 -04} {2170900800 -10800 1 -03} {2181783600 -14400 0 -04} {2202350400 -10800 1 -03} {2213233200 -14400 0 -04} {2234404800 -10800 1 -03} {2244682800 -14400 0 -04} {2265854400 -10800 1 -03} {2276132400 -14400 0 -04} {2297304000 -10800 1 -03} {2307582000 -14400 0 -04} {2328753600 -10800 1 -03} {2339636400 -14400 0 -04} {2360203200 -10800 1 -03} {2371086000 -14400 0 -04} {2391652800 -10800 1 -03} {2402535600 -14400 0 -04} {2423707200 -10800 1 -03} {2433985200 -14400 0 -04} {2455156800 -10800 1 -03} {2465434800 -14400 0 -04} {2486606400 -10800 1 -03} {2497489200 -14400 0 -04} {2518056000 -10800 1 -03} {2528938800 -14400 0 -04} {2549505600 -10800 1 -03} {2560388400 -14400 0 -04} {2580955200 -10800 1 -03} {2591838000 -14400 0 -04} {2613009600 -10800 1 -03} {2623287600 -14400 0 -04} {2644459200 -10800 1 -03} {2654737200 -14400 0 -04} {2675908800 -10800 1 -03} {2686791600 -14400 0 -04} {2707358400 -10800 1 -03} {2718241200 -14400 0 -04} {2738808000 -10800 1 -03} {2749690800 -14400 0 -04} {2770862400 -10800 1 -03} {2781140400 -14400 0 -04} {2802312000 -10800 1 -03} {2812590000 -14400 0 -04} {2833761600 -10800 1 -03} {2844039600 -14400 0 -04} {2865211200 -10800 1 -03} {2876094000 -14400 0 -04} {2896660800 -10800 1 -03} {2907543600 -14400 0 -04} {2928110400 -10800 1 -03} {2938993200 -14400 0 -04} {2960164800 -10800 1 -03} {2970442800 -14400 0 -04} {2991614400 -10800 1 -03} {3001892400 -14400 0 -04} {3023064000 -10800 1 -03} {3033946800 -14400 0 -04} {3054513600 -10800 1 -03} {3065396400 -14400 0 -04} {3085963200 -10800 1 -03} {3096846000 -14400 0 -04} {3118017600 -10800 1 -03} {3128295600 -14400 0 -04} {3149467200 -10800 1 -03} {3159745200 -14400 0 -04} {3180916800 -10800 1 -03} {3191194800 -14400 0 -04} {3212366400 -10800 1 -03} {3223249200 -14400 0 -04} {3243816000 -10800 1 -03} {3254698800 -14400 0 -04} {3275265600 -10800 1 -03} {3286148400 -14400 0 -04} {3307320000 -10800 1 -03} {3317598000 -14400 0 -04} {3338769600 -10800 1 -03} {3349047600 -14400 0 -04} {3370219200 -10800 1 -03} {3381102000 -14400 0 -04} {3401668800 -10800 1 -03} {3412551600 -14400 0 -04} {3433118400 -10800 1 -03} {3444001200 -14400 0 -04} {3464568000 -10800 1 -03} {3475450800 -14400 0 -04} {3496622400 -10800 1 -03} {3506900400 -14400 0 -04} {3528072000 -10800 1 -03} {3538350000 -14400 0 -04} {3559521600 -10800 1 -03} {3570404400 -14400 0 -04} {3590971200 -10800 1 -03} {3601854000 -14400 0 -04} {3622420800 -10800 1 -03} {3633303600 -14400 0 -04} {3654475200 -10800 1 -03} {3664753200 -14400 0 -04} {3685924800 -10800 1 -03} {3696202800 -14400 0 -04} {3717374400 -10800 1 -03} {3727652400 -14400 0 -04} {3748824000 -10800 1 -03} {3759706800 -14400 0 -04} {3780273600 -10800 1 -03} {3791156400 -14400 0 -04} {3811723200 -10800 1 -03} {3822606000 -14400 0 -04} {3843777600 -10800 1 -03} {3854055600 -14400 0 -04} {3875227200 -10800 1 -03} {3885505200 -14400 0 -04} {3906676800 -10800 1 -03} {3917559600 -14400 0 -04} {3938126400 -10800 1 -03} {3949009200 -14400 0 -04} {3969576000 -10800 1 -03} {3980458800 -14400 0 -04} {4001630400 -10800 1 -03} {4011908400 -14400 0 -04} {4033080000 -10800 1 -03} {4043358000 -14400 0 -04} {4064529600 -10800 1 -03} {4074807600 -14400 0 -04} {4095979200 -10800 1 -03} } |
Changes to library/tzdata/America/Caracas.
1 2 3 4 5 | # created by tools/tclZIC.tcl - do not edit set TZData(:America/Caracas) { {-9223372036854775808 -16064 0 LMT} {-2524505536 -16060 0 CMT} | | | | | | 1 2 3 4 5 6 7 8 9 10 | # created by tools/tclZIC.tcl - do not edit set TZData(:America/Caracas) { {-9223372036854775808 -16064 0 LMT} {-2524505536 -16060 0 CMT} {-1826739140 -16200 0 -0430} {-157750200 -14400 0 -04} {1197183600 -16200 0 -0430} {1462086000 -14400 0 -04} } |
Changes to library/tzdata/America/Cayenne.
1 2 3 4 | # created by tools/tclZIC.tcl - do not edit set TZData(:America/Cayenne) { {-9223372036854775808 -12560 0 LMT} | | | | 1 2 3 4 5 6 7 | # created by tools/tclZIC.tcl - do not edit set TZData(:America/Cayenne) { {-9223372036854775808 -12560 0 LMT} {-1846269040 -14400 0 -04} {-71092800 -10800 0 -03} } |
Changes to library/tzdata/America/Cuiaba.
1 2 3 4 | # created by tools/tclZIC.tcl - do not edit set TZData(:America/Cuiaba) { {-9223372036854775808 -13460 0 LMT} | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 | # created by tools/tclZIC.tcl - do not edit set TZData(:America/Cuiaba) { {-9223372036854775808 -13460 0 LMT} {-1767212140 -14400 0 -04} {-1206954000 -10800 1 -03} {-1191358800 -14400 0 -04} {-1175371200 -10800 1 -03} {-1159822800 -14400 0 -04} {-633816000 -10800 1 -03} {-622065600 -14400 0 -04} {-602280000 -10800 1 -03} {-591829200 -14400 0 -04} {-570744000 -10800 1 -03} {-560206800 -14400 0 -04} {-539121600 -10800 1 -03} {-531349200 -14400 0 -04} {-191361600 -10800 1 -03} {-184194000 -14400 0 -04} {-155160000 -10800 1 -03} {-150066000 -14400 0 -04} {-128894400 -10800 1 -03} {-121122000 -14400 0 -04} {-99950400 -10800 1 -03} {-89586000 -14400 0 -04} {-68414400 -10800 1 -03} {-57963600 -14400 0 -04} {499752000 -10800 1 -03} {511239600 -14400 0 -04} {530596800 -10800 1 -03} {540270000 -14400 0 -04} {562132800 -10800 1 -03} {571201200 -14400 0 -04} {592977600 -10800 1 -03} {602046000 -14400 0 -04} {624427200 -10800 1 -03} {634705200 -14400 0 -04} {656481600 -10800 1 -03} {666759600 -14400 0 -04} {687931200 -10800 1 -03} {697604400 -14400 0 -04} {719985600 -10800 1 -03} {728449200 -14400 0 -04} {750830400 -10800 1 -03} {761713200 -14400 0 -04} {782280000 -10800 1 -03} {793162800 -14400 0 -04} {813729600 -10800 1 -03} {824007600 -14400 0 -04} {844574400 -10800 1 -03} {856062000 -14400 0 -04} {876110400 -10800 1 -03} {888721200 -14400 0 -04} {908078400 -10800 1 -03} {919566000 -14400 0 -04} {938923200 -10800 1 -03} {951620400 -14400 0 -04} {970977600 -10800 1 -03} {982465200 -14400 0 -04} {1003032000 -10800 1 -03} {1013914800 -14400 0 -04} {1036296000 -10800 1 -03} {1045364400 -14400 0 -04} {1064372400 -14400 0 -04} {1096603200 -14400 0 -04} {1099368000 -10800 1 -03} {1108868400 -14400 0 -04} {1129435200 -10800 1 -03} {1140318000 -14400 0 -04} {1162699200 -10800 1 -03} {1172372400 -14400 0 -04} {1192334400 -10800 1 -03} {1203217200 -14400 0 -04} {1224388800 -10800 1 -03} {1234666800 -14400 0 -04} {1255838400 -10800 1 -03} {1266721200 -14400 0 -04} {1287288000 -10800 1 -03} {1298170800 -14400 0 -04} {1318737600 -10800 1 -03} {1330225200 -14400 0 -04} {1350792000 -10800 1 -03} {1361070000 -14400 0 -04} {1382241600 -10800 1 -03} {1392519600 -14400 0 -04} {1413691200 -10800 1 -03} {1424574000 -14400 0 -04} {1445140800 -10800 1 -03} {1456023600 -14400 0 -04} {1476590400 -10800 1 -03} {1487473200 -14400 0 -04} {1508040000 -10800 1 -03} {1518922800 -14400 0 -04} {1540094400 -10800 1 -03} {1550372400 -14400 0 -04} {1571544000 -10800 1 -03} {1581822000 -14400 0 -04} {1602993600 -10800 1 -03} {1613876400 -14400 0 -04} {1634443200 -10800 1 -03} {1645326000 -14400 0 -04} {1665892800 -10800 1 -03} {1677380400 -14400 0 -04} {1697342400 -10800 1 -03} {1708225200 -14400 0 -04} {1729396800 -10800 1 -03} {1739674800 -14400 0 -04} {1760846400 -10800 1 -03} {1771729200 -14400 0 -04} {1792296000 -10800 1 -03} {1803178800 -14400 0 -04} {1823745600 -10800 1 -03} {1834628400 -14400 0 -04} {1855195200 -10800 1 -03} {1866078000 -14400 0 -04} {1887249600 -10800 1 -03} {1897527600 -14400 0 -04} {1918699200 -10800 1 -03} {1928977200 -14400 0 -04} {1950148800 -10800 1 -03} {1960426800 -14400 0 -04} {1981598400 -10800 1 -03} {1992481200 -14400 0 -04} {2013048000 -10800 1 -03} {2024535600 -14400 0 -04} {2044497600 -10800 1 -03} {2055380400 -14400 0 -04} {2076552000 -10800 1 -03} {2086830000 -14400 0 -04} {2108001600 -10800 1 -03} {2118884400 -14400 0 -04} {2139451200 -10800 1 -03} {2150334000 -14400 0 -04} {2170900800 -10800 1 -03} {2181783600 -14400 0 -04} {2202350400 -10800 1 -03} {2213233200 -14400 0 -04} {2234404800 -10800 1 -03} {2244682800 -14400 0 -04} {2265854400 -10800 1 -03} {2276132400 -14400 0 -04} {2297304000 -10800 1 -03} {2307582000 -14400 0 -04} {2328753600 -10800 1 -03} {2339636400 -14400 0 -04} {2360203200 -10800 1 -03} {2371086000 -14400 0 -04} {2391652800 -10800 1 -03} {2402535600 -14400 0 -04} {2423707200 -10800 1 -03} {2433985200 -14400 0 -04} {2455156800 -10800 1 -03} {2465434800 -14400 0 -04} {2486606400 -10800 1 -03} {2497489200 -14400 0 -04} {2518056000 -10800 1 -03} {2528938800 -14400 0 -04} {2549505600 -10800 1 -03} {2560388400 -14400 0 -04} {2580955200 -10800 1 -03} {2591838000 -14400 0 -04} {2613009600 -10800 1 -03} {2623287600 -14400 0 -04} {2644459200 -10800 1 -03} {2654737200 -14400 0 -04} {2675908800 -10800 1 -03} {2686791600 -14400 0 -04} {2707358400 -10800 1 -03} {2718241200 -14400 0 -04} {2738808000 -10800 1 -03} {2749690800 -14400 0 -04} {2770862400 -10800 1 -03} {2781140400 -14400 0 -04} {2802312000 -10800 1 -03} {2812590000 -14400 0 -04} {2833761600 -10800 1 -03} {2844039600 -14400 0 -04} {2865211200 -10800 1 -03} {2876094000 -14400 0 -04} {2896660800 -10800 1 -03} {2907543600 -14400 0 -04} {2928110400 -10800 1 -03} {2938993200 -14400 0 -04} {2960164800 -10800 1 -03} {2970442800 -14400 0 -04} {2991614400 -10800 1 -03} {3001892400 -14400 0 -04} {3023064000 -10800 1 -03} {3033946800 -14400 0 -04} {3054513600 -10800 1 -03} {3065396400 -14400 0 -04} {3085963200 -10800 1 -03} {3096846000 -14400 0 -04} {3118017600 -10800 1 -03} {3128295600 -14400 0 -04} {3149467200 -10800 1 -03} {3159745200 -14400 0 -04} {3180916800 -10800 1 -03} {3191194800 -14400 0 -04} {3212366400 -10800 1 -03} {3223249200 -14400 0 -04} {3243816000 -10800 1 -03} {3254698800 -14400 0 -04} {3275265600 -10800 1 -03} {3286148400 -14400 0 -04} {3307320000 -10800 1 -03} {3317598000 -14400 0 -04} {3338769600 -10800 1 -03} {3349047600 -14400 0 -04} {3370219200 -10800 1 -03} {3381102000 -14400 0 -04} {3401668800 -10800 1 -03} {3412551600 -14400 0 -04} {3433118400 -10800 1 -03} {3444001200 -14400 0 -04} {3464568000 -10800 1 -03} {3475450800 -14400 0 -04} {3496622400 -10800 1 -03} {3506900400 -14400 0 -04} {3528072000 -10800 1 -03} {3538350000 -14400 0 -04} {3559521600 -10800 1 -03} {3570404400 -14400 0 -04} {3590971200 -10800 1 -03} {3601854000 -14400 0 -04} {3622420800 -10800 1 -03} {3633303600 -14400 0 -04} {3654475200 -10800 1 -03} {3664753200 -14400 0 -04} {3685924800 -10800 1 -03} {3696202800 -14400 0 -04} {3717374400 -10800 1 -03} {3727652400 -14400 0 -04} {3748824000 -10800 1 -03} {3759706800 -14400 0 -04} {3780273600 -10800 1 -03} {3791156400 -14400 0 -04} {3811723200 -10800 1 -03} {3822606000 -14400 0 -04} {3843777600 -10800 1 -03} {3854055600 -14400 0 -04} {3875227200 -10800 1 -03} {3885505200 -14400 0 -04} {3906676800 -10800 1 -03} {3917559600 -14400 0 -04} {3938126400 -10800 1 -03} {3949009200 -14400 0 -04} {3969576000 -10800 1 -03} {3980458800 -14400 0 -04} {4001630400 -10800 1 -03} {4011908400 -14400 0 -04} {4033080000 -10800 1 -03} {4043358000 -14400 0 -04} {4064529600 -10800 1 -03} {4074807600 -14400 0 -04} {4095979200 -10800 1 -03} } |
Changes to library/tzdata/America/Curacao.
1 2 3 4 | # created by tools/tclZIC.tcl - do not edit set TZData(:America/Curacao) { {-9223372036854775808 -16547 0 LMT} | | | 1 2 3 4 5 6 7 | # created by tools/tclZIC.tcl - do not edit set TZData(:America/Curacao) { {-9223372036854775808 -16547 0 LMT} {-1826738653 -16200 0 -0430} {-157750200 -14400 0 AST} } |
Changes to library/tzdata/America/Danmarkshavn.
1 2 3 4 | # created by tools/tclZIC.tcl - do not edit set TZData(:America/Danmarkshavn) { {-9223372036854775808 -4480 0 LMT} | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 | # created by tools/tclZIC.tcl - do not edit set TZData(:America/Danmarkshavn) { {-9223372036854775808 -4480 0 LMT} {-1686091520 -10800 0 -03} {323845200 -7200 0 -02} {338950800 -10800 0 -03} {354675600 -7200 1 -02} {370400400 -10800 0 -03} {386125200 -7200 1 -02} {401850000 -10800 0 -03} {417574800 -7200 1 -02} {433299600 -10800 0 -03} {449024400 -7200 1 -02} {465354000 -10800 0 -03} {481078800 -7200 1 -02} {496803600 -10800 0 -03} {512528400 -7200 1 -02} {528253200 -10800 0 -03} {543978000 -7200 1 -02} {559702800 -10800 0 -03} {575427600 -7200 1 -02} {591152400 -10800 0 -03} {606877200 -7200 1 -02} {622602000 -10800 0 -03} {638326800 -7200 1 -02} {654656400 -10800 0 -03} {670381200 -7200 1 -02} {686106000 -10800 0 -03} {701830800 -7200 1 -02} {717555600 -10800 0 -03} {733280400 -7200 1 -02} {749005200 -10800 0 -03} {764730000 -7200 1 -02} {780454800 -10800 0 -03} {796179600 -7200 1 -02} {811904400 -10800 0 -03} {820465200 0 0 GMT} } |
Changes to library/tzdata/America/Eirunepe.
1 2 3 4 | # created by tools/tclZIC.tcl - do not edit set TZData(:America/Eirunepe) { {-9223372036854775808 -16768 0 LMT} | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 | # created by tools/tclZIC.tcl - do not edit set TZData(:America/Eirunepe) { {-9223372036854775808 -16768 0 LMT} {-1767208832 -18000 0 -05} {-1206950400 -14400 1 -04} {-1191355200 -18000 0 -05} {-1175367600 -14400 1 -04} {-1159819200 -18000 0 -05} {-633812400 -14400 1 -04} {-622062000 -18000 0 -05} {-602276400 -14400 1 -04} {-591825600 -18000 0 -05} {-570740400 -14400 1 -04} {-560203200 -18000 0 -05} {-539118000 -14400 1 -04} {-531345600 -18000 0 -05} {-191358000 -14400 1 -04} {-184190400 -18000 0 -05} {-155156400 -14400 1 -04} {-150062400 -18000 0 -05} {-128890800 -14400 1 -04} {-121118400 -18000 0 -05} {-99946800 -14400 1 -04} {-89582400 -18000 0 -05} {-68410800 -14400 1 -04} {-57960000 -18000 0 -05} {499755600 -14400 1 -04} {511243200 -18000 0 -05} {530600400 -14400 1 -04} {540273600 -18000 0 -05} {562136400 -14400 1 -04} {571204800 -18000 0 -05} {590040000 -18000 0 -05} {749192400 -18000 0 -05} {750834000 -14400 1 -04} {761716800 -18000 0 -05} {780206400 -18000 0 -05} {1214283600 -14400 0 -04} {1384056000 -18000 0 -05} } |
Changes to library/tzdata/America/Fortaleza.
1 2 3 4 | # created by tools/tclZIC.tcl - do not edit set TZData(:America/Fortaleza) { {-9223372036854775808 -9240 0 LMT} | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 | # created by tools/tclZIC.tcl - do not edit set TZData(:America/Fortaleza) { {-9223372036854775808 -9240 0 LMT} {-1767216360 -10800 0 -03} {-1206957600 -7200 1 -02} {-1191362400 -10800 0 -03} {-1175374800 -7200 1 -02} {-1159826400 -10800 0 -03} {-633819600 -7200 1 -02} {-622069200 -10800 0 -03} {-602283600 -7200 1 -02} {-591832800 -10800 0 -03} {-570747600 -7200 1 -02} {-560210400 -10800 0 -03} {-539125200 -7200 1 -02} {-531352800 -10800 0 -03} {-191365200 -7200 1 -02} {-184197600 -10800 0 -03} {-155163600 -7200 1 -02} {-150069600 -10800 0 -03} {-128898000 -7200 1 -02} {-121125600 -10800 0 -03} {-99954000 -7200 1 -02} {-89589600 -10800 0 -03} {-68418000 -7200 1 -02} {-57967200 -10800 0 -03} {499748400 -7200 1 -02} {511236000 -10800 0 -03} {530593200 -7200 1 -02} {540266400 -10800 0 -03} {562129200 -7200 1 -02} {571197600 -10800 0 -03} {592974000 -7200 1 -02} {602042400 -10800 0 -03} {624423600 -7200 1 -02} {634701600 -10800 0 -03} {653536800 -10800 0 -03} {938660400 -10800 0 -03} {938919600 -7200 1 -02} {951616800 -10800 0 -03} {970974000 -7200 1 -02} {972180000 -10800 0 -03} {1000350000 -10800 0 -03} {1003028400 -7200 1 -02} {1013911200 -10800 0 -03} {1033437600 -10800 0 -03} } |
Changes to library/tzdata/America/Godthab.
1 2 3 4 | # created by tools/tclZIC.tcl - do not edit set TZData(:America/Godthab) { {-9223372036854775808 -12416 0 LMT} | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 | # created by tools/tclZIC.tcl - do not edit set TZData(:America/Godthab) { {-9223372036854775808 -12416 0 LMT} {-1686083584 -10800 0 -03} {323845200 -7200 0 -02} {338950800 -10800 0 -03} {354675600 -7200 1 -02} {370400400 -10800 0 -03} {386125200 -7200 1 -02} {401850000 -10800 0 -03} {417574800 -7200 1 -02} {433299600 -10800 0 -03} {449024400 -7200 1 -02} {465354000 -10800 0 -03} {481078800 -7200 1 -02} {496803600 -10800 0 -03} {512528400 -7200 1 -02} {528253200 -10800 0 -03} {543978000 -7200 1 -02} {559702800 -10800 0 -03} {575427600 -7200 1 -02} {591152400 -10800 0 -03} {606877200 -7200 1 -02} {622602000 -10800 0 -03} {638326800 -7200 1 -02} {654656400 -10800 0 -03} {670381200 -7200 1 -02} {686106000 -10800 0 -03} {701830800 -7200 1 -02} {717555600 -10800 0 -03} {733280400 -7200 1 -02} {749005200 -10800 0 -03} {764730000 -7200 1 -02} {780454800 -10800 0 -03} {796179600 -7200 1 -02} {811904400 -10800 0 -03} {828234000 -7200 1 -02} {846378000 -10800 0 -03} {859683600 -7200 1 -02} {877827600 -10800 0 -03} {891133200 -7200 1 -02} {909277200 -10800 0 -03} {922582800 -7200 1 -02} {941331600 -10800 0 -03} {954032400 -7200 1 -02} {972781200 -10800 0 -03} {985482000 -7200 1 -02} {1004230800 -10800 0 -03} {1017536400 -7200 1 -02} {1035680400 -10800 0 -03} {1048986000 -7200 1 -02} {1067130000 -10800 0 -03} {1080435600 -7200 1 -02} {1099184400 -10800 0 -03} {1111885200 -7200 1 -02} {1130634000 -10800 0 -03} {1143334800 -7200 1 -02} {1162083600 -10800 0 -03} {1174784400 -7200 1 -02} {1193533200 -10800 0 -03} {1206838800 -7200 1 -02} {1224982800 -10800 0 -03} {1238288400 -7200 1 -02} {1256432400 -10800 0 -03} {1269738000 -7200 1 -02} {1288486800 -10800 0 -03} {1301187600 -7200 1 -02} {1319936400 -10800 0 -03} {1332637200 -7200 1 -02} {1351386000 -10800 0 -03} {1364691600 -7200 1 -02} {1382835600 -10800 0 -03} {1396141200 -7200 1 -02} {1414285200 -10800 0 -03} {1427590800 -7200 1 -02} {1445734800 -10800 0 -03} {1459040400 -7200 1 -02} {1477789200 -10800 0 -03} {1490490000 -7200 1 -02} {1509238800 -10800 0 -03} {1521939600 -7200 1 -02} {1540688400 -10800 0 -03} {1553994000 -7200 1 -02} {1572138000 -10800 0 -03} {1585443600 -7200 1 -02} {1603587600 -10800 0 -03} {1616893200 -7200 1 -02} {1635642000 -10800 0 -03} {1648342800 -7200 1 -02} {1667091600 -10800 0 -03} {1679792400 -7200 1 -02} {1698541200 -10800 0 -03} {1711846800 -7200 1 -02} {1729990800 -10800 0 -03} {1743296400 -7200 1 -02} {1761440400 -10800 0 -03} {1774746000 -7200 1 -02} {1792890000 -10800 0 -03} {1806195600 -7200 1 -02} {1824944400 -10800 0 -03} {1837645200 -7200 1 -02} {1856394000 -10800 0 -03} {1869094800 -7200 1 -02} {1887843600 -10800 0 -03} {1901149200 -7200 1 -02} {1919293200 -10800 0 -03} {1932598800 -7200 1 -02} {1950742800 -10800 0 -03} {1964048400 -7200 1 -02} {1982797200 -10800 0 -03} {1995498000 -7200 1 -02} {2014246800 -10800 0 -03} {2026947600 -7200 1 -02} {2045696400 -10800 0 -03} {2058397200 -7200 1 -02} {2077146000 -10800 0 -03} {2090451600 -7200 1 -02} {2108595600 -10800 0 -03} {2121901200 -7200 1 -02} {2140045200 -10800 0 -03} {2153350800 -7200 1 -02} {2172099600 -10800 0 -03} {2184800400 -7200 1 -02} {2203549200 -10800 0 -03} {2216250000 -7200 1 -02} {2234998800 -10800 0 -03} {2248304400 -7200 1 -02} {2266448400 -10800 0 -03} {2279754000 -7200 1 -02} {2297898000 -10800 0 -03} {2311203600 -7200 1 -02} {2329347600 -10800 0 -03} {2342653200 -7200 1 -02} {2361402000 -10800 0 -03} {2374102800 -7200 1 -02} {2392851600 -10800 0 -03} {2405552400 -7200 1 -02} {2424301200 -10800 0 -03} {2437606800 -7200 1 -02} {2455750800 -10800 0 -03} {2469056400 -7200 1 -02} {2487200400 -10800 0 -03} {2500506000 -7200 1 -02} {2519254800 -10800 0 -03} {2531955600 -7200 1 -02} {2550704400 -10800 0 -03} {2563405200 -7200 1 -02} {2582154000 -10800 0 -03} {2595459600 -7200 1 -02} {2613603600 -10800 0 -03} {2626909200 -7200 1 -02} {2645053200 -10800 0 -03} {2658358800 -7200 1 -02} {2676502800 -10800 0 -03} {2689808400 -7200 1 -02} {2708557200 -10800 0 -03} {2721258000 -7200 1 -02} {2740006800 -10800 0 -03} {2752707600 -7200 1 -02} {2771456400 -10800 0 -03} {2784762000 -7200 1 -02} {2802906000 -10800 0 -03} {2816211600 -7200 1 -02} {2834355600 -10800 0 -03} {2847661200 -7200 1 -02} {2866410000 -10800 0 -03} {2879110800 -7200 1 -02} {2897859600 -10800 0 -03} {2910560400 -7200 1 -02} {2929309200 -10800 0 -03} {2942010000 -7200 1 -02} {2960758800 -10800 0 -03} {2974064400 -7200 1 -02} {2992208400 -10800 0 -03} {3005514000 -7200 1 -02} {3023658000 -10800 0 -03} {3036963600 -7200 1 -02} {3055712400 -10800 0 -03} {3068413200 -7200 1 -02} {3087162000 -10800 0 -03} {3099862800 -7200 1 -02} {3118611600 -10800 0 -03} {3131917200 -7200 1 -02} {3150061200 -10800 0 -03} {3163366800 -7200 1 -02} {3181510800 -10800 0 -03} {3194816400 -7200 1 -02} {3212960400 -10800 0 -03} {3226266000 -7200 1 -02} {3245014800 -10800 0 -03} {3257715600 -7200 1 -02} {3276464400 -10800 0 -03} {3289165200 -7200 1 -02} {3307914000 -10800 0 -03} {3321219600 -7200 1 -02} {3339363600 -10800 0 -03} {3352669200 -7200 1 -02} {3370813200 -10800 0 -03} {3384118800 -7200 1 -02} {3402867600 -10800 0 -03} {3415568400 -7200 1 -02} {3434317200 -10800 0 -03} {3447018000 -7200 1 -02} {3465766800 -10800 0 -03} {3479072400 -7200 1 -02} {3497216400 -10800 0 -03} {3510522000 -7200 1 -02} {3528666000 -10800 0 -03} {3541971600 -7200 1 -02} {3560115600 -10800 0 -03} {3573421200 -7200 1 -02} {3592170000 -10800 0 -03} {3604870800 -7200 1 -02} {3623619600 -10800 0 -03} {3636320400 -7200 1 -02} {3655069200 -10800 0 -03} {3668374800 -7200 1 -02} {3686518800 -10800 0 -03} {3699824400 -7200 1 -02} {3717968400 -10800 0 -03} {3731274000 -7200 1 -02} {3750022800 -10800 0 -03} {3762723600 -7200 1 -02} {3781472400 -10800 0 -03} {3794173200 -7200 1 -02} {3812922000 -10800 0 -03} {3825622800 -7200 1 -02} {3844371600 -10800 0 -03} {3857677200 -7200 1 -02} {3875821200 -10800 0 -03} {3889126800 -7200 1 -02} {3907270800 -10800 0 -03} {3920576400 -7200 1 -02} {3939325200 -10800 0 -03} {3952026000 -7200 1 -02} {3970774800 -10800 0 -03} {3983475600 -7200 1 -02} {4002224400 -10800 0 -03} {4015530000 -7200 1 -02} {4033674000 -10800 0 -03} {4046979600 -7200 1 -02} {4065123600 -10800 0 -03} {4078429200 -7200 1 -02} {4096573200 -10800 0 -03} } |
Changes to library/tzdata/America/Guayaquil.
1 2 3 4 5 | # created by tools/tclZIC.tcl - do not edit set TZData(:America/Guayaquil) { {-9223372036854775808 -19160 0 LMT} {-2524502440 -18840 0 QMT} | | > > | 1 2 3 4 5 6 7 8 9 | # created by tools/tclZIC.tcl - do not edit set TZData(:America/Guayaquil) { {-9223372036854775808 -19160 0 LMT} {-2524502440 -18840 0 QMT} {-1230749160 -18000 0 -05} {722926800 -14400 1 -04} {728884800 -18000 0 -05} } |
Changes to library/tzdata/America/Guyana.
1 2 3 4 | # created by tools/tclZIC.tcl - do not edit set TZData(:America/Guyana) { {-9223372036854775808 -13960 0 LMT} | | < | | | 1 2 3 4 5 6 7 8 | # created by tools/tclZIC.tcl - do not edit set TZData(:America/Guyana) { {-9223372036854775808 -13960 0 LMT} {-1730578040 -13500 0 -0345} {176010300 -10800 0 -03} {662698800 -14400 0 -04} } |
Changes to library/tzdata/America/La_Paz.
1 2 3 4 5 6 | # created by tools/tclZIC.tcl - do not edit set TZData(:America/La_Paz) { {-9223372036854775808 -16356 0 LMT} {-2524505244 -16356 0 CMT} {-1205954844 -12756 1 BOST} | | | 1 2 3 4 5 6 7 8 | # created by tools/tclZIC.tcl - do not edit set TZData(:America/La_Paz) { {-9223372036854775808 -16356 0 LMT} {-2524505244 -16356 0 CMT} {-1205954844 -12756 1 BOST} {-1192307244 -14400 0 -04} } |
Changes to library/tzdata/America/Lima.
1 2 3 4 5 | # created by tools/tclZIC.tcl - do not edit set TZData(:America/Lima) { {-9223372036854775808 -18492 0 LMT} {-2524503108 -18516 0 LMT} | | | | | | | | | | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | # created by tools/tclZIC.tcl - do not edit set TZData(:America/Lima) { {-9223372036854775808 -18492 0 LMT} {-2524503108 -18516 0 LMT} {-1938538284 -14400 0 -04} {-1002052800 -18000 0 -05} {-986756400 -14400 1 -04} {-971035200 -18000 0 -05} {-955306800 -14400 1 -04} {-939585600 -18000 0 -05} {512712000 -18000 0 -05} {544248000 -18000 0 -05} {638942400 -18000 0 -05} {765172800 -18000 0 -05} } |
Changes to library/tzdata/America/Maceio.
1 2 3 4 | # created by tools/tclZIC.tcl - do not edit set TZData(:America/Maceio) { {-9223372036854775808 -8572 0 LMT} | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 | # created by tools/tclZIC.tcl - do not edit set TZData(:America/Maceio) { {-9223372036854775808 -8572 0 LMT} {-1767217028 -10800 0 -03} {-1206957600 -7200 1 -02} {-1191362400 -10800 0 -03} {-1175374800 -7200 1 -02} {-1159826400 -10800 0 -03} {-633819600 -7200 1 -02} {-622069200 -10800 0 -03} {-602283600 -7200 1 -02} {-591832800 -10800 0 -03} {-570747600 -7200 1 -02} {-560210400 -10800 0 -03} {-539125200 -7200 1 -02} {-531352800 -10800 0 -03} {-191365200 -7200 1 -02} {-184197600 -10800 0 -03} {-155163600 -7200 1 -02} {-150069600 -10800 0 -03} {-128898000 -7200 1 -02} {-121125600 -10800 0 -03} {-99954000 -7200 1 -02} {-89589600 -10800 0 -03} {-68418000 -7200 1 -02} {-57967200 -10800 0 -03} {499748400 -7200 1 -02} {511236000 -10800 0 -03} {530593200 -7200 1 -02} {540266400 -10800 0 -03} {562129200 -7200 1 -02} {571197600 -10800 0 -03} {592974000 -7200 1 -02} {602042400 -10800 0 -03} {624423600 -7200 1 -02} {634701600 -10800 0 -03} {653536800 -10800 0 -03} {813553200 -10800 0 -03} {813726000 -7200 1 -02} {824004000 -10800 0 -03} {841802400 -10800 0 -03} {938660400 -10800 0 -03} {938919600 -7200 1 -02} {951616800 -10800 0 -03} {970974000 -7200 1 -02} {972180000 -10800 0 -03} {1000350000 -10800 0 -03} {1003028400 -7200 1 -02} {1013911200 -10800 0 -03} {1033437600 -10800 0 -03} } |
Changes to library/tzdata/America/Manaus.
1 2 3 4 | # created by tools/tclZIC.tcl - do not edit set TZData(:America/Manaus) { {-9223372036854775808 -14404 0 LMT} | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 | # created by tools/tclZIC.tcl - do not edit set TZData(:America/Manaus) { {-9223372036854775808 -14404 0 LMT} {-1767211196 -14400 0 -04} {-1206954000 -10800 1 -03} {-1191358800 -14400 0 -04} {-1175371200 -10800 1 -03} {-1159822800 -14400 0 -04} {-633816000 -10800 1 -03} {-622065600 -14400 0 -04} {-602280000 -10800 1 -03} {-591829200 -14400 0 -04} {-570744000 -10800 1 -03} {-560206800 -14400 0 -04} {-539121600 -10800 1 -03} {-531349200 -14400 0 -04} {-191361600 -10800 1 -03} {-184194000 -14400 0 -04} {-155160000 -10800 1 -03} {-150066000 -14400 0 -04} {-128894400 -10800 1 -03} {-121122000 -14400 0 -04} {-99950400 -10800 1 -03} {-89586000 -14400 0 -04} {-68414400 -10800 1 -03} {-57963600 -14400 0 -04} {499752000 -10800 1 -03} {511239600 -14400 0 -04} {530596800 -10800 1 -03} {540270000 -14400 0 -04} {562132800 -10800 1 -03} {571201200 -14400 0 -04} {590036400 -14400 0 -04} {749188800 -14400 0 -04} {750830400 -10800 1 -03} {761713200 -14400 0 -04} {780202800 -14400 0 -04} } |
Changes to library/tzdata/America/Miquelon.
1 2 3 4 5 | # created by tools/tclZIC.tcl - do not edit set TZData(:America/Miquelon) { {-9223372036854775808 -13480 0 LMT} {-1850328920 -14400 0 AST} | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 | # created by tools/tclZIC.tcl - do not edit set TZData(:America/Miquelon) { {-9223372036854775808 -13480 0 LMT} {-1850328920 -14400 0 AST} {326001600 -10800 0 -03} {536468400 -10800 0 -02} {544597200 -7200 1 -02} {562132800 -10800 0 -02} {576046800 -7200 1 -02} {594187200 -10800 0 -02} {607496400 -7200 1 -02} {625636800 -10800 0 -02} {638946000 -7200 1 -02} {657086400 -10800 0 -02} {671000400 -7200 1 -02} {688536000 -10800 0 -02} {702450000 -7200 1 -02} {719985600 -10800 0 -02} {733899600 -7200 1 -02} {752040000 -10800 0 -02} {765349200 -7200 1 -02} {783489600 -10800 0 -02} {796798800 -7200 1 -02} {814939200 -10800 0 -02} {828853200 -7200 1 -02} {846388800 -10800 0 -02} {860302800 -7200 1 -02} {877838400 -10800 0 -02} {891752400 -7200 1 -02} {909288000 -10800 0 -02} {923202000 -7200 1 -02} {941342400 -10800 0 -02} {954651600 -7200 1 -02} {972792000 -10800 0 -02} {986101200 -7200 1 -02} {1004241600 -10800 0 -02} {1018155600 -7200 1 -02} {1035691200 -10800 0 -02} {1049605200 -7200 1 -02} {1067140800 -10800 0 -02} {1081054800 -7200 1 -02} {1099195200 -10800 0 -02} {1112504400 -7200 1 -02} {1130644800 -10800 0 -02} {1143954000 -7200 1 -02} {1162094400 -10800 0 -02} {1173589200 -7200 1 -02} {1194148800 -10800 0 -02} {1205038800 -7200 1 -02} {1225598400 -10800 0 -02} {1236488400 -7200 1 -02} {1257048000 -10800 0 -02} {1268542800 -7200 1 -02} {1289102400 -10800 0 -02} {1299992400 -7200 1 -02} {1320552000 -10800 0 -02} {1331442000 -7200 1 -02} {1352001600 -10800 0 -02} {1362891600 -7200 1 -02} {1383451200 -10800 0 -02} {1394341200 -7200 1 -02} {1414900800 -10800 0 -02} {1425790800 -7200 1 -02} {1446350400 -10800 0 -02} {1457845200 -7200 1 -02} {1478404800 -10800 0 -02} {1489294800 -7200 1 -02} {1509854400 -10800 0 -02} {1520744400 -7200 1 -02} {1541304000 -10800 0 -02} {1552194000 -7200 1 -02} {1572753600 -10800 0 -02} {1583643600 -7200 1 -02} {1604203200 -10800 0 -02} {1615698000 -7200 1 -02} {1636257600 -10800 0 -02} {1647147600 -7200 1 -02} {1667707200 -10800 0 -02} {1678597200 -7200 1 -02} {1699156800 -10800 0 -02} {1710046800 -7200 1 -02} {1730606400 -10800 0 -02} {1741496400 -7200 1 -02} {1762056000 -10800 0 -02} {1772946000 -7200 1 -02} {1793505600 -10800 0 -02} {1805000400 -7200 1 -02} {1825560000 -10800 0 -02} {1836450000 -7200 1 -02} {1857009600 -10800 0 -02} {1867899600 -7200 1 -02} {1888459200 -10800 0 -02} {1899349200 -7200 1 -02} {1919908800 -10800 0 -02} {1930798800 -7200 1 -02} {1951358400 -10800 0 -02} {1962853200 -7200 1 -02} {1983412800 -10800 0 -02} {1994302800 -7200 1 -02} {2014862400 -10800 0 -02} {2025752400 -7200 1 -02} {2046312000 -10800 0 -02} {2057202000 -7200 1 -02} {2077761600 -10800 0 -02} {2088651600 -7200 1 -02} {2109211200 -10800 0 -02} {2120101200 -7200 1 -02} {2140660800 -10800 0 -02} {2152155600 -7200 1 -02} {2172715200 -10800 0 -02} {2183605200 -7200 1 -02} {2204164800 -10800 0 -02} {2215054800 -7200 1 -02} {2235614400 -10800 0 -02} {2246504400 -7200 1 -02} {2267064000 -10800 0 -02} {2277954000 -7200 1 -02} {2298513600 -10800 0 -02} {2309403600 -7200 1 -02} {2329963200 -10800 0 -02} {2341458000 -7200 1 -02} {2362017600 -10800 0 -02} {2372907600 -7200 1 -02} {2393467200 -10800 0 -02} {2404357200 -7200 1 -02} {2424916800 -10800 0 -02} {2435806800 -7200 1 -02} {2456366400 -10800 0 -02} {2467256400 -7200 1 -02} {2487816000 -10800 0 -02} {2499310800 -7200 1 -02} {2519870400 -10800 0 -02} {2530760400 -7200 1 -02} {2551320000 -10800 0 -02} {2562210000 -7200 1 -02} {2582769600 -10800 0 -02} {2593659600 -7200 1 -02} {2614219200 -10800 0 -02} {2625109200 -7200 1 -02} {2645668800 -10800 0 -02} {2656558800 -7200 1 -02} {2677118400 -10800 0 -02} {2688613200 -7200 1 -02} {2709172800 -10800 0 -02} {2720062800 -7200 1 -02} {2740622400 -10800 0 -02} {2751512400 -7200 1 -02} {2772072000 -10800 0 -02} {2782962000 -7200 1 -02} {2803521600 -10800 0 -02} {2814411600 -7200 1 -02} {2834971200 -10800 0 -02} {2846466000 -7200 1 -02} {2867025600 -10800 0 -02} {2877915600 -7200 1 -02} {2898475200 -10800 0 -02} {2909365200 -7200 1 -02} {2929924800 -10800 0 -02} {2940814800 -7200 1 -02} {2961374400 -10800 0 -02} {2972264400 -7200 1 -02} {2992824000 -10800 0 -02} {3003714000 -7200 1 -02} {3024273600 -10800 0 -02} {3035768400 -7200 1 -02} {3056328000 -10800 0 -02} {3067218000 -7200 1 -02} {3087777600 -10800 0 -02} {3098667600 -7200 1 -02} {3119227200 -10800 0 -02} {3130117200 -7200 1 -02} {3150676800 -10800 0 -02} {3161566800 -7200 1 -02} {3182126400 -10800 0 -02} {3193016400 -7200 1 -02} {3213576000 -10800 0 -02} {3225070800 -7200 1 -02} {3245630400 -10800 0 -02} {3256520400 -7200 1 -02} {3277080000 -10800 0 -02} {3287970000 -7200 1 -02} {3308529600 -10800 0 -02} {3319419600 -7200 1 -02} {3339979200 -10800 0 -02} {3350869200 -7200 1 -02} {3371428800 -10800 0 -02} {3382923600 -7200 1 -02} {3403483200 -10800 0 -02} {3414373200 -7200 1 -02} {3434932800 -10800 0 -02} {3445822800 -7200 1 -02} {3466382400 -10800 0 -02} {3477272400 -7200 1 -02} {3497832000 -10800 0 -02} {3508722000 -7200 1 -02} {3529281600 -10800 0 -02} {3540171600 -7200 1 -02} {3560731200 -10800 0 -02} {3572226000 -7200 1 -02} {3592785600 -10800 0 -02} {3603675600 -7200 1 -02} {3624235200 -10800 0 -02} {3635125200 -7200 1 -02} {3655684800 -10800 0 -02} {3666574800 -7200 1 -02} {3687134400 -10800 0 -02} {3698024400 -7200 1 -02} {3718584000 -10800 0 -02} {3730078800 -7200 1 -02} {3750638400 -10800 0 -02} {3761528400 -7200 1 -02} {3782088000 -10800 0 -02} {3792978000 -7200 1 -02} {3813537600 -10800 0 -02} {3824427600 -7200 1 -02} {3844987200 -10800 0 -02} {3855877200 -7200 1 -02} {3876436800 -10800 0 -02} {3887326800 -7200 1 -02} {3907886400 -10800 0 -02} {3919381200 -7200 1 -02} {3939940800 -10800 0 -02} {3950830800 -7200 1 -02} {3971390400 -10800 0 -02} {3982280400 -7200 1 -02} {4002840000 -10800 0 -02} {4013730000 -7200 1 -02} {4034289600 -10800 0 -02} {4045179600 -7200 1 -02} {4065739200 -10800 0 -02} {4076629200 -7200 1 -02} {4097188800 -10800 0 -02} } |
Changes to library/tzdata/America/Montevideo.
1 2 3 4 5 | # created by tools/tclZIC.tcl - do not edit set TZData(:America/Montevideo) { {-9223372036854775808 -13484 0 LMT} {-2256668116 -13484 0 MMT} | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | > | | | | | | > | | > | > | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 | # created by tools/tclZIC.tcl - do not edit set TZData(:America/Montevideo) { {-9223372036854775808 -13484 0 LMT} {-2256668116 -13484 0 MMT} {-1567455316 -12600 0 -0330} {-1459542600 -10800 1 -03} {-1443819600 -12600 0 -0330} {-1428006600 -10800 1 -03} {-1412283600 -12600 0 -0330} {-1396470600 -10800 1 -03} {-1380747600 -12600 0 -0330} {-1141590600 -10800 1 -03} {-1128286800 -12600 0 -0330} {-1110141000 -10800 1 -03} {-1096837200 -12600 0 -0330} {-1078691400 -10800 1 -03} {-1065387600 -12600 0 -0330} {-1046637000 -10800 1 -03} {-1033938000 -12600 0 -0330} {-1015187400 -10800 1 -03} {-1002488400 -12600 0 -0330} {-983737800 -10800 1 -03} {-971038800 -12600 0 -0330} {-952288200 -10800 1 -03} {-938984400 -12600 0 -0330} {-920838600 -10800 1 -03} {-907534800 -12600 0 -0330} {-896819400 -10800 1 -03} {-853623000 -10800 0 -03} {-853621200 -7200 1 -02} {-845848800 -10800 0 -03} {-334789200 -7200 1 -02} {-319672800 -10800 0 -03} {-314226000 -7200 1 -02} {-309996000 -10800 0 -03} {-149720400 -7200 1 -02} {-134604000 -10800 0 -03} {-118270800 -7200 1 -02} {-100044000 -10800 0 -03} {-86821200 -7200 1 -02} {-68508000 -10800 0 -03} {-63147600 -10800 0 -03} {-50446800 -9000 1 -0230} {-34119000 -10800 0 -03} {-18910800 -9000 1 -0230} {-2583000 -10800 0 -03} {12625200 -9000 1 -0230} {28953000 -10800 0 -03} {31546800 -10800 0 -03} {72932400 -7200 1 -02} {82692000 -10800 0 -03} {126241200 -10800 0 -03} {132116400 -9000 1 -0230} {156909600 -9000 0 -02} {156911400 -7200 1 -02} {212983200 -10800 0 -03} {250052400 -7200 1 -02} {260244000 -10800 0 -03} {307594800 -7200 1 -02} {325994400 -10800 0 -03} {566449200 -7200 1 -02} {574308000 -10800 0 -03} {597812400 -7200 1 -02} {605671200 -10800 0 -03} {625633200 -7200 1 -02} {636516000 -10800 0 -03} {656478000 -7200 1 -02} {667965600 -10800 0 -03} {688532400 -7200 1 -02} {699415200 -10800 0 -03} {719377200 -7200 1 -02} {730864800 -10800 0 -03} {1095562800 -7200 1 -02} {1111896000 -10800 0 -03} {1128834000 -7200 1 -02} {1142136000 -10800 0 -03} {1159678800 -7200 1 -02} {1173585600 -10800 0 -03} {1191733200 -7200 1 -02} {1205035200 -10800 0 -03} {1223182800 -7200 1 -02} {1236484800 -10800 0 -03} {1254632400 -7200 1 -02} {1268539200 -10800 0 -03} {1286082000 -7200 1 -02} {1299988800 -10800 0 -03} {1317531600 -7200 1 -02} {1331438400 -10800 0 -03} {1349586000 -7200 1 -02} {1362888000 -10800 0 -03} {1381035600 -7200 1 -02} {1394337600 -10800 0 -03} {1412485200 -7200 1 -02} {1425787200 -10800 0 -03} } |
Changes to library/tzdata/America/Noronha.
1 2 3 4 | # created by tools/tclZIC.tcl - do not edit set TZData(:America/Noronha) { {-9223372036854775808 -7780 0 LMT} | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 | # created by tools/tclZIC.tcl - do not edit set TZData(:America/Noronha) { {-9223372036854775808 -7780 0 LMT} {-1767217820 -7200 0 -02} {-1206961200 -3600 1 -01} {-1191366000 -7200 0 -02} {-1175378400 -3600 1 -01} {-1159830000 -7200 0 -02} {-633823200 -3600 1 -01} {-622072800 -7200 0 -02} {-602287200 -3600 1 -01} {-591836400 -7200 0 -02} {-570751200 -3600 1 -01} {-560214000 -7200 0 -02} {-539128800 -3600 1 -01} {-531356400 -7200 0 -02} {-191368800 -3600 1 -01} {-184201200 -7200 0 -02} {-155167200 -3600 1 -01} {-150073200 -7200 0 -02} {-128901600 -3600 1 -01} {-121129200 -7200 0 -02} {-99957600 -3600 1 -01} {-89593200 -7200 0 -02} {-68421600 -3600 1 -01} {-57970800 -7200 0 -02} {499744800 -3600 1 -01} {511232400 -7200 0 -02} {530589600 -3600 1 -01} {540262800 -7200 0 -02} {562125600 -3600 1 -01} {571194000 -7200 0 -02} {592970400 -3600 1 -01} {602038800 -7200 0 -02} {624420000 -3600 1 -01} {634698000 -7200 0 -02} {653533200 -7200 0 -02} {938656800 -7200 0 -02} {938916000 -3600 1 -01} {951613200 -7200 0 -02} {970970400 -3600 1 -01} {971571600 -7200 0 -02} {1000346400 -7200 0 -02} {1003024800 -3600 1 -01} {1013907600 -7200 0 -02} {1033434000 -7200 0 -02} } |
Changes to library/tzdata/America/Paramaribo.
1 2 3 4 5 6 | # created by tools/tclZIC.tcl - do not edit set TZData(:America/Paramaribo) { {-9223372036854775808 -13240 0 LMT} {-1861906760 -13252 0 PMT} {-1104524348 -13236 0 PMT} | | < | | 1 2 3 4 5 6 7 8 9 | # created by tools/tclZIC.tcl - do not edit set TZData(:America/Paramaribo) { {-9223372036854775808 -13240 0 LMT} {-1861906760 -13252 0 PMT} {-1104524348 -13236 0 PMT} {-765317964 -12600 0 -0330} {465449400 -10800 0 -03} } |
Changes to library/tzdata/America/Port-au-Prince.
︙ | ︙ | |||
42 43 44 45 46 47 48 49 | {1352008800 -18000 0 EST} {1362898800 -14400 1 EDT} {1383458400 -18000 0 EST} {1394348400 -14400 1 EDT} {1414908000 -18000 0 EST} {1425798000 -14400 1 EDT} {1446357600 -18000 0 EST} } | > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 | {1352008800 -18000 0 EST} {1362898800 -14400 1 EDT} {1383458400 -18000 0 EST} {1394348400 -14400 1 EDT} {1414908000 -18000 0 EST} {1425798000 -14400 1 EDT} {1446357600 -18000 0 EST} {1489302000 -14400 1 EDT} {1509861600 -18000 0 EST} {1520751600 -14400 1 EDT} {1541311200 -18000 0 EST} {1552201200 -14400 1 EDT} {1572760800 -18000 0 EST} {1583650800 -14400 1 EDT} {1604210400 -18000 0 EST} {1615705200 -14400 1 EDT} {1636264800 -18000 0 EST} {1647154800 -14400 1 EDT} {1667714400 -18000 0 EST} {1678604400 -14400 1 EDT} {1699164000 -18000 0 EST} {1710054000 -14400 1 EDT} {1730613600 -18000 0 EST} {1741503600 -14400 1 EDT} {1762063200 -18000 0 EST} {1772953200 -14400 1 EDT} {1793512800 -18000 0 EST} {1805007600 -14400 1 EDT} {1825567200 -18000 0 EST} {1836457200 -14400 1 EDT} {1857016800 -18000 0 EST} {1867906800 -14400 1 EDT} {1888466400 -18000 0 EST} {1899356400 -14400 1 EDT} {1919916000 -18000 0 EST} {1930806000 -14400 1 EDT} {1951365600 -18000 0 EST} {1962860400 -14400 1 EDT} {1983420000 -18000 0 EST} {1994310000 -14400 1 EDT} {2014869600 -18000 0 EST} {2025759600 -14400 1 EDT} {2046319200 -18000 0 EST} {2057209200 -14400 1 EDT} {2077768800 -18000 0 EST} {2088658800 -14400 1 EDT} {2109218400 -18000 0 EST} {2120108400 -14400 1 EDT} {2140668000 -18000 0 EST} {2152162800 -14400 1 EDT} {2172722400 -18000 0 EST} {2183612400 -14400 1 EDT} {2204172000 -18000 0 EST} {2215062000 -14400 1 EDT} {2235621600 -18000 0 EST} {2246511600 -14400 1 EDT} {2267071200 -18000 0 EST} {2277961200 -14400 1 EDT} {2298520800 -18000 0 EST} {2309410800 -14400 1 EDT} {2329970400 -18000 0 EST} {2341465200 -14400 1 EDT} {2362024800 -18000 0 EST} {2372914800 -14400 1 EDT} {2393474400 -18000 0 EST} {2404364400 -14400 1 EDT} {2424924000 -18000 0 EST} {2435814000 -14400 1 EDT} {2456373600 -18000 0 EST} {2467263600 -14400 1 EDT} {2487823200 -18000 0 EST} {2499318000 -14400 1 EDT} {2519877600 -18000 0 EST} {2530767600 -14400 1 EDT} {2551327200 -18000 0 EST} {2562217200 -14400 1 EDT} {2582776800 -18000 0 EST} {2593666800 -14400 1 EDT} {2614226400 -18000 0 EST} {2625116400 -14400 1 EDT} {2645676000 -18000 0 EST} {2656566000 -14400 1 EDT} {2677125600 -18000 0 EST} {2688620400 -14400 1 EDT} {2709180000 -18000 0 EST} {2720070000 -14400 1 EDT} {2740629600 -18000 0 EST} {2751519600 -14400 1 EDT} {2772079200 -18000 0 EST} {2782969200 -14400 1 EDT} {2803528800 -18000 0 EST} {2814418800 -14400 1 EDT} {2834978400 -18000 0 EST} {2846473200 -14400 1 EDT} {2867032800 -18000 0 EST} {2877922800 -14400 1 EDT} {2898482400 -18000 0 EST} {2909372400 -14400 1 EDT} {2929932000 -18000 0 EST} {2940822000 -14400 1 EDT} {2961381600 -18000 0 EST} {2972271600 -14400 1 EDT} {2992831200 -18000 0 EST} {3003721200 -14400 1 EDT} {3024280800 -18000 0 EST} {3035775600 -14400 1 EDT} {3056335200 -18000 0 EST} {3067225200 -14400 1 EDT} {3087784800 -18000 0 EST} {3098674800 -14400 1 EDT} {3119234400 -18000 0 EST} {3130124400 -14400 1 EDT} {3150684000 -18000 0 EST} {3161574000 -14400 1 EDT} {3182133600 -18000 0 EST} {3193023600 -14400 1 EDT} {3213583200 -18000 0 EST} {3225078000 -14400 1 EDT} {3245637600 -18000 0 EST} {3256527600 -14400 1 EDT} {3277087200 -18000 0 EST} {3287977200 -14400 1 EDT} {3308536800 -18000 0 EST} {3319426800 -14400 1 EDT} {3339986400 -18000 0 EST} {3350876400 -14400 1 EDT} {3371436000 -18000 0 EST} {3382930800 -14400 1 EDT} {3403490400 -18000 0 EST} {3414380400 -14400 1 EDT} {3434940000 -18000 0 EST} {3445830000 -14400 1 EDT} {3466389600 -18000 0 EST} {3477279600 -14400 1 EDT} {3497839200 -18000 0 EST} {3508729200 -14400 1 EDT} {3529288800 -18000 0 EST} {3540178800 -14400 1 EDT} {3560738400 -18000 0 EST} {3572233200 -14400 1 EDT} {3592792800 -18000 0 EST} {3603682800 -14400 1 EDT} {3624242400 -18000 0 EST} {3635132400 -14400 1 EDT} {3655692000 -18000 0 EST} {3666582000 -14400 1 EDT} {3687141600 -18000 0 EST} {3698031600 -14400 1 EDT} {3718591200 -18000 0 EST} {3730086000 -14400 1 EDT} {3750645600 -18000 0 EST} {3761535600 -14400 1 EDT} {3782095200 -18000 0 EST} {3792985200 -14400 1 EDT} {3813544800 -18000 0 EST} {3824434800 -14400 1 EDT} {3844994400 -18000 0 EST} {3855884400 -14400 1 EDT} {3876444000 -18000 0 EST} {3887334000 -14400 1 EDT} {3907893600 -18000 0 EST} {3919388400 -14400 1 EDT} {3939948000 -18000 0 EST} {3950838000 -14400 1 EDT} {3971397600 -18000 0 EST} {3982287600 -14400 1 EDT} {4002847200 -18000 0 EST} {4013737200 -14400 1 EDT} {4034296800 -18000 0 EST} {4045186800 -14400 1 EDT} {4065746400 -18000 0 EST} {4076636400 -14400 1 EDT} {4097196000 -18000 0 EST} } |
Changes to library/tzdata/America/Porto_Velho.
1 2 3 4 | # created by tools/tclZIC.tcl - do not edit set TZData(:America/Porto_Velho) { {-9223372036854775808 -15336 0 LMT} | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 | # created by tools/tclZIC.tcl - do not edit set TZData(:America/Porto_Velho) { {-9223372036854775808 -15336 0 LMT} {-1767210264 -14400 0 -04} {-1206954000 -10800 1 -03} {-1191358800 -14400 0 -04} {-1175371200 -10800 1 -03} {-1159822800 -14400 0 -04} {-633816000 -10800 1 -03} {-622065600 -14400 0 -04} {-602280000 -10800 1 -03} {-591829200 -14400 0 -04} {-570744000 -10800 1 -03} {-560206800 -14400 0 -04} {-539121600 -10800 1 -03} {-531349200 -14400 0 -04} {-191361600 -10800 1 -03} {-184194000 -14400 0 -04} {-155160000 -10800 1 -03} {-150066000 -14400 0 -04} {-128894400 -10800 1 -03} {-121122000 -14400 0 -04} {-99950400 -10800 1 -03} {-89586000 -14400 0 -04} {-68414400 -10800 1 -03} {-57963600 -14400 0 -04} {499752000 -10800 1 -03} {511239600 -14400 0 -04} {530596800 -10800 1 -03} {540270000 -14400 0 -04} {562132800 -10800 1 -03} {571201200 -14400 0 -04} {590036400 -14400 0 -04} } |
Added library/tzdata/America/Punta_Arenas.
> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 | # created by tools/tclZIC.tcl - do not edit set TZData(:America/Punta_Arenas) { {-9223372036854775808 -17020 0 LMT} {-2524504580 -16966 0 SMT} {-1892661434 -18000 0 -05} {-1688410800 -16966 0 SMT} {-1619205434 -14400 0 -04} {-1593806400 -16966 0 SMT} {-1335986234 -18000 0 -05} {-1335985200 -14400 1 -04} {-1317585600 -18000 0 -05} {-1304362800 -14400 1 -04} {-1286049600 -18000 0 -05} {-1272826800 -14400 1 -04} {-1254513600 -18000 0 -05} {-1241290800 -14400 1 -04} {-1222977600 -18000 0 -05} {-1209754800 -14400 1 -04} {-1191355200 -18000 0 -05} {-1178132400 -14400 0 -04} {-870552000 -18000 0 -05} {-865278000 -14400 0 -04} {-718056000 -18000 0 -05} {-713649600 -14400 0 -04} {-36619200 -10800 1 -03} {-23922000 -14400 0 -04} {-3355200 -10800 1 -03} {7527600 -14400 0 -04} {24465600 -10800 1 -03} {37767600 -14400 0 -04} {55915200 -10800 1 -03} {69217200 -14400 0 -04} {87969600 -10800 1 -03} {100666800 -14400 0 -04} {118209600 -10800 1 -03} {132116400 -14400 0 -04} {150868800 -10800 1 -03} {163566000 -14400 0 -04} {182318400 -10800 1 -03} {195620400 -14400 0 -04} {213768000 -10800 1 -03} {227070000 -14400 0 -04} {245217600 -10800 1 -03} {258519600 -14400 0 -04} {277272000 -10800 1 -03} {289969200 -14400 0 -04} {308721600 -10800 1 -03} {321418800 -14400 0 -04} {340171200 -10800 1 -03} {353473200 -14400 0 -04} {371620800 -10800 1 -03} {384922800 -14400 0 -04} {403070400 -10800 1 -03} {416372400 -14400 0 -04} {434520000 -10800 1 -03} {447822000 -14400 0 -04} {466574400 -10800 1 -03} {479271600 -14400 0 -04} {498024000 -10800 1 -03} {510721200 -14400 0 -04} {529473600 -10800 1 -03} {545194800 -14400 0 -04} {560923200 -10800 1 -03} {574225200 -14400 0 -04} {592372800 -10800 1 -03} {605674800 -14400 0 -04} {624427200 -10800 1 -03} {637124400 -14400 0 -04} {653457600 -10800 1 -03} {668574000 -14400 0 -04} {687326400 -10800 1 -03} {700628400 -14400 0 -04} {718776000 -10800 1 -03} {732078000 -14400 0 -04} {750225600 -10800 1 -03} {763527600 -14400 0 -04} {781675200 -10800 1 -03} {794977200 -14400 0 -04} {813729600 -10800 1 -03} {826426800 -14400 0 -04} {845179200 -10800 1 -03} {859690800 -14400 0 -04} {876628800 -10800 1 -03} {889930800 -14400 0 -04} {906868800 -10800 1 -03} {923194800 -14400 0 -04} {939528000 -10800 1 -03} {952830000 -14400 0 -04} {971582400 -10800 1 -03} {984279600 -14400 0 -04} {1003032000 -10800 1 -03} {1015729200 -14400 0 -04} {1034481600 -10800 1 -03} {1047178800 -14400 0 -04} {1065931200 -10800 1 -03} {1079233200 -14400 0 -04} {1097380800 -10800 1 -03} {1110682800 -14400 0 -04} {1128830400 -10800 1 -03} {1142132400 -14400 0 -04} {1160884800 -10800 1 -03} {1173582000 -14400 0 -04} {1192334400 -10800 1 -03} {1206846000 -14400 0 -04} {1223784000 -10800 1 -03} {1237086000 -14400 0 -04} {1255233600 -10800 1 -03} {1270350000 -14400 0 -04} {1286683200 -10800 1 -03} {1304823600 -14400 0 -04} {1313899200 -10800 1 -03} {1335668400 -14400 0 -04} {1346558400 -10800 1 -03} {1367118000 -14400 0 -04} {1378612800 -10800 1 -03} {1398567600 -14400 0 -04} {1410062400 -10800 1 -03} {1463281200 -14400 0 -04} {1471147200 -10800 1 -03} {1480820400 -10800 0 -03} } |
Changes to library/tzdata/America/Recife.
1 2 3 4 | # created by tools/tclZIC.tcl - do not edit set TZData(:America/Recife) { {-9223372036854775808 -8376 0 LMT} | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 | # created by tools/tclZIC.tcl - do not edit set TZData(:America/Recife) { {-9223372036854775808 -8376 0 LMT} {-1767217224 -10800 0 -03} {-1206957600 -7200 1 -02} {-1191362400 -10800 0 -03} {-1175374800 -7200 1 -02} {-1159826400 -10800 0 -03} {-633819600 -7200 1 -02} {-622069200 -10800 0 -03} {-602283600 -7200 1 -02} {-591832800 -10800 0 -03} {-570747600 -7200 1 -02} {-560210400 -10800 0 -03} {-539125200 -7200 1 -02} {-531352800 -10800 0 -03} {-191365200 -7200 1 -02} {-184197600 -10800 0 -03} {-155163600 -7200 1 -02} {-150069600 -10800 0 -03} {-128898000 -7200 1 -02} {-121125600 -10800 0 -03} {-99954000 -7200 1 -02} {-89589600 -10800 0 -03} {-68418000 -7200 1 -02} {-57967200 -10800 0 -03} {499748400 -7200 1 -02} {511236000 -10800 0 -03} {530593200 -7200 1 -02} {540266400 -10800 0 -03} {562129200 -7200 1 -02} {571197600 -10800 0 -03} {592974000 -7200 1 -02} {602042400 -10800 0 -03} {624423600 -7200 1 -02} {634701600 -10800 0 -03} {653536800 -10800 0 -03} {938660400 -10800 0 -03} {938919600 -7200 1 -02} {951616800 -10800 0 -03} {970974000 -7200 1 -02} {971575200 -10800 0 -03} {1000350000 -10800 0 -03} {1003028400 -7200 1 -02} {1013911200 -10800 0 -03} {1033437600 -10800 0 -03} } |
Changes to library/tzdata/America/Rio_Branco.
1 2 3 4 | # created by tools/tclZIC.tcl - do not edit set TZData(:America/Rio_Branco) { {-9223372036854775808 -16272 0 LMT} | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 | # created by tools/tclZIC.tcl - do not edit set TZData(:America/Rio_Branco) { {-9223372036854775808 -16272 0 LMT} {-1767209328 -18000 0 -05} {-1206950400 -14400 1 -04} {-1191355200 -18000 0 -05} {-1175367600 -14400 1 -04} {-1159819200 -18000 0 -05} {-633812400 -14400 1 -04} {-622062000 -18000 0 -05} {-602276400 -14400 1 -04} {-591825600 -18000 0 -05} {-570740400 -14400 1 -04} {-560203200 -18000 0 -05} {-539118000 -14400 1 -04} {-531345600 -18000 0 -05} {-191358000 -14400 1 -04} {-184190400 -18000 0 -05} {-155156400 -14400 1 -04} {-150062400 -18000 0 -05} {-128890800 -14400 1 -04} {-121118400 -18000 0 -05} {-99946800 -14400 1 -04} {-89582400 -18000 0 -05} {-68410800 -14400 1 -04} {-57960000 -18000 0 -05} {499755600 -14400 1 -04} {511243200 -18000 0 -05} {530600400 -14400 1 -04} {540273600 -18000 0 -05} {562136400 -14400 1 -04} {571204800 -18000 0 -05} {590040000 -18000 0 -05} {1214283600 -14400 0 -04} {1384056000 -18000 0 -05} } |
Changes to library/tzdata/America/Santarem.
1 2 3 4 | # created by tools/tclZIC.tcl - do not edit set TZData(:America/Santarem) { {-9223372036854775808 -13128 0 LMT} | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 | # created by tools/tclZIC.tcl - do not edit set TZData(:America/Santarem) { {-9223372036854775808 -13128 0 LMT} {-1767212472 -14400 0 -04} {-1206954000 -10800 1 -03} {-1191358800 -14400 0 -04} {-1175371200 -10800 1 -03} {-1159822800 -14400 0 -04} {-633816000 -10800 1 -03} {-622065600 -14400 0 -04} {-602280000 -10800 1 -03} {-591829200 -14400 0 -04} {-570744000 -10800 1 -03} {-560206800 -14400 0 -04} {-539121600 -10800 1 -03} {-531349200 -14400 0 -04} {-191361600 -10800 1 -03} {-184194000 -14400 0 -04} {-155160000 -10800 1 -03} {-150066000 -14400 0 -04} {-128894400 -10800 1 -03} {-121122000 -14400 0 -04} {-99950400 -10800 1 -03} {-89586000 -14400 0 -04} {-68414400 -10800 1 -03} {-57963600 -14400 0 -04} {499752000 -10800 1 -03} {511239600 -14400 0 -04} {530596800 -10800 1 -03} {540270000 -14400 0 -04} {562132800 -10800 1 -03} {571201200 -14400 0 -04} {590036400 -14400 0 -04} {1214280000 -10800 0 -03} } |
Changes to library/tzdata/America/Santiago.
1 2 3 4 5 | # created by tools/tclZIC.tcl - do not edit set TZData(:America/Santiago) { {-9223372036854775808 -16966 0 LMT} {-2524504634 -16966 0 SMT} | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 | # created by tools/tclZIC.tcl - do not edit set TZData(:America/Santiago) { {-9223372036854775808 -16966 0 LMT} {-2524504634 -16966 0 SMT} {-1892661434 -18000 0 -05} {-1688410800 -16966 0 SMT} {-1619205434 -14400 0 -04} {-1593806400 -16966 0 SMT} {-1335986234 -18000 0 -05} {-1335985200 -14400 1 -04} {-1317585600 -18000 0 -05} {-1304362800 -14400 1 -04} {-1286049600 -18000 0 -05} {-1272826800 -14400 1 -04} {-1254513600 -18000 0 -05} {-1241290800 -14400 1 -04} {-1222977600 -18000 0 -05} {-1209754800 -14400 1 -04} {-1191355200 -18000 0 -05} {-1178132400 -14400 0 -04} {-870552000 -18000 0 -05} {-865278000 -14400 0 -04} {-740520000 -10800 1 -03} {-736376400 -14400 0 -04} {-718056000 -18000 0 -05} {-713649600 -14400 0 -04} {-36619200 -10800 1 -03} {-23922000 -14400 0 -04} {-3355200 -10800 1 -03} {7527600 -14400 0 -04} {24465600 -10800 1 -03} {37767600 -14400 0 -04} {55915200 -10800 1 -03} {69217200 -14400 0 -04} {87969600 -10800 1 -03} {100666800 -14400 0 -04} {118209600 -10800 1 -03} {132116400 -14400 0 -04} {150868800 -10800 1 -03} {163566000 -14400 0 -04} {182318400 -10800 1 -03} {195620400 -14400 0 -04} {213768000 -10800 1 -03} {227070000 -14400 0 -04} {245217600 -10800 1 -03} {258519600 -14400 0 -04} {277272000 -10800 1 -03} {289969200 -14400 0 -04} {308721600 -10800 1 -03} {321418800 -14400 0 -04} {340171200 -10800 1 -03} {353473200 -14400 0 -04} {371620800 -10800 1 -03} {384922800 -14400 0 -04} {403070400 -10800 1 -03} {416372400 -14400 0 -04} {434520000 -10800 1 -03} {447822000 -14400 0 -04} {466574400 -10800 1 -03} {479271600 -14400 0 -04} {498024000 -10800 1 -03} {510721200 -14400 0 -04} {529473600 -10800 1 -03} {545194800 -14400 0 -04} {560923200 -10800 1 -03} {574225200 -14400 0 -04} {592372800 -10800 1 -03} {605674800 -14400 0 -04} {624427200 -10800 1 -03} {637124400 -14400 0 -04} {653457600 -10800 1 -03} {668574000 -14400 0 -04} {687326400 -10800 1 -03} {700628400 -14400 0 -04} {718776000 -10800 1 -03} {732078000 -14400 0 -04} {750225600 -10800 1 -03} {763527600 -14400 0 -04} {781675200 -10800 1 -03} {794977200 -14400 0 -04} {813729600 -10800 1 -03} {826426800 -14400 0 -04} {845179200 -10800 1 -03} {859690800 -14400 0 -04} {876628800 -10800 1 -03} {889930800 -14400 0 -04} {906868800 -10800 1 -03} {923194800 -14400 0 -04} {939528000 -10800 1 -03} {952830000 -14400 0 -04} {971582400 -10800 1 -03} {984279600 -14400 0 -04} {1003032000 -10800 1 -03} {1015729200 -14400 0 -04} {1034481600 -10800 1 -03} {1047178800 -14400 0 -04} {1065931200 -10800 1 -03} {1079233200 -14400 0 -04} {1097380800 -10800 1 -03} {1110682800 -14400 0 -04} {1128830400 -10800 1 -03} {1142132400 -14400 0 -04} {1160884800 -10800 1 -03} {1173582000 -14400 0 -04} {1192334400 -10800 1 -03} {1206846000 -14400 0 -04} {1223784000 -10800 1 -03} {1237086000 -14400 0 -04} {1255233600 -10800 1 -03} {1270350000 -14400 0 -04} {1286683200 -10800 1 -03} {1304823600 -14400 0 -04} {1313899200 -10800 1 -03} {1335668400 -14400 0 -04} {1346558400 -10800 1 -03} {1367118000 -14400 0 -04} {1378612800 -10800 1 -03} {1398567600 -14400 0 -04} {1410062400 -10800 1 -03} {1463281200 -14400 0 -04} {1471147200 -10800 1 -03} {1494730800 -14400 0 -04} {1502596800 -10800 1 -03} {1526180400 -14400 0 -04} {1534046400 -10800 1 -03} {1557630000 -14400 0 -04} {1565496000 -10800 1 -03} {1589079600 -14400 0 -04} {1596945600 -10800 1 -03} {1620529200 -14400 0 -04} {1629000000 -10800 1 -03} {1652583600 -14400 0 -04} {1660449600 -10800 1 -03} {1684033200 -14400 0 -04} {1691899200 -10800 1 -03} {1715482800 -14400 0 -04} {1723348800 -10800 1 -03} {1746932400 -14400 0 -04} {1754798400 -10800 1 -03} {1778382000 -14400 0 -04} {1786248000 -10800 1 -03} {1809831600 -14400 0 -04} {1818302400 -10800 1 -03} {1841886000 -14400 0 -04} {1849752000 -10800 1 -03} {1873335600 -14400 0 -04} {1881201600 -10800 1 -03} {1904785200 -14400 0 -04} {1912651200 -10800 1 -03} {1936234800 -14400 0 -04} {1944100800 -10800 1 -03} {1967684400 -14400 0 -04} {1976155200 -10800 1 -03} {1999738800 -14400 0 -04} {2007604800 -10800 1 -03} {2031188400 -14400 0 -04} {2039054400 -10800 1 -03} {2062638000 -14400 0 -04} {2070504000 -10800 1 -03} {2094087600 -14400 0 -04} {2101953600 -10800 1 -03} {2125537200 -14400 0 -04} {2133403200 -10800 1 -03} {2156986800 -14400 0 -04} {2165457600 -10800 1 -03} {2189041200 -14400 0 -04} {2196907200 -10800 1 -03} {2220490800 -14400 0 -04} {2228356800 -10800 1 -03} {2251940400 -14400 0 -04} {2259806400 -10800 1 -03} {2283390000 -14400 0 -04} {2291256000 -10800 1 -03} {2314839600 -14400 0 -04} {2322705600 -10800 1 -03} {2346894000 -14400 0 -04} {2354760000 -10800 1 -03} {2378343600 -14400 0 -04} {2386209600 -10800 1 -03} {2409793200 -14400 0 -04} {2417659200 -10800 1 -03} {2441242800 -14400 0 -04} {2449108800 -10800 1 -03} {2472692400 -14400 0 -04} {2480558400 -10800 1 -03} {2504142000 -14400 0 -04} {2512612800 -10800 1 -03} {2536196400 -14400 0 -04} {2544062400 -10800 1 -03} {2567646000 -14400 0 -04} {2575512000 -10800 1 -03} {2599095600 -14400 0 -04} {2606961600 -10800 1 -03} {2630545200 -14400 0 -04} {2638411200 -10800 1 -03} {2661994800 -14400 0 -04} {2669860800 -10800 1 -03} {2693444400 -14400 0 -04} {2701915200 -10800 1 -03} {2725498800 -14400 0 -04} {2733364800 -10800 1 -03} {2756948400 -14400 0 -04} {2764814400 -10800 1 -03} {2788398000 -14400 0 -04} {2796264000 -10800 1 -03} {2819847600 -14400 0 -04} {2827713600 -10800 1 -03} {2851297200 -14400 0 -04} {2859768000 -10800 1 -03} {2883351600 -14400 0 -04} {2891217600 -10800 1 -03} {2914801200 -14400 0 -04} {2922667200 -10800 1 -03} {2946250800 -14400 0 -04} {2954116800 -10800 1 -03} {2977700400 -14400 0 -04} {2985566400 -10800 1 -03} {3009150000 -14400 0 -04} {3017016000 -10800 1 -03} {3040599600 -14400 0 -04} {3049070400 -10800 1 -03} {3072654000 -14400 0 -04} {3080520000 -10800 1 -03} {3104103600 -14400 0 -04} {3111969600 -10800 1 -03} {3135553200 -14400 0 -04} {3143419200 -10800 1 -03} {3167002800 -14400 0 -04} {3174868800 -10800 1 -03} {3198452400 -14400 0 -04} {3206318400 -10800 1 -03} {3230506800 -14400 0 -04} {3238372800 -10800 1 -03} {3261956400 -14400 0 -04} {3269822400 -10800 1 -03} {3293406000 -14400 0 -04} {3301272000 -10800 1 -03} {3324855600 -14400 0 -04} {3332721600 -10800 1 -03} {3356305200 -14400 0 -04} {3364171200 -10800 1 -03} {3387754800 -14400 0 -04} {3396225600 -10800 1 -03} {3419809200 -14400 0 -04} {3427675200 -10800 1 -03} {3451258800 -14400 0 -04} {3459124800 -10800 1 -03} {3482708400 -14400 0 -04} {3490574400 -10800 1 -03} {3514158000 -14400 0 -04} {3522024000 -10800 1 -03} {3545607600 -14400 0 -04} {3553473600 -10800 1 -03} {3577057200 -14400 0 -04} {3585528000 -10800 1 -03} {3609111600 -14400 0 -04} {3616977600 -10800 1 -03} {3640561200 -14400 0 -04} {3648427200 -10800 1 -03} {3672010800 -14400 0 -04} {3679876800 -10800 1 -03} {3703460400 -14400 0 -04} {3711326400 -10800 1 -03} {3734910000 -14400 0 -04} {3743380800 -10800 1 -03} {3766964400 -14400 0 -04} {3774830400 -10800 1 -03} {3798414000 -14400 0 -04} {3806280000 -10800 1 -03} {3829863600 -14400 0 -04} {3837729600 -10800 1 -03} {3861313200 -14400 0 -04} {3869179200 -10800 1 -03} {3892762800 -14400 0 -04} {3900628800 -10800 1 -03} {3924212400 -14400 0 -04} {3932683200 -10800 1 -03} {3956266800 -14400 0 -04} {3964132800 -10800 1 -03} {3987716400 -14400 0 -04} {3995582400 -10800 1 -03} {4019166000 -14400 0 -04} {4027032000 -10800 1 -03} {4050615600 -14400 0 -04} {4058481600 -10800 1 -03} {4082065200 -14400 0 -04} {4089931200 -10800 1 -03} } |
Changes to library/tzdata/America/Santo_Domingo.
1 2 3 4 5 6 7 8 | # created by tools/tclZIC.tcl - do not edit set TZData(:America/Santo_Domingo) { {-9223372036854775808 -16776 0 LMT} {-2524504824 -16800 0 SDMT} {-1159773600 -18000 0 EST} {-100119600 -14400 1 EDT} {-89668800 -18000 0 EST} | | | | | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | # created by tools/tclZIC.tcl - do not edit set TZData(:America/Santo_Domingo) { {-9223372036854775808 -16776 0 LMT} {-2524504824 -16800 0 SDMT} {-1159773600 -18000 0 EST} {-100119600 -14400 1 EDT} {-89668800 -18000 0 EST} {-5770800 -16200 1 -0430} {4422600 -18000 0 EST} {25678800 -16200 1 -0430} {33193800 -18000 0 EST} {57733200 -16200 1 -0430} {64816200 -18000 0 EST} {89182800 -16200 1 -0430} {96438600 -18000 0 EST} {120632400 -16200 1 -0430} {127974600 -18000 0 EST} {152082000 -14400 0 AST} {975823200 -14400 0 AST} } |
Changes to library/tzdata/America/Sao_Paulo.
1 2 3 4 | # created by tools/tclZIC.tcl - do not edit set TZData(:America/Sao_Paulo) { {-9223372036854775808 -11188 0 LMT} | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 | # created by tools/tclZIC.tcl - do not edit set TZData(:America/Sao_Paulo) { {-9223372036854775808 -11188 0 LMT} {-1767214412 -10800 0 -03} {-1206957600 -7200 1 -02} {-1191362400 -10800 0 -03} {-1175374800 -7200 1 -02} {-1159826400 -10800 0 -03} {-633819600 -7200 1 -02} {-622069200 -10800 0 -03} {-602283600 -7200 1 -02} {-591832800 -10800 0 -03} {-570747600 -7200 1 -02} {-560210400 -10800 0 -03} {-539125200 -7200 1 -02} {-531352800 -10800 0 -03} {-195429600 -7200 1 -02} {-189381600 -7200 0 -03} {-184197600 -10800 0 -03} {-155163600 -7200 1 -02} {-150069600 -10800 0 -03} {-128898000 -7200 1 -02} {-121125600 -10800 0 -03} {-99954000 -7200 1 -02} {-89589600 -10800 0 -03} {-68418000 -7200 1 -02} {-57967200 -10800 0 -03} {499748400 -7200 1 -02} {511236000 -10800 0 -03} {530593200 -7200 1 -02} {540266400 -10800 0 -03} {562129200 -7200 1 -02} {571197600 -10800 0 -03} {592974000 -7200 1 -02} {602042400 -10800 0 -03} {624423600 -7200 1 -02} {634701600 -10800 0 -03} {656478000 -7200 1 -02} {666756000 -10800 0 -03} {687927600 -7200 1 -02} {697600800 -10800 0 -03} {719982000 -7200 1 -02} {728445600 -10800 0 -03} {750826800 -7200 1 -02} {761709600 -10800 0 -03} {782276400 -7200 1 -02} {793159200 -10800 0 -03} {813726000 -7200 1 -02} {824004000 -10800 0 -03} {844570800 -7200 1 -02} {856058400 -10800 0 -03} {876106800 -7200 1 -02} {888717600 -10800 0 -03} {908074800 -7200 1 -02} {919562400 -10800 0 -03} {938919600 -7200 1 -02} {951616800 -10800 0 -03} {970974000 -7200 1 -02} {982461600 -10800 0 -03} {1003028400 -7200 1 -02} {1013911200 -10800 0 -03} {1036292400 -7200 1 -02} {1045360800 -10800 0 -03} {1066532400 -7200 1 -02} {1076810400 -10800 0 -03} {1099364400 -7200 1 -02} {1108864800 -10800 0 -03} {1129431600 -7200 1 -02} {1140314400 -10800 0 -03} {1162695600 -7200 1 -02} {1172368800 -10800 0 -03} {1192330800 -7200 1 -02} {1203213600 -10800 0 -03} {1224385200 -7200 1 -02} {1234663200 -10800 0 -03} {1255834800 -7200 1 -02} {1266717600 -10800 0 -03} {1287284400 -7200 1 -02} {1298167200 -10800 0 -03} {1318734000 -7200 1 -02} {1330221600 -10800 0 -03} {1350788400 -7200 1 -02} {1361066400 -10800 0 -03} {1382238000 -7200 1 -02} {1392516000 -10800 0 -03} {1413687600 -7200 1 -02} {1424570400 -10800 0 -03} {1445137200 -7200 1 -02} {1456020000 -10800 0 -03} {1476586800 -7200 1 -02} {1487469600 -10800 0 -03} {1508036400 -7200 1 -02} {1518919200 -10800 0 -03} {1540090800 -7200 1 -02} {1550368800 -10800 0 -03} {1571540400 -7200 1 -02} {1581818400 -10800 0 -03} {1602990000 -7200 1 -02} {1613872800 -10800 0 -03} {1634439600 -7200 1 -02} {1645322400 -10800 0 -03} {1665889200 -7200 1 -02} {1677376800 -10800 0 -03} {1697338800 -7200 1 -02} {1708221600 -10800 0 -03} {1729393200 -7200 1 -02} {1739671200 -10800 0 -03} {1760842800 -7200 1 -02} {1771725600 -10800 0 -03} {1792292400 -7200 1 -02} {1803175200 -10800 0 -03} {1823742000 -7200 1 -02} {1834624800 -10800 0 -03} {1855191600 -7200 1 -02} {1866074400 -10800 0 -03} {1887246000 -7200 1 -02} {1897524000 -10800 0 -03} {1918695600 -7200 1 -02} {1928973600 -10800 0 -03} {1950145200 -7200 1 -02} {1960423200 -10800 0 -03} {1981594800 -7200 1 -02} {1992477600 -10800 0 -03} {2013044400 -7200 1 -02} {2024532000 -10800 0 -03} {2044494000 -7200 1 -02} {2055376800 -10800 0 -03} {2076548400 -7200 1 -02} {2086826400 -10800 0 -03} {2107998000 -7200 1 -02} {2118880800 -10800 0 -03} {2139447600 -7200 1 -02} {2150330400 -10800 0 -03} {2170897200 -7200 1 -02} {2181780000 -10800 0 -03} {2202346800 -7200 1 -02} {2213229600 -10800 0 -03} {2234401200 -7200 1 -02} {2244679200 -10800 0 -03} {2265850800 -7200 1 -02} {2276128800 -10800 0 -03} {2297300400 -7200 1 -02} {2307578400 -10800 0 -03} {2328750000 -7200 1 -02} {2339632800 -10800 0 -03} {2360199600 -7200 1 -02} {2371082400 -10800 0 -03} {2391649200 -7200 1 -02} {2402532000 -10800 0 -03} {2423703600 -7200 1 -02} {2433981600 -10800 0 -03} {2455153200 -7200 1 -02} {2465431200 -10800 0 -03} {2486602800 -7200 1 -02} {2497485600 -10800 0 -03} {2518052400 -7200 1 -02} {2528935200 -10800 0 -03} {2549502000 -7200 1 -02} {2560384800 -10800 0 -03} {2580951600 -7200 1 -02} {2591834400 -10800 0 -03} {2613006000 -7200 1 -02} {2623284000 -10800 0 -03} {2644455600 -7200 1 -02} {2654733600 -10800 0 -03} {2675905200 -7200 1 -02} {2686788000 -10800 0 -03} {2707354800 -7200 1 -02} {2718237600 -10800 0 -03} {2738804400 -7200 1 -02} {2749687200 -10800 0 -03} {2770858800 -7200 1 -02} {2781136800 -10800 0 -03} {2802308400 -7200 1 -02} {2812586400 -10800 0 -03} {2833758000 -7200 1 -02} {2844036000 -10800 0 -03} {2865207600 -7200 1 -02} {2876090400 -10800 0 -03} {2896657200 -7200 1 -02} {2907540000 -10800 0 -03} {2928106800 -7200 1 -02} {2938989600 -10800 0 -03} {2960161200 -7200 1 -02} {2970439200 -10800 0 -03} {2991610800 -7200 1 -02} {3001888800 -10800 0 -03} {3023060400 -7200 1 -02} {3033943200 -10800 0 -03} {3054510000 -7200 1 -02} {3065392800 -10800 0 -03} {3085959600 -7200 1 -02} {3096842400 -10800 0 -03} {3118014000 -7200 1 -02} {3128292000 -10800 0 -03} {3149463600 -7200 1 -02} {3159741600 -10800 0 -03} {3180913200 -7200 1 -02} {3191191200 -10800 0 -03} {3212362800 -7200 1 -02} {3223245600 -10800 0 -03} {3243812400 -7200 1 -02} {3254695200 -10800 0 -03} {3275262000 -7200 1 -02} {3286144800 -10800 0 -03} {3307316400 -7200 1 -02} {3317594400 -10800 0 -03} {3338766000 -7200 1 -02} {3349044000 -10800 0 -03} {3370215600 -7200 1 -02} {3381098400 -10800 0 -03} {3401665200 -7200 1 -02} {3412548000 -10800 0 -03} {3433114800 -7200 1 -02} {3443997600 -10800 0 -03} {3464564400 -7200 1 -02} {3475447200 -10800 0 -03} {3496618800 -7200 1 -02} {3506896800 -10800 0 -03} {3528068400 -7200 1 -02} {3538346400 -10800 0 -03} {3559518000 -7200 1 -02} {3570400800 -10800 0 -03} {3590967600 -7200 1 -02} {3601850400 -10800 0 -03} {3622417200 -7200 1 -02} {3633300000 -10800 0 -03} {3654471600 -7200 1 -02} {3664749600 -10800 0 -03} {3685921200 -7200 1 -02} {3696199200 -10800 0 -03} {3717370800 -7200 1 -02} {3727648800 -10800 0 -03} {3748820400 -7200 1 -02} {3759703200 -10800 0 -03} {3780270000 -7200 1 -02} {3791152800 -10800 0 -03} {3811719600 -7200 1 -02} {3822602400 -10800 0 -03} {3843774000 -7200 1 -02} {3854052000 -10800 0 -03} {3875223600 -7200 1 -02} {3885501600 -10800 0 -03} {3906673200 -7200 1 -02} {3917556000 -10800 0 -03} {3938122800 -7200 1 -02} {3949005600 -10800 0 -03} {3969572400 -7200 1 -02} {3980455200 -10800 0 -03} {4001626800 -7200 1 -02} {4011904800 -10800 0 -03} {4033076400 -7200 1 -02} {4043354400 -10800 0 -03} {4064526000 -7200 1 -02} {4074804000 -10800 0 -03} {4095975600 -7200 1 -02} } |
Changes to library/tzdata/America/Scoresbysund.
1 2 3 4 | # created by tools/tclZIC.tcl - do not edit set TZData(:America/Scoresbysund) { {-9223372036854775808 -5272 0 LMT} | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 | # created by tools/tclZIC.tcl - do not edit set TZData(:America/Scoresbysund) { {-9223372036854775808 -5272 0 LMT} {-1686090728 -7200 0 -02} {323841600 -3600 0 -01} {338961600 -7200 0 -02} {354679200 0 0 +00} {370400400 -3600 0 -01} {386125200 0 1 +00} {401850000 -3600 0 -01} {417574800 0 1 +00} {433299600 -3600 0 -01} {449024400 0 1 +00} {465354000 -3600 0 -01} {481078800 0 1 +00} {496803600 -3600 0 -01} {512528400 0 1 +00} {528253200 -3600 0 -01} {543978000 0 1 +00} {559702800 -3600 0 -01} {575427600 0 1 +00} {591152400 -3600 0 -01} {606877200 0 1 +00} {622602000 -3600 0 -01} {638326800 0 1 +00} {654656400 -3600 0 -01} {670381200 0 1 +00} {686106000 -3600 0 -01} {701830800 0 1 +00} {717555600 -3600 0 -01} {733280400 0 1 +00} {749005200 -3600 0 -01} {764730000 0 1 +00} {780454800 -3600 0 -01} {796179600 0 1 +00} {811904400 -3600 0 -01} {828234000 0 1 +00} {846378000 -3600 0 -01} {859683600 0 1 +00} {877827600 -3600 0 -01} {891133200 0 1 +00} {909277200 -3600 0 -01} {922582800 0 1 +00} {941331600 -3600 0 -01} {954032400 0 1 +00} {972781200 -3600 0 -01} {985482000 0 1 +00} {1004230800 -3600 0 -01} {1017536400 0 1 +00} {1035680400 -3600 0 -01} {1048986000 0 1 +00} {1067130000 -3600 0 -01} {1080435600 0 1 +00} {1099184400 -3600 0 -01} {1111885200 0 1 +00} {1130634000 -3600 0 -01} {1143334800 0 1 +00} {1162083600 -3600 0 -01} {1174784400 0 1 +00} {1193533200 -3600 0 -01} {1206838800 0 1 +00} {1224982800 -3600 0 -01} {1238288400 0 1 +00} {1256432400 -3600 0 -01} {1269738000 0 1 +00} {1288486800 -3600 0 -01} {1301187600 0 1 +00} {1319936400 -3600 0 -01} {1332637200 0 1 +00} {1351386000 -3600 0 -01} {1364691600 0 1 +00} {1382835600 -3600 0 -01} {1396141200 0 1 +00} {1414285200 -3600 0 -01} {1427590800 0 1 +00} {1445734800 -3600 0 -01} {1459040400 0 1 +00} {1477789200 -3600 0 -01} {1490490000 0 1 +00} {1509238800 -3600 0 -01} {1521939600 0 1 +00} {1540688400 -3600 0 -01} {1553994000 0 1 +00} {1572138000 -3600 0 -01} {1585443600 0 1 +00} {1603587600 -3600 0 -01} {1616893200 0 1 +00} {1635642000 -3600 0 -01} {1648342800 0 1 +00} {1667091600 -3600 0 -01} {1679792400 0 1 +00} {1698541200 -3600 0 -01} {1711846800 0 1 +00} {1729990800 -3600 0 -01} {1743296400 0 1 +00} {1761440400 -3600 0 -01} {1774746000 0 1 +00} {1792890000 -3600 0 -01} {1806195600 0 1 +00} {1824944400 -3600 0 -01} {1837645200 0 1 +00} {1856394000 -3600 0 -01} {1869094800 0 1 +00} {1887843600 -3600 0 -01} {1901149200 0 1 +00} {1919293200 -3600 0 -01} {1932598800 0 1 +00} {1950742800 -3600 0 -01} {1964048400 0 1 +00} {1982797200 -3600 0 -01} {1995498000 0 1 +00} {2014246800 -3600 0 -01} {2026947600 0 1 +00} {2045696400 -3600 0 -01} {2058397200 0 1 +00} {2077146000 -3600 0 -01} {2090451600 0 1 +00} {2108595600 -3600 0 -01} {2121901200 0 1 +00} {2140045200 -3600 0 -01} {2153350800 0 1 +00} {2172099600 -3600 0 -01} {2184800400 0 1 +00} {2203549200 -3600 0 -01} {2216250000 0 1 +00} {2234998800 -3600 0 -01} {2248304400 0 1 +00} {2266448400 -3600 0 -01} {2279754000 0 1 +00} {2297898000 -3600 0 -01} {2311203600 0 1 +00} {2329347600 -3600 0 -01} {2342653200 0 1 +00} {2361402000 -3600 0 -01} {2374102800 0 1 +00} {2392851600 -3600 0 -01} {2405552400 0 1 +00} {2424301200 -3600 0 -01} {2437606800 0 1 +00} {2455750800 -3600 0 -01} {2469056400 0 1 +00} {2487200400 -3600 0 -01} {2500506000 0 1 +00} {2519254800 -3600 0 -01} {2531955600 0 1 +00} {2550704400 -3600 0 -01} {2563405200 0 1 +00} {2582154000 -3600 0 -01} {2595459600 0 1 +00} {2613603600 -3600 0 -01} {2626909200 0 1 +00} {2645053200 -3600 0 -01} {2658358800 0 1 +00} {2676502800 -3600 0 -01} {2689808400 0 1 +00} {2708557200 -3600 0 -01} {2721258000 0 1 +00} {2740006800 -3600 0 -01} {2752707600 0 1 +00} {2771456400 -3600 0 -01} {2784762000 0 1 +00} {2802906000 -3600 0 -01} {2816211600 0 1 +00} {2834355600 -3600 0 -01} {2847661200 0 1 +00} {2866410000 -3600 0 -01} {2879110800 0 1 +00} {2897859600 -3600 0 -01} {2910560400 0 1 +00} {2929309200 -3600 0 -01} {2942010000 0 1 +00} {2960758800 -3600 0 -01} {2974064400 0 1 +00} {2992208400 -3600 0 -01} {3005514000 0 1 +00} {3023658000 -3600 0 -01} {3036963600 0 1 +00} {3055712400 -3600 0 -01} {3068413200 0 1 +00} {3087162000 -3600 0 -01} {3099862800 0 1 +00} {3118611600 -3600 0 -01} {3131917200 0 1 +00} {3150061200 -3600 0 -01} {3163366800 0 1 +00} {3181510800 -3600 0 -01} {3194816400 0 1 +00} {3212960400 -3600 0 -01} {3226266000 0 1 +00} {3245014800 -3600 0 -01} {3257715600 0 1 +00} {3276464400 -3600 0 -01} {3289165200 0 1 +00} {3307914000 -3600 0 -01} {3321219600 0 1 +00} {3339363600 -3600 0 -01} {3352669200 0 1 +00} {3370813200 -3600 0 -01} {3384118800 0 1 +00} {3402867600 -3600 0 -01} {3415568400 0 1 +00} {3434317200 -3600 0 -01} {3447018000 0 1 +00} {3465766800 -3600 0 -01} {3479072400 0 1 +00} {3497216400 -3600 0 -01} {3510522000 0 1 +00} {3528666000 -3600 0 -01} {3541971600 0 1 +00} {3560115600 -3600 0 -01} {3573421200 0 1 +00} {3592170000 -3600 0 -01} {3604870800 0 1 +00} {3623619600 -3600 0 -01} {3636320400 0 1 +00} {3655069200 -3600 0 -01} {3668374800 0 1 +00} {3686518800 -3600 0 -01} {3699824400 0 1 +00} {3717968400 -3600 0 -01} {3731274000 0 1 +00} {3750022800 -3600 0 -01} {3762723600 0 1 +00} {3781472400 -3600 0 -01} {3794173200 0 1 +00} {3812922000 -3600 0 -01} {3825622800 0 1 +00} {3844371600 -3600 0 -01} {3857677200 0 1 +00} {3875821200 -3600 0 -01} {3889126800 0 1 +00} {3907270800 -3600 0 -01} {3920576400 0 1 +00} {3939325200 -3600 0 -01} {3952026000 0 1 +00} {3970774800 -3600 0 -01} {3983475600 0 1 +00} {4002224400 -3600 0 -01} {4015530000 0 1 +00} {4033674000 -3600 0 -01} {4046979600 0 1 +00} {4065123600 -3600 0 -01} {4078429200 0 1 +00} {4096573200 -3600 0 -01} } |
Changes to library/tzdata/Antarctica/Macquarie.
︙ | ︙ | |||
89 90 91 92 93 94 95 | {1159632000 39600 1 AEDT} {1174752000 36000 0 AEST} {1191686400 39600 1 AEDT} {1207411200 36000 0 AEST} {1223136000 39600 1 AEDT} {1238860800 36000 0 AEST} {1254585600 39600 1 AEDT} | | | 89 90 91 92 93 94 95 96 97 | {1159632000 39600 1 AEDT} {1174752000 36000 0 AEST} {1191686400 39600 1 AEDT} {1207411200 36000 0 AEST} {1223136000 39600 1 AEDT} {1238860800 36000 0 AEST} {1254585600 39600 1 AEDT} {1270310400 39600 0 +11} } |
Changes to library/tzdata/Antarctica/Palmer.
1 2 3 4 | # created by tools/tclZIC.tcl - do not edit set TZData(:Antarctica/Palmer) { {-9223372036854775808 0 0 -00} | | | | | | | | | | | | | | | | < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < | | | | | | | | | | | < < < < | < < < < | < < < < < < < < < < < < | | | < < | < < | < < < < < < < < < < < < | | | | | | | | | < < | | | < < < < < < < < | < < | | < < | | < < | | | | | < < < < < < | < < < < < < < < < < < < | < < < < < < < < < < < < | | | < < | | | < < | | < < < < | | | < < < < < < < < < < < < | < < < < < < | | < < < < | < < | < < | | | | | | | | < | < < | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 | # created by tools/tclZIC.tcl - do not edit set TZData(:Antarctica/Palmer) { {-9223372036854775808 0 0 -00} {-157766400 -14400 0 -04} {-152654400 -14400 0 -04} {-132955200 -10800 1 -03} {-121122000 -14400 0 -04} {-101419200 -10800 1 -03} {-86821200 -14400 0 -04} {-71092800 -10800 1 -03} {-54766800 -14400 0 -04} {-39038400 -10800 1 -03} {-23317200 -14400 0 -04} {-7588800 -10800 0 -03} {128142000 -7200 1 -02} {136605600 -10800 0 -03} {389070000 -14400 0 -04} {403070400 -10800 1 -03} {416372400 -14400 0 -04} {434520000 -10800 1 -03} {447822000 -14400 0 -04} {466574400 -10800 1 -03} {479271600 -14400 0 -04} {498024000 -10800 1 -03} {510721200 -14400 0 -04} {529473600 -10800 1 -03} {545194800 -14400 0 -04} {560923200 -10800 1 -03} {574225200 -14400 0 -04} {592372800 -10800 1 -03} {605674800 -14400 0 -04} {624427200 -10800 1 -03} {637124400 -14400 0 -04} {653457600 -10800 1 -03} {668574000 -14400 0 -04} {687326400 -10800 1 -03} {700628400 -14400 0 -04} {718776000 -10800 1 -03} {732078000 -14400 0 -04} {750225600 -10800 1 -03} {763527600 -14400 0 -04} {781675200 -10800 1 -03} {794977200 -14400 0 -04} {813729600 -10800 1 -03} {826426800 -14400 0 -04} {845179200 -10800 1 -03} {859690800 -14400 0 -04} {876628800 -10800 1 -03} {889930800 -14400 0 -04} {906868800 -10800 1 -03} {923194800 -14400 0 -04} {939528000 -10800 1 -03} {952830000 -14400 0 -04} {971582400 -10800 1 -03} {984279600 -14400 0 -04} {1003032000 -10800 1 -03} {1015729200 -14400 0 -04} {1034481600 -10800 1 -03} {1047178800 -14400 0 -04} {1065931200 -10800 1 -03} {1079233200 -14400 0 -04} {1097380800 -10800 1 -03} {1110682800 -14400 0 -04} {1128830400 -10800 1 -03} {1142132400 -14400 0 -04} {1160884800 -10800 1 -03} {1173582000 -14400 0 -04} {1192334400 -10800 1 -03} {1206846000 -14400 0 -04} {1223784000 -10800 1 -03} {1237086000 -14400 0 -04} {1255233600 -10800 1 -03} {1270350000 -14400 0 -04} {1286683200 -10800 1 -03} {1304823600 -14400 0 -04} {1313899200 -10800 1 -03} {1335668400 -14400 0 -04} {1346558400 -10800 1 -03} {1367118000 -14400 0 -04} {1378612800 -10800 1 -03} {1398567600 -14400 0 -04} {1410062400 -10800 1 -03} {1463281200 -14400 0 -04} {1471147200 -10800 1 -03} {1480820400 -10800 0 -03} } |
Changes to library/tzdata/Asia/Aqtau.
1 2 3 4 5 6 | # created by tools/tclZIC.tcl - do not edit set TZData(:Asia/Aqtau) { {-9223372036854775808 12064 0 LMT} {-1441164064 14400 0 +04} {-1247544000 18000 0 +05} | < | 1 2 3 4 5 6 7 8 9 10 11 12 13 | # created by tools/tclZIC.tcl - do not edit set TZData(:Asia/Aqtau) { {-9223372036854775808 12064 0 LMT} {-1441164064 14400 0 +04} {-1247544000 18000 0 +05} {370724400 21600 0 +06} {386445600 18000 0 +05} {386449200 21600 1 +06} {402256800 18000 0 +05} {417985200 21600 1 +06} {433792800 18000 0 +05} {449607600 21600 1 +06} |
︙ | ︙ |
Added library/tzdata/Asia/Atyrau.
> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 | # created by tools/tclZIC.tcl - do not edit set TZData(:Asia/Atyrau) { {-9223372036854775808 12464 0 LMT} {-1441164464 10800 0 +03} {-1247540400 18000 0 +05} {370724400 21600 0 +06} {386445600 18000 0 +05} {386449200 21600 1 +06} {402256800 18000 0 +05} {417985200 21600 1 +06} {433792800 18000 0 +05} {449607600 21600 1 +06} {465339600 18000 0 +05} {481064400 21600 1 +06} {496789200 18000 0 +05} {512514000 21600 1 +06} {528238800 18000 0 +05} {543963600 21600 1 +06} {559688400 18000 0 +05} {575413200 21600 1 +06} {591138000 18000 0 +05} {606862800 21600 1 +06} {622587600 18000 0 +05} {638312400 21600 1 +06} {654642000 18000 0 +05} {670366800 14400 0 +04} {670370400 18000 1 +05} {686095200 14400 0 +04} {695772000 18000 0 +05} {701816400 21600 1 +06} {717541200 18000 0 +05} {733266000 21600 1 +06} {748990800 18000 0 +05} {764715600 21600 1 +06} {780440400 18000 0 +05} {796165200 21600 1 +06} {811890000 18000 0 +05} {828219600 21600 1 +06} {846363600 18000 0 +05} {859669200 21600 1 +06} {877813200 18000 0 +05} {891118800 21600 1 +06} {909262800 18000 0 +05} {922568400 14400 0 +04} {922572000 18000 1 +05} {941320800 14400 0 +04} {954021600 18000 1 +05} {972770400 14400 0 +04} {985471200 18000 1 +05} {1004220000 14400 0 +04} {1017525600 18000 1 +05} {1035669600 14400 0 +04} {1048975200 18000 1 +05} {1067119200 14400 0 +04} {1080424800 18000 1 +05} {1099173600 18000 0 +05} } |
Changes to library/tzdata/Asia/Baghdad.
1 2 3 4 5 | # created by tools/tclZIC.tcl - do not edit set TZData(:Asia/Baghdad) { {-9223372036854775808 10660 0 LMT} {-2524532260 10656 0 BMT} | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 | # created by tools/tclZIC.tcl - do not edit set TZData(:Asia/Baghdad) { {-9223372036854775808 10660 0 LMT} {-2524532260 10656 0 BMT} {-1641005856 10800 0 +03} {389048400 14400 0 +04} {402264000 10800 0 +04} {417906000 14400 1 +04} {433800000 10800 0 +04} {449614800 14400 1 +04} {465422400 10800 0 +04} {481150800 14400 1 +04} {496792800 10800 0 +04} {512517600 14400 1 +04} {528242400 10800 0 +04} {543967200 14400 1 +04} {559692000 10800 0 +04} {575416800 14400 1 +04} {591141600 10800 0 +04} {606866400 14400 1 +04} {622591200 10800 0 +04} {638316000 14400 1 +04} {654645600 10800 0 +04} {670464000 14400 1 +04} {686275200 10800 0 +04} {702086400 14400 1 +04} {717897600 10800 0 +04} {733622400 14400 1 +04} {749433600 10800 0 +04} {765158400 14400 1 +04} {780969600 10800 0 +04} {796694400 14400 1 +04} {812505600 10800 0 +04} {828316800 14400 1 +04} {844128000 10800 0 +04} {859852800 14400 1 +04} {875664000 10800 0 +04} {891388800 14400 1 +04} {907200000 10800 0 +04} {922924800 14400 1 +04} {938736000 10800 0 +04} {954547200 14400 1 +04} {970358400 10800 0 +04} {986083200 14400 1 +04} {1001894400 10800 0 +04} {1017619200 14400 1 +04} {1033430400 10800 0 +04} {1049155200 14400 1 +04} {1064966400 10800 0 +04} {1080777600 14400 1 +04} {1096588800 10800 0 +04} {1112313600 14400 1 +04} {1128124800 10800 0 +04} {1143849600 14400 1 +04} {1159660800 10800 0 +04} {1175385600 14400 1 +04} {1191196800 10800 0 +04} } |
Changes to library/tzdata/Asia/Bangkok.
1 2 3 4 5 | # created by tools/tclZIC.tcl - do not edit set TZData(:Asia/Bangkok) { {-9223372036854775808 24124 0 LMT} {-2840164924 24124 0 BMT} | | | 1 2 3 4 5 6 7 | # created by tools/tclZIC.tcl - do not edit set TZData(:Asia/Bangkok) { {-9223372036854775808 24124 0 LMT} {-2840164924 24124 0 BMT} {-1570084924 25200 0 +07} } |
Changes to library/tzdata/Asia/Brunei.
1 2 3 4 | # created by tools/tclZIC.tcl - do not edit set TZData(:Asia/Brunei) { {-9223372036854775808 27580 0 LMT} | | | | 1 2 3 4 5 6 7 | # created by tools/tclZIC.tcl - do not edit set TZData(:Asia/Brunei) { {-9223372036854775808 27580 0 LMT} {-1383464380 27000 0 +0730} {-1167636600 28800 0 +08} } |
Changes to library/tzdata/Asia/Choibalsan.
1 2 3 4 | # created by tools/tclZIC.tcl - do not edit set TZData(:Asia/Choibalsan) { {-9223372036854775808 27480 0 LMT} | | < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < | | < | | | < < < < < | < | < | < < < | < | < | | < < | < < < | < | < < < < | < < | < | < < < | | | | | < < | < < | | | < < < | < | < < < | < < < < < < < < < < < | < < < | < | < | < | | | | | | | < < | | | | | | < < < < < < < < < < < < | < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < | | < < < < < < | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 | # created by tools/tclZIC.tcl - do not edit set TZData(:Asia/Choibalsan) { {-9223372036854775808 27480 0 LMT} {-2032933080 25200 0 +07} {252435600 28800 0 +08} {417974400 36000 0 +10} {433778400 32400 0 +09} {449593200 36000 1 +10} {465314400 32400 0 +09} {481042800 36000 1 +10} {496764000 32400 0 +09} {512492400 36000 1 +10} {528213600 32400 0 +09} {543942000 36000 1 +10} {559663200 32400 0 +09} {575391600 36000 1 +10} {591112800 32400 0 +09} {606841200 36000 1 +10} {622562400 32400 0 +09} {638290800 36000 1 +10} {654616800 32400 0 +09} {670345200 36000 1 +10} {686066400 32400 0 +09} {701794800 36000 1 +10} {717516000 32400 0 +09} {733244400 36000 1 +10} {748965600 32400 0 +09} {764694000 36000 1 +10} {780415200 32400 0 +09} {796143600 36000 1 +10} {811864800 32400 0 +09} {828198000 36000 1 +10} {843919200 32400 0 +09} {859647600 36000 1 +10} {875368800 32400 0 +09} {891097200 36000 1 +10} {906818400 32400 0 +09} {988390800 36000 1 +10} {1001692800 32400 0 +09} {1017421200 36000 1 +10} {1033142400 32400 0 +09} {1048870800 36000 1 +10} {1064592000 32400 0 +09} {1080320400 36000 1 +10} {1096041600 32400 0 +09} {1111770000 36000 1 +10} {1127491200 32400 0 +09} {1143219600 36000 1 +10} {1159545600 32400 0 +09} {1206889200 28800 0 +08} {1427479200 32400 1 +09} {1443193200 28800 0 +08} {1458928800 32400 1 +09} {1474642800 28800 0 +08} } |
Changes to library/tzdata/Asia/Dhaka.
1 2 3 4 5 | # created by tools/tclZIC.tcl - do not edit set TZData(:Asia/Dhaka) { {-9223372036854775808 21700 0 LMT} {-2524543300 21200 0 HMT} | | | | | < | | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 | # created by tools/tclZIC.tcl - do not edit set TZData(:Asia/Dhaka) { {-9223372036854775808 21700 0 LMT} {-2524543300 21200 0 HMT} {-891582800 23400 0 +0630} {-872058600 19800 0 +0530} {-862637400 23400 0 +0630} {-576138600 21600 0 +06} {1230746400 21600 0 +06} {1245430800 25200 1 +07} {1262278800 21600 0 +06} } |
Changes to library/tzdata/Asia/Dili.
1 2 3 4 | # created by tools/tclZIC.tcl - do not edit set TZData(:Asia/Dili) { {-9223372036854775808 30140 0 LMT} | | | < | | | 1 2 3 4 5 6 7 8 9 | # created by tools/tclZIC.tcl - do not edit set TZData(:Asia/Dili) { {-9223372036854775808 30140 0 LMT} {-1830414140 28800 0 +08} {-879152400 32400 0 +09} {199897200 28800 0 +08} {969120000 32400 0 +09} } |
Changes to library/tzdata/Asia/Dubai.
1 2 3 4 | # created by tools/tclZIC.tcl - do not edit set TZData(:Asia/Dubai) { {-9223372036854775808 13272 0 LMT} | | | 1 2 3 4 5 6 | # created by tools/tclZIC.tcl - do not edit set TZData(:Asia/Dubai) { {-9223372036854775808 13272 0 LMT} {-1577936472 14400 0 +04} } |
Added library/tzdata/Asia/Famagusta.
> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 | # created by tools/tclZIC.tcl - do not edit set TZData(:Asia/Famagusta) { {-9223372036854775808 8148 0 LMT} {-1518920148 7200 0 EET} {166572000 10800 1 EEST} {182293200 7200 0 EET} {200959200 10800 1 EEST} {213829200 7200 0 EET} {228866400 10800 1 EEST} {243982800 7200 0 EET} {260316000 10800 1 EEST} {276123600 7200 0 EET} {291765600 10800 1 EEST} {307486800 7200 0 EET} {323820000 10800 1 EEST} {338936400 7200 0 EET} {354664800 10800 1 EEST} {370386000 7200 0 EET} {386114400 10800 1 EEST} {401835600 7200 0 EET} {417564000 10800 1 EEST} {433285200 7200 0 EET} {449013600 10800 1 EEST} {465339600 7200 0 EET} {481068000 10800 1 EEST} {496789200 7200 0 EET} {512517600 10800 1 EEST} {528238800 7200 0 EET} {543967200 10800 1 EEST} {559688400 7200 0 EET} {575416800 10800 1 EEST} {591138000 7200 0 EET} {606866400 10800 1 EEST} {622587600 7200 0 EET} {638316000 10800 1 EEST} {654642000 7200 0 EET} {670370400 10800 1 EEST} {686091600 7200 0 EET} {701820000 10800 1 EEST} {717541200 7200 0 EET} {733269600 10800 1 EEST} {748990800 7200 0 EET} {764719200 10800 1 EEST} {780440400 7200 0 EET} {796168800 10800 1 EEST} {811890000 7200 0 EET} {828223200 10800 1 EEST} {843944400 7200 0 EET} {859672800 10800 1 EEST} {875394000 7200 0 EET} {891122400 10800 1 EEST} {904597200 10800 0 EEST} {909277200 7200 0 EET} {922582800 10800 1 EEST} {941331600 7200 0 EET} {954032400 10800 1 EEST} {972781200 7200 0 EET} {985482000 10800 1 EEST} {1004230800 7200 0 EET} {1017536400 10800 1 EEST} {1035680400 7200 0 EET} {1048986000 10800 1 EEST} {1067130000 7200 0 EET} {1080435600 10800 1 EEST} {1099184400 7200 0 EET} {1111885200 10800 1 EEST} {1130634000 7200 0 EET} {1143334800 10800 1 EEST} {1162083600 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} {1473285600 10800 0 +03} } |
Changes to library/tzdata/Asia/Gaza.
1 2 3 4 | # created by tools/tclZIC.tcl - do not edit set TZData(:Asia/Gaza) { {-9223372036854775808 8272 0 LMT} | | | | | | | | | | | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | # created by tools/tclZIC.tcl - do not edit set TZData(:Asia/Gaza) { {-9223372036854775808 8272 0 LMT} {-2185409872 7200 0 EEST} {-933645600 10800 1 EEST} {-857358000 7200 0 EEST} {-844300800 10800 1 EEST} {-825822000 7200 0 EEST} {-812685600 10800 1 EEST} {-794199600 7200 0 EEST} {-779853600 10800 1 EEST} {-762656400 7200 0 EEST} {-748310400 10800 1 EEST} {-731127600 7200 0 EEST} {-682653600 7200 0 EET} {-399088800 10800 1 EEST} {-386650800 7200 0 EET} {-368330400 10800 1 EEST} {-355114800 7200 0 EET} {-336790800 10800 1 EEST} {-323654400 7200 0 EET} |
︙ | ︙ |
Changes to library/tzdata/Asia/Hebron.
1 2 3 4 | # created by tools/tclZIC.tcl - do not edit set TZData(:Asia/Hebron) { {-9223372036854775808 8423 0 LMT} | | | | | | | | | | | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | # created by tools/tclZIC.tcl - do not edit set TZData(:Asia/Hebron) { {-9223372036854775808 8423 0 LMT} {-2185410023 7200 0 EEST} {-933645600 10800 1 EEST} {-857358000 7200 0 EEST} {-844300800 10800 1 EEST} {-825822000 7200 0 EEST} {-812685600 10800 1 EEST} {-794199600 7200 0 EEST} {-779853600 10800 1 EEST} {-762656400 7200 0 EEST} {-748310400 10800 1 EEST} {-731127600 7200 0 EEST} {-682653600 7200 0 EET} {-399088800 10800 1 EEST} {-386650800 7200 0 EET} {-368330400 10800 1 EEST} {-355114800 7200 0 EET} {-336790800 10800 1 EEST} {-323654400 7200 0 EET} |
︙ | ︙ |
Changes to library/tzdata/Asia/Ho_Chi_Minh.
1 2 3 4 5 | # created by tools/tclZIC.tcl - do not edit set TZData(:Asia/Ho_Chi_Minh) { {-9223372036854775808 25600 0 LMT} {-2004073600 25590 0 PLMT} | | | | | | | | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | # created by tools/tclZIC.tcl - do not edit set TZData(:Asia/Ho_Chi_Minh) { {-9223372036854775808 25600 0 LMT} {-2004073600 25590 0 PLMT} {-1851577590 25200 0 +07} {-852105600 28800 0 +08} {-782643600 32400 0 +09} {-767869200 25200 0 +07} {-718095600 28800 0 +08} {-457776000 25200 0 +07} {-315648000 28800 0 +08} {171820800 25200 0 +07} } |
Changes to library/tzdata/Asia/Hovd.
1 2 3 4 | # created by tools/tclZIC.tcl - do not edit set TZData(:Asia/Hovd) { {-9223372036854775808 21996 0 LMT} | | | | | | | | | | | | | < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < | | < < < < < < < < < < | < < < < | < < < < < < < < < < | | < < < < < < < < < < | < < < < | | | | | < < < < | | | < < < < | | | | | < < < < < < < < < < | < < < < | | | < < < < < < | < < < < | | | < < < < < < < < < < | < < < < < < < < < < < < | | | < < < < < < < < < < | | | < < < < < < < < < < < < | < < < < | | < < < < < < | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 | # created by tools/tclZIC.tcl - do not edit set TZData(:Asia/Hovd) { {-9223372036854775808 21996 0 LMT} {-2032927596 21600 0 +06} {252439200 25200 0 +07} {417978000 28800 1 +08} {433785600 25200 0 +07} {449600400 28800 1 +08} {465321600 25200 0 +07} {481050000 28800 1 +08} {496771200 25200 0 +07} {512499600 28800 1 +08} {528220800 25200 0 +07} {543949200 28800 1 +08} {559670400 25200 0 +07} {575398800 28800 1 +08} {591120000 25200 0 +07} {606848400 28800 1 +08} {622569600 25200 0 +07} {638298000 28800 1 +08} {654624000 25200 0 +07} {670352400 28800 1 +08} {686073600 25200 0 +07} {701802000 28800 1 +08} {717523200 25200 0 +07} {733251600 28800 1 +08} {748972800 25200 0 +07} {764701200 28800 1 +08} {780422400 25200 0 +07} {796150800 28800 1 +08} {811872000 25200 0 +07} {828205200 28800 1 +08} {843926400 25200 0 +07} {859654800 28800 1 +08} {875376000 25200 0 +07} {891104400 28800 1 +08} {906825600 25200 0 +07} {988398000 28800 1 +08} {1001700000 25200 0 +07} {1017428400 28800 1 +08} {1033149600 25200 0 +07} {1048878000 28800 1 +08} {1064599200 25200 0 +07} {1080327600 28800 1 +08} {1096048800 25200 0 +07} {1111777200 28800 1 +08} {1127498400 25200 0 +07} {1143226800 28800 1 +08} {1159552800 25200 0 +07} {1427482800 28800 1 +08} {1443196800 25200 0 +07} {1458932400 28800 1 +08} {1474646400 25200 0 +07} } |
Changes to library/tzdata/Asia/Jakarta.
1 2 3 4 5 | # created by tools/tclZIC.tcl - do not edit set TZData(:Asia/Jakarta) { {-9223372036854775808 25632 0 LMT} {-3231299232 25632 0 BMT} | | | | | | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 | # created by tools/tclZIC.tcl - do not edit set TZData(:Asia/Jakarta) { {-9223372036854775808 25632 0 LMT} {-3231299232 25632 0 BMT} {-1451719200 26400 0 +0720} {-1172906400 27000 0 +0730} {-876641400 32400 0 +09} {-766054800 27000 0 +0730} {-683883000 28800 0 +08} {-620812800 27000 0 +0730} {-189415800 25200 0 WIB} } |
Changes to library/tzdata/Asia/Jayapura.
1 2 3 4 | # created by tools/tclZIC.tcl - do not edit set TZData(:Asia/Jayapura) { {-9223372036854775808 33768 0 LMT} | | | | 1 2 3 4 5 6 7 8 | # created by tools/tclZIC.tcl - do not edit set TZData(:Asia/Jayapura) { {-9223372036854775808 33768 0 LMT} {-1172913768 32400 0 +09} {-799491600 34200 0 +0930} {-189423000 32400 0 WIT} } |
Changes to library/tzdata/Asia/Kabul.
1 2 3 4 | # created by tools/tclZIC.tcl - do not edit set TZData(:Asia/Kabul) { {-9223372036854775808 16608 0 LMT} | | | | 1 2 3 4 5 6 7 | # created by tools/tclZIC.tcl - do not edit set TZData(:Asia/Kabul) { {-9223372036854775808 16608 0 LMT} {-2524538208 14400 0 +04} {-788932800 16200 0 +0430} } |
Changes to library/tzdata/Asia/Karachi.
1 2 3 4 | # created by tools/tclZIC.tcl - do not edit set TZData(:Asia/Karachi) { {-9223372036854775808 16092 0 LMT} | | | | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | # created by tools/tclZIC.tcl - do not edit set TZData(:Asia/Karachi) { {-9223372036854775808 16092 0 LMT} {-1988166492 19800 0 +0530} {-862637400 23400 1 +0630} {-764145000 19800 0 +0530} {-576135000 18000 0 +05} {38775600 18000 0 PKT} {1018119600 21600 1 PKST} {1033840800 18000 0 PKT} {1212260400 21600 1 PKST} {1225476000 18000 0 PKT} {1239735600 21600 1 PKST} {1257012000 18000 0 PKT} |
︙ | ︙ |
Changes to library/tzdata/Asia/Kathmandu.
1 2 3 4 | # created by tools/tclZIC.tcl - do not edit set TZData(:Asia/Kathmandu) { {-9223372036854775808 20476 0 LMT} | | | | 1 2 3 4 5 6 7 | # created by tools/tclZIC.tcl - do not edit set TZData(:Asia/Kathmandu) { {-9223372036854775808 20476 0 LMT} {-1577943676 19800 0 +0530} {504901800 20700 0 +0545} } |
Changes to library/tzdata/Asia/Kolkata.
1 2 3 4 5 | # created by tools/tclZIC.tcl - do not edit set TZData(:Asia/Kolkata) { {-9223372036854775808 21208 0 LMT} {-2840162008 21200 0 HMT} | | | | 1 2 3 4 5 6 7 8 9 10 | # created by tools/tclZIC.tcl - do not edit set TZData(:Asia/Kolkata) { {-9223372036854775808 21208 0 LMT} {-2840162008 21200 0 HMT} {-891582800 23400 0 +0630} {-872058600 19800 0 IST} {-862637400 23400 1 +0630} {-764145000 19800 0 IST} } |
Changes to library/tzdata/Asia/Kuala_Lumpur.
1 2 3 4 5 | # created by tools/tclZIC.tcl - do not edit set TZData(:Asia/Kuala_Lumpur) { {-9223372036854775808 24406 0 LMT} {-2177477206 24925 0 SMT} | | | | | | | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 | # created by tools/tclZIC.tcl - do not edit set TZData(:Asia/Kuala_Lumpur) { {-9223372036854775808 24406 0 LMT} {-2177477206 24925 0 SMT} {-2038200925 25200 0 +07} {-1167634800 26400 1 +0720} {-1073028000 26400 0 +0720} {-894180000 27000 0 +0730} {-879665400 32400 0 +09} {-767005200 27000 0 +0730} {378664200 28800 0 +08} } |
Changes to library/tzdata/Asia/Kuching.
1 2 3 4 | # created by tools/tclZIC.tcl - do not edit set TZData(:Asia/Kuching) { {-9223372036854775808 26480 0 LMT} | | | | | | | | | | | | | | | | | | | < | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | # created by tools/tclZIC.tcl - do not edit set TZData(:Asia/Kuching) { {-9223372036854775808 26480 0 LMT} {-1383463280 27000 0 +0730} {-1167636600 28800 0 +08} {-1082448000 30000 1 +0820} {-1074586800 28800 0 +08} {-1050825600 30000 1 +0820} {-1042964400 28800 0 +08} {-1019289600 30000 1 +0820} {-1011428400 28800 0 +08} {-987753600 30000 1 +0820} {-979892400 28800 0 +08} {-956217600 30000 1 +0820} {-948356400 28800 0 +08} {-924595200 30000 1 +0820} {-916734000 28800 0 +08} {-893059200 30000 1 +0820} {-885198000 28800 0 +08} {-879667200 32400 0 +09} {-767005200 28800 0 +08} } |
Changes to library/tzdata/Asia/Macau.
1 2 3 4 | # created by tools/tclZIC.tcl - do not edit set TZData(:Asia/Macau) { {-9223372036854775808 27260 0 LMT} | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 | # created by tools/tclZIC.tcl - do not edit set TZData(:Asia/Macau) { {-9223372036854775808 27260 0 LMT} {-1830411260 28800 0 CST} {-277360200 32400 1 CDT} {-257405400 28800 0 CST} {-245910600 32400 1 CDT} {-225955800 28800 0 CST} {-214473600 32400 1 CDT} {-194506200 28800 0 CST} {-182406600 32400 1 CDT} {-163056600 28800 0 CST} {-150969600 32400 1 CDT} {-131619600 28800 0 CST} {-117088200 32400 1 CDT} {-101367000 28800 0 CST} {-85638600 32400 1 CDT} {-69312600 28800 0 CST} {-53584200 32400 1 CDT} {-37863000 28800 0 CST} {-22134600 32400 1 CDT} {-6413400 28800 0 CST} {9315000 32400 1 CDT} {25036200 28800 0 CST} {40764600 32400 1 CDT} {56485800 28800 0 CST} {72201600 32400 1 CDT} {87922800 28800 0 CST} {103651200 32400 1 CDT} {119977200 28800 0 CST} {135705600 32400 1 CDT} {151439400 28800 0 CST} {167167800 32400 1 CDT} {182889000 28800 0 CST} {198617400 32400 1 CDT} {214338600 28800 0 CST} {230067000 32400 1 CDT} {245788200 28800 0 CST} {261504000 32400 1 CDT} {277225200 28800 0 CST} {292953600 32400 1 CDT} {309279600 28800 0 CST} {325008000 32400 1 CDT} {340729200 28800 0 CST} } |
Changes to library/tzdata/Asia/Makassar.
1 2 3 4 5 | # created by tools/tclZIC.tcl - do not edit set TZData(:Asia/Makassar) { {-9223372036854775808 28656 0 LMT} {-1577951856 28656 0 MMT} | | | | 1 2 3 4 5 6 7 8 9 | # created by tools/tclZIC.tcl - do not edit set TZData(:Asia/Makassar) { {-9223372036854775808 28656 0 LMT} {-1577951856 28656 0 MMT} {-1172908656 28800 0 +08} {-880272000 32400 0 +09} {-766054800 28800 0 WITA} } |
Changes to library/tzdata/Asia/Manila.
1 2 3 4 5 | # created by tools/tclZIC.tcl - do not edit set TZData(:Asia/Manila) { {-9223372036854775808 -57360 0 LMT} {-3944621040 29040 0 LMT} | | | | | | | | | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | # created by tools/tclZIC.tcl - do not edit set TZData(:Asia/Manila) { {-9223372036854775808 -57360 0 LMT} {-3944621040 29040 0 LMT} {-2229321840 28800 0 +08} {-1046678400 32400 1 +09} {-1038733200 28800 0 +08} {-873273600 32400 0 +09} {-794221200 28800 0 +08} {-496224000 32400 1 +09} {-489315600 28800 0 +08} {259344000 32400 1 +09} {275151600 28800 0 +08} } |
Changes to library/tzdata/Asia/Oral.
1 2 3 4 | # created by tools/tclZIC.tcl - do not edit set TZData(:Asia/Oral) { {-9223372036854775808 12324 0 LMT} | | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 | # created by tools/tclZIC.tcl - do not edit set TZData(:Asia/Oral) { {-9223372036854775808 12324 0 LMT} {-1441164324 10800 0 +03} {-1247540400 18000 0 +05} {354913200 21600 1 +06} {370720800 21600 0 +06} {386445600 18000 0 +05} {386449200 21600 1 +06} {402256800 18000 0 +05} {417985200 21600 1 +06} {433792800 18000 0 +05} |
︙ | ︙ |
Changes to library/tzdata/Asia/Pontianak.
1 2 3 4 5 | # created by tools/tclZIC.tcl - do not edit set TZData(:Asia/Pontianak) { {-9223372036854775808 26240 0 LMT} {-1946186240 26240 0 PMT} | | | | | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 | # created by tools/tclZIC.tcl - do not edit set TZData(:Asia/Pontianak) { {-9223372036854775808 26240 0 LMT} {-1946186240 26240 0 PMT} {-1172906240 27000 0 +0730} {-881220600 32400 0 +09} {-766054800 27000 0 +0730} {-683883000 28800 0 +08} {-620812800 27000 0 +0730} {-189415800 28800 0 WITA} {567964800 25200 0 WIB} } |
Changes to library/tzdata/Asia/Pyongyang.
1 2 3 4 5 | # created by tools/tclZIC.tcl - do not edit set TZData(:Asia/Pyongyang) { {-9223372036854775808 30180 0 LMT} {-1948782180 30600 0 KST} | | < | 1 2 3 4 5 6 7 8 9 | # created by tools/tclZIC.tcl - do not edit set TZData(:Asia/Pyongyang) { {-9223372036854775808 30180 0 LMT} {-1948782180 30600 0 KST} {-1830414600 32400 0 JST} {-768646800 32400 0 KST} {1439564400 30600 0 KST} } |
Changes to library/tzdata/Asia/Qatar.
1 2 3 4 | # created by tools/tclZIC.tcl - do not edit set TZData(:Asia/Qatar) { {-9223372036854775808 12368 0 LMT} | | | | 1 2 3 4 5 6 7 | # created by tools/tclZIC.tcl - do not edit set TZData(:Asia/Qatar) { {-9223372036854775808 12368 0 LMT} {-1577935568 14400 0 +04} {76190400 10800 0 +03} } |
Changes to library/tzdata/Asia/Riyadh.
1 2 3 4 | # created by tools/tclZIC.tcl - do not edit set TZData(:Asia/Riyadh) { {-9223372036854775808 11212 0 LMT} | | | 1 2 3 4 5 6 | # created by tools/tclZIC.tcl - do not edit set TZData(:Asia/Riyadh) { {-9223372036854775808 11212 0 LMT} {-719636812 10800 0 +03} } |
Changes to library/tzdata/Asia/Seoul.
1 2 3 4 5 | # created by tools/tclZIC.tcl - do not edit set TZData(:Asia/Seoul) { {-9223372036854775808 30472 0 LMT} {-1948782472 30600 0 KST} | | < | 1 2 3 4 5 6 7 8 9 10 11 12 13 | # created by tools/tclZIC.tcl - do not edit set TZData(:Asia/Seoul) { {-9223372036854775808 30472 0 LMT} {-1948782472 30600 0 KST} {-1830414600 32400 0 JST} {-767350800 32400 0 KST} {-498128400 30600 0 KST} {-462702600 34200 1 KDT} {-451733400 30600 0 KST} {-429784200 34200 1 KDT} {-418296600 30600 0 KST} {-399544200 34200 1 KDT} |
︙ | ︙ |
Changes to library/tzdata/Asia/Singapore.
1 2 3 4 5 | # created by tools/tclZIC.tcl - do not edit set TZData(:Asia/Singapore) { {-9223372036854775808 24925 0 LMT} {-2177477725 24925 0 SMT} | | | | | | | < | | 1 2 3 4 5 6 7 8 9 10 11 12 13 | # created by tools/tclZIC.tcl - do not edit set TZData(:Asia/Singapore) { {-9223372036854775808 24925 0 LMT} {-2177477725 24925 0 SMT} {-2038200925 25200 0 +07} {-1167634800 26400 1 +0720} {-1073028000 26400 0 +0720} {-894180000 27000 0 +0730} {-879665400 32400 0 +09} {-767005200 27000 0 +0730} {378664200 28800 0 +08} } |
Changes to library/tzdata/Asia/Taipei.
1 2 3 4 | # created by tools/tclZIC.tcl - do not edit set TZData(:Asia/Taipei) { {-9223372036854775808 29160 0 LMT} | | | 1 2 3 4 5 6 7 8 9 10 11 12 | # created by tools/tclZIC.tcl - do not edit set TZData(:Asia/Taipei) { {-9223372036854775808 29160 0 LMT} {-2335248360 28800 0 CST} {-1017820800 32400 0 JST} {-766224000 28800 0 CST} {-745833600 32400 1 CDT} {-733827600 28800 0 CST} {-716889600 32400 1 CDT} {-699613200 28800 0 CST} {-683884800 32400 1 CDT} |
︙ | ︙ |
Changes to library/tzdata/Asia/Tehran.
1 2 3 4 5 | # created by tools/tclZIC.tcl - do not edit set TZData(:Asia/Tehran) { {-9223372036854775808 12344 0 LMT} {-1704165944 12344 0 TMT} | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 | # created by tools/tclZIC.tcl - do not edit set TZData(:Asia/Tehran) { {-9223372036854775808 12344 0 LMT} {-1704165944 12344 0 TMT} {-757394744 12600 0 +0330} {247177800 14400 0 +05} {259272000 18000 1 +05} {277758000 14400 0 +05} {283982400 12600 0 +0430} {290809800 16200 1 +0430} {306531000 12600 0 +0430} {322432200 16200 1 +0430} {338499000 12600 0 +0430} {673216200 16200 1 +0430} {685481400 12600 0 +0430} {701209800 16200 1 +0430} {717103800 12600 0 +0430} {732745800 16200 1 +0430} {748639800 12600 0 +0430} {764281800 16200 1 +0430} {780175800 12600 0 +0430} {795817800 16200 1 +0430} {811711800 12600 0 +0430} {827353800 16200 1 +0430} {843247800 12600 0 +0430} {858976200 16200 1 +0430} {874870200 12600 0 +0430} {890512200 16200 1 +0430} {906406200 12600 0 +0430} {922048200 16200 1 +0430} {937942200 12600 0 +0430} {953584200 16200 1 +0430} {969478200 12600 0 +0430} {985206600 16200 1 +0430} {1001100600 12600 0 +0430} {1016742600 16200 1 +0430} {1032636600 12600 0 +0430} {1048278600 16200 1 +0430} {1064172600 12600 0 +0430} {1079814600 16200 1 +0430} {1095708600 12600 0 +0430} {1111437000 16200 1 +0430} {1127331000 12600 0 +0430} {1206045000 16200 1 +0430} {1221939000 12600 0 +0430} {1237667400 16200 1 +0430} {1253561400 12600 0 +0430} {1269203400 16200 1 +0430} {1285097400 12600 0 +0430} {1300739400 16200 1 +0430} {1316633400 12600 0 +0430} {1332275400 16200 1 +0430} {1348169400 12600 0 +0430} {1363897800 16200 1 +0430} {1379791800 12600 0 +0430} {1395433800 16200 1 +0430} {1411327800 12600 0 +0430} {1426969800 16200 1 +0430} {1442863800 12600 0 +0430} {1458505800 16200 1 +0430} {1474399800 12600 0 +0430} {1490128200 16200 1 +0430} {1506022200 12600 0 +0430} {1521664200 16200 1 +0430} {1537558200 12600 0 +0430} {1553200200 16200 1 +0430} {1569094200 12600 0 +0430} {1584736200 16200 1 +0430} {1600630200 12600 0 +0430} {1616358600 16200 1 +0430} {1632252600 12600 0 +0430} {1647894600 16200 1 +0430} {1663788600 12600 0 +0430} {1679430600 16200 1 +0430} {1695324600 12600 0 +0430} {1710966600 16200 1 +0430} {1726860600 12600 0 +0430} {1742589000 16200 1 +0430} {1758483000 12600 0 +0430} {1774125000 16200 1 +0430} {1790019000 12600 0 +0430} {1805661000 16200 1 +0430} {1821555000 12600 0 +0430} {1837197000 16200 1 +0430} {1853091000 12600 0 +0430} {1868733000 16200 1 +0430} {1884627000 12600 0 +0430} {1900355400 16200 1 +0430} {1916249400 12600 0 +0430} {1931891400 16200 1 +0430} {1947785400 12600 0 +0430} {1963427400 16200 1 +0430} {1979321400 12600 0 +0430} {1994963400 16200 1 +0430} {2010857400 12600 0 +0430} {2026585800 16200 1 +0430} {2042479800 12600 0 +0430} {2058121800 16200 1 +0430} {2074015800 12600 0 +0430} {2089657800 16200 1 +0430} {2105551800 12600 0 +0430} {2121193800 16200 1 +0430} {2137087800 12600 0 +0430} {2152729800 16200 1 +0430} {2168623800 12600 0 +0430} {2184265800 16200 1 +0430} {2200159800 12600 0 +0430} {2215888200 16200 1 +0430} {2231782200 12600 0 +0430} {2247424200 16200 1 +0430} {2263318200 12600 0 +0430} {2278960200 16200 1 +0430} {2294854200 12600 0 +0430} {2310496200 16200 1 +0430} {2326390200 12600 0 +0430} {2342118600 16200 1 +0430} {2358012600 12600 0 +0430} {2373654600 16200 1 +0430} {2389548600 12600 0 +0430} {2405190600 16200 1 +0430} {2421084600 12600 0 +0430} {2436726600 16200 1 +0430} {2452620600 12600 0 +0430} {2468349000 16200 1 +0430} {2484243000 12600 0 +0430} {2499885000 16200 1 +0430} {2515779000 12600 0 +0430} {2531421000 16200 1 +0430} {2547315000 12600 0 +0430} {2562957000 16200 1 +0430} {2578851000 12600 0 +0430} {2594579400 16200 1 +0430} {2610473400 12600 0 +0430} {2626115400 16200 1 +0430} {2642009400 12600 0 +0430} {2657651400 16200 1 +0430} {2673545400 12600 0 +0430} {2689187400 16200 1 +0430} {2705081400 12600 0 +0430} {2720809800 16200 1 +0430} {2736703800 12600 0 +0430} {2752345800 16200 1 +0430} {2768239800 12600 0 +0430} {2783881800 16200 1 +0430} {2799775800 12600 0 +0430} {2815417800 16200 1 +0430} {2831311800 12600 0 +0430} {2847040200 16200 1 +0430} {2862934200 12600 0 +0430} {2878576200 16200 1 +0430} {2894470200 12600 0 +0430} {2910112200 16200 1 +0430} {2926006200 12600 0 +0430} {2941648200 16200 1 +0430} {2957542200 12600 0 +0430} {2973270600 16200 1 +0430} {2989164600 12600 0 +0430} {3004806600 16200 1 +0430} {3020700600 12600 0 +0430} {3036342600 16200 1 +0430} {3052236600 12600 0 +0430} {3067878600 16200 1 +0430} {3083772600 12600 0 +0430} {3099501000 16200 1 +0430} {3115395000 12600 0 +0430} {3131037000 16200 1 +0430} {3146931000 12600 0 +0430} {3162573000 16200 1 +0430} {3178467000 12600 0 +0430} {3194109000 16200 1 +0430} {3210003000 12600 0 +0430} {3225731400 16200 1 +0430} {3241625400 12600 0 +0430} {3257267400 16200 1 +0430} {3273161400 12600 0 +0430} {3288803400 16200 1 +0430} {3304697400 12600 0 +0430} {3320339400 16200 1 +0430} {3336233400 12600 0 +0430} {3351961800 16200 1 +0430} {3367855800 12600 0 +0430} {3383497800 16200 1 +0430} {3399391800 12600 0 +0430} {3415033800 16200 1 +0430} {3430927800 12600 0 +0430} {3446569800 16200 1 +0430} {3462463800 12600 0 +0430} {3478192200 16200 1 +0430} {3494086200 12600 0 +0430} {3509728200 16200 1 +0430} {3525622200 12600 0 +0430} {3541264200 16200 1 +0430} {3557158200 12600 0 +0430} {3572800200 16200 1 +0430} {3588694200 12600 0 +0430} {3604422600 16200 1 +0430} {3620316600 12600 0 +0430} {3635958600 16200 1 +0430} {3651852600 12600 0 +0430} {3667494600 16200 1 +0430} {3683388600 12600 0 +0430} {3699030600 16200 1 +0430} {3714924600 12600 0 +0430} {3730653000 16200 1 +0430} {3746547000 12600 0 +0430} {3762189000 16200 1 +0430} {3778083000 12600 0 +0430} {3793725000 16200 1 +0430} {3809619000 12600 0 +0430} {3825261000 16200 1 +0430} {3841155000 12600 0 +0430} {3856883400 16200 1 +0430} {3872777400 12600 0 +0430} {3888419400 16200 1 +0430} {3904313400 12600 0 +0430} {3919955400 16200 1 +0430} {3935849400 12600 0 +0430} {3951491400 16200 1 +0430} {3967385400 12600 0 +0430} {3983113800 16200 1 +0430} {3999007800 12600 0 +0430} {4014649800 16200 1 +0430} {4030543800 12600 0 +0430} {4046185800 16200 1 +0430} {4062079800 12600 0 +0430} {4077721800 16200 1 +0430} {4093615800 12600 0 +0430} } |
Changes to library/tzdata/Asia/Thimphu.
1 2 3 4 | # created by tools/tclZIC.tcl - do not edit set TZData(:Asia/Thimphu) { {-9223372036854775808 21516 0 LMT} | | | | 1 2 3 4 5 6 7 | # created by tools/tclZIC.tcl - do not edit set TZData(:Asia/Thimphu) { {-9223372036854775808 21516 0 LMT} {-706341516 19800 0 +0530} {560025000 21600 0 +06} } |
Changes to library/tzdata/Asia/Tokyo.
1 2 3 4 5 | # created by tools/tclZIC.tcl - do not edit set TZData(:Asia/Tokyo) { {-9223372036854775808 33539 0 LMT} {-2587712400 32400 0 JST} | < < | 1 2 3 4 5 6 7 8 9 10 11 12 | # created by tools/tclZIC.tcl - do not edit set TZData(:Asia/Tokyo) { {-9223372036854775808 33539 0 LMT} {-2587712400 32400 0 JST} {-683794800 36000 1 JDT} {-672393600 32400 0 JST} {-654764400 36000 1 JDT} {-640944000 32400 0 JST} {-620290800 36000 1 JDT} {-609494400 32400 0 JST} {-588841200 36000 1 JDT} |
︙ | ︙ |
Changes to library/tzdata/Asia/Ulaanbaatar.
1 2 3 4 | # created by tools/tclZIC.tcl - do not edit set TZData(:Asia/Ulaanbaatar) { {-9223372036854775808 25652 0 LMT} | | | | | | | | | | | | | < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < | | < < < < < < < < | | < < | < < < < < < < < < < < < < < | < < < < < < < < < < | < < | < < | | | | < < < < < < < < < < < < < < < < < < | | | | | | | | | | | | < < < < < < | < < < < < < < < | | < < < < | < < < < < < | < < < < < < < < < < < < | < < < < < < < < < < | | | | < < < < < < < < < < < < | | < < < < | | < < < < < < | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 | # created by tools/tclZIC.tcl - do not edit set TZData(:Asia/Ulaanbaatar) { {-9223372036854775808 25652 0 LMT} {-2032931252 25200 0 +07} {252435600 28800 0 +08} {417974400 32400 1 +09} {433782000 28800 0 +08} {449596800 32400 1 +09} {465318000 28800 0 +08} {481046400 32400 1 +09} {496767600 28800 0 +08} {512496000 32400 1 +09} {528217200 28800 0 +08} {543945600 32400 1 +09} {559666800 28800 0 +08} {575395200 32400 1 +09} {591116400 28800 0 +08} {606844800 32400 1 +09} {622566000 28800 0 +08} {638294400 32400 1 +09} {654620400 28800 0 +08} {670348800 32400 1 +09} {686070000 28800 0 +08} {701798400 32400 1 +09} {717519600 28800 0 +08} {733248000 32400 1 +09} {748969200 28800 0 +08} {764697600 32400 1 +09} {780418800 28800 0 +08} {796147200 32400 1 +09} {811868400 28800 0 +08} {828201600 32400 1 +09} {843922800 28800 0 +08} {859651200 32400 1 +09} {875372400 28800 0 +08} {891100800 32400 1 +09} {906822000 28800 0 +08} {988394400 32400 1 +09} {1001696400 28800 0 +08} {1017424800 32400 1 +09} {1033146000 28800 0 +08} {1048874400 32400 1 +09} {1064595600 28800 0 +08} {1080324000 32400 1 +09} {1096045200 28800 0 +08} {1111773600 32400 1 +09} {1127494800 28800 0 +08} {1143223200 32400 1 +09} {1159549200 28800 0 +08} {1427479200 32400 1 +09} {1443193200 28800 0 +08} {1458928800 32400 1 +09} {1474642800 28800 0 +08} } |
Changes to library/tzdata/Asia/Urumqi.
1 2 3 4 | # created by tools/tclZIC.tcl - do not edit set TZData(:Asia/Urumqi) { {-9223372036854775808 21020 0 LMT} | | | 1 2 3 4 5 6 | # created by tools/tclZIC.tcl - do not edit set TZData(:Asia/Urumqi) { {-9223372036854775808 21020 0 LMT} {-1325483420 21600 0 +06} } |
Changes to library/tzdata/Asia/Yangon.
1 2 3 4 5 | # created by tools/tclZIC.tcl - do not edit set TZData(:Asia/Yangon) { {-9223372036854775808 23080 0 LMT} {-2840163880 23080 0 RMT} | | | | | 1 2 3 4 5 6 7 8 9 | # created by tools/tclZIC.tcl - do not edit set TZData(:Asia/Yangon) { {-9223372036854775808 23080 0 LMT} {-2840163880 23080 0 RMT} {-1577946280 23400 0 +0630} {-873268200 32400 0 +09} {-778410000 23400 0 +0630} } |
Changes to library/tzdata/Atlantic/Azores.
1 2 3 4 5 | # created by tools/tclZIC.tcl - do not edit set TZData(:Atlantic/Azores) { {-9223372036854775808 -6160 0 LMT} {-2713904240 -6872 0 HMT} | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | < | | | < | | | < | | | < | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 | # created by tools/tclZIC.tcl - do not edit set TZData(:Atlantic/Azores) { {-9223372036854775808 -6160 0 LMT} {-2713904240 -6872 0 HMT} {-1830377128 -7200 0 -02} {-1689548400 -3600 1 -01} {-1677794400 -7200 0 -02} {-1667430000 -3600 1 -01} {-1647730800 -7200 0 -02} {-1635807600 -3600 1 -01} {-1616194800 -7200 0 -02} {-1604358000 -3600 1 -01} {-1584658800 -7200 0 -02} {-1572735600 -3600 1 -01} {-1553036400 -7200 0 -02} {-1541199600 -3600 1 -01} {-1521500400 -7200 0 -02} {-1442444400 -3600 1 -01} {-1426806000 -7200 0 -02} {-1379286000 -3600 1 -01} {-1364770800 -7200 0 -02} {-1348441200 -3600 1 -01} {-1333321200 -7200 0 -02} {-1316386800 -3600 1 -01} {-1301266800 -7200 0 -02} {-1284332400 -3600 1 -01} {-1269817200 -7200 0 -02} {-1221433200 -3600 1 -01} {-1206918000 -7200 0 -02} {-1191193200 -3600 1 -01} {-1175468400 -7200 0 -02} {-1127689200 -3600 1 -01} {-1111964400 -7200 0 -02} {-1096844400 -3600 1 -01} {-1080514800 -7200 0 -02} {-1063580400 -3600 1 -01} {-1049065200 -7200 0 -02} {-1033340400 -3600 1 -01} {-1017615600 -7200 0 -02} {-1002495600 -3600 1 -01} {-986166000 -7200 0 -02} {-969231600 -3600 1 -01} {-950482800 -7200 0 -02} {-942015600 -3600 1 -01} {-922662000 -7200 0 -02} {-906937200 -3600 1 -01} {-891126000 -7200 0 -02} {-877302000 -3600 1 -01} {-864000000 -3600 0 -01} {-857948400 -7200 0 -02} {-845852400 -3600 1 -01} {-831340800 -3600 0 -01} {-825894000 -7200 0 -02} {-814402800 -3600 1 -01} {-799891200 -3600 0 -01} {-794444400 -7200 0 -02} {-782953200 -3600 1 -01} {-768441600 -3600 0 -01} {-762994800 -7200 0 -02} {-749084400 -3600 1 -01} {-733359600 -7200 0 -02} {-717624000 -3600 1 -01} {-701899200 -7200 0 -02} {-686174400 -3600 1 -01} {-670449600 -7200 0 -02} {-654724800 -3600 1 -01} {-639000000 -7200 0 -02} {-591825600 -3600 1 -01} {-575496000 -7200 0 -02} {-559771200 -3600 1 -01} {-544046400 -7200 0 -02} {-528321600 -3600 1 -01} {-512596800 -7200 0 -02} {-496872000 -3600 1 -01} {-481147200 -7200 0 -02} {-465422400 -3600 1 -01} {-449697600 -7200 0 -02} {-433972800 -3600 1 -01} {-417643200 -7200 0 -02} {-401918400 -3600 1 -01} {-386193600 -7200 0 -02} {-370468800 -3600 1 -01} {-354744000 -7200 0 -02} {-339019200 -3600 1 -01} {-323294400 -7200 0 -02} {-307569600 -3600 1 -01} {-291844800 -7200 0 -02} {-276120000 -3600 1 -01} {-260395200 -7200 0 -02} {-244670400 -3600 1 -01} {-228340800 -7200 0 -02} {-212616000 -3600 1 -01} {-196891200 -7200 0 -02} {-181166400 -3600 1 -01} {-165441600 -7200 0 -02} {-149716800 -3600 1 -01} {-133992000 -7200 0 -02} {-118267200 -3600 0 -01} {228272400 0 1 +00} {243997200 -3600 0 -01} {260326800 0 1 +00} {276051600 -3600 0 -01} {291776400 0 1 +00} {307504800 -3600 0 -01} {323226000 0 1 +00} {338954400 -3600 0 -01} {354679200 0 1 +00} {370404000 -3600 0 -01} {386128800 0 1 +00} {401853600 -3600 0 -01} {417582000 0 1 +00} {433303200 -3600 0 -01} {449028000 0 1 +00} {465357600 -3600 0 -01} {481082400 0 1 +00} {496807200 -3600 0 -01} {512532000 0 1 +00} {528256800 -3600 0 -01} {543981600 0 1 +00} {559706400 -3600 0 -01} {575431200 0 1 +00} {591156000 -3600 0 -01} {606880800 0 1 +00} {622605600 -3600 0 -01} {638330400 0 1 +00} {654660000 -3600 0 -01} {670384800 0 1 +00} {686109600 -3600 0 -01} {701834400 0 1 +00} {733280400 0 0 +00} {749005200 -3600 0 -01} {764730000 0 1 +00} {780454800 -3600 0 -01} {796179600 0 1 +00} {811904400 -3600 0 -01} {828234000 0 1 +00} {846378000 -3600 0 -01} {859683600 0 1 +00} {877827600 -3600 0 -01} {891133200 0 1 +00} {909277200 -3600 0 -01} {922582800 0 1 +00} {941331600 -3600 0 -01} {954032400 0 1 +00} {972781200 -3600 0 -01} {985482000 0 1 +00} {1004230800 -3600 0 -01} {1017536400 0 1 +00} {1035680400 -3600 0 -01} {1048986000 0 1 +00} {1067130000 -3600 0 -01} {1080435600 0 1 +00} {1099184400 -3600 0 -01} {1111885200 0 1 +00} {1130634000 -3600 0 -01} {1143334800 0 1 +00} {1162083600 -3600 0 -01} {1174784400 0 1 +00} {1193533200 -3600 0 -01} {1206838800 0 1 +00} {1224982800 -3600 0 -01} {1238288400 0 1 +00} {1256432400 -3600 0 -01} {1269738000 0 1 +00} {1288486800 -3600 0 -01} {1301187600 0 1 +00} {1319936400 -3600 0 -01} {1332637200 0 1 +00} {1351386000 -3600 0 -01} {1364691600 0 1 +00} {1382835600 -3600 0 -01} {1396141200 0 1 +00} {1414285200 -3600 0 -01} {1427590800 0 1 +00} {1445734800 -3600 0 -01} {1459040400 0 1 +00} {1477789200 -3600 0 -01} {1490490000 0 1 +00} {1509238800 -3600 0 -01} {1521939600 0 1 +00} {1540688400 -3600 0 -01} {1553994000 0 1 +00} {1572138000 -3600 0 -01} {1585443600 0 1 +00} {1603587600 -3600 0 -01} {1616893200 0 1 +00} {1635642000 -3600 0 -01} {1648342800 0 1 +00} {1667091600 -3600 0 -01} {1679792400 0 1 +00} {1698541200 -3600 0 -01} {1711846800 0 1 +00} {1729990800 -3600 0 -01} {1743296400 0 1 +00} {1761440400 -3600 0 -01} {1774746000 0 1 +00} {1792890000 -3600 0 -01} {1806195600 0 1 +00} {1824944400 -3600 0 -01} {1837645200 0 1 +00} {1856394000 -3600 0 -01} {1869094800 0 1 +00} {1887843600 -3600 0 -01} {1901149200 0 1 +00} {1919293200 -3600 0 -01} {1932598800 0 1 +00} {1950742800 -3600 0 -01} {1964048400 0 1 +00} {1982797200 -3600 0 -01} {1995498000 0 1 +00} {2014246800 -3600 0 -01} {2026947600 0 1 +00} {2045696400 -3600 0 -01} {2058397200 0 1 +00} {2077146000 -3600 0 -01} {2090451600 0 1 +00} {2108595600 -3600 0 -01} {2121901200 0 1 +00} {2140045200 -3600 0 -01} {2153350800 0 1 +00} {2172099600 -3600 0 -01} {2184800400 0 1 +00} {2203549200 -3600 0 -01} {2216250000 0 1 +00} {2234998800 -3600 0 -01} {2248304400 0 1 +00} {2266448400 -3600 0 -01} {2279754000 0 1 +00} {2297898000 -3600 0 -01} {2311203600 0 1 +00} {2329347600 -3600 0 -01} {2342653200 0 1 +00} {2361402000 -3600 0 -01} {2374102800 0 1 +00} {2392851600 -3600 0 -01} {2405552400 0 1 +00} {2424301200 -3600 0 -01} {2437606800 0 1 +00} {2455750800 -3600 0 -01} {2469056400 0 1 +00} {2487200400 -3600 0 -01} {2500506000 0 1 +00} {2519254800 -3600 0 -01} {2531955600 0 1 +00} {2550704400 -3600 0 -01} {2563405200 0 1 +00} {2582154000 -3600 0 -01} {2595459600 0 1 +00} {2613603600 -3600 0 -01} {2626909200 0 1 +00} {2645053200 -3600 0 -01} {2658358800 0 1 +00} {2676502800 -3600 0 -01} {2689808400 0 1 +00} {2708557200 -3600 0 -01} {2721258000 0 1 +00} {2740006800 -3600 0 -01} {2752707600 0 1 +00} {2771456400 -3600 0 -01} {2784762000 0 1 +00} {2802906000 -3600 0 -01} {2816211600 0 1 +00} {2834355600 -3600 0 -01} {2847661200 0 1 +00} {2866410000 -3600 0 -01} {2879110800 0 1 +00} {2897859600 -3600 0 -01} {2910560400 0 1 +00} {2929309200 -3600 0 -01} {2942010000 0 1 +00} {2960758800 -3600 0 -01} {2974064400 0 1 +00} {2992208400 -3600 0 -01} {3005514000 0 1 +00} {3023658000 -3600 0 -01} {3036963600 0 1 +00} {3055712400 -3600 0 -01} {3068413200 0 1 +00} {3087162000 -3600 0 -01} {3099862800 0 1 +00} {3118611600 -3600 0 -01} {3131917200 0 1 +00} {3150061200 -3600 0 -01} {3163366800 0 1 +00} {3181510800 -3600 0 -01} {3194816400 0 1 +00} {3212960400 -3600 0 -01} {3226266000 0 1 +00} {3245014800 -3600 0 -01} {3257715600 0 1 +00} {3276464400 -3600 0 -01} {3289165200 0 1 +00} {3307914000 -3600 0 -01} {3321219600 0 1 +00} {3339363600 -3600 0 -01} {3352669200 0 1 +00} {3370813200 -3600 0 -01} {3384118800 0 1 +00} {3402867600 -3600 0 -01} {3415568400 0 1 +00} {3434317200 -3600 0 -01} {3447018000 0 1 +00} {3465766800 -3600 0 -01} {3479072400 0 1 +00} {3497216400 -3600 0 -01} {3510522000 0 1 +00} {3528666000 -3600 0 -01} {3541971600 0 1 +00} {3560115600 -3600 0 -01} {3573421200 0 1 +00} {3592170000 -3600 0 -01} {3604870800 0 1 +00} {3623619600 -3600 0 -01} {3636320400 0 1 +00} {3655069200 -3600 0 -01} {3668374800 0 1 +00} {3686518800 -3600 0 -01} {3699824400 0 1 +00} {3717968400 -3600 0 -01} {3731274000 0 1 +00} {3750022800 -3600 0 -01} {3762723600 0 1 +00} {3781472400 -3600 0 -01} {3794173200 0 1 +00} {3812922000 -3600 0 -01} {3825622800 0 1 +00} {3844371600 -3600 0 -01} {3857677200 0 1 +00} {3875821200 -3600 0 -01} {3889126800 0 1 +00} {3907270800 -3600 0 -01} {3920576400 0 1 +00} {3939325200 -3600 0 -01} {3952026000 0 1 +00} {3970774800 -3600 0 -01} {3983475600 0 1 +00} {4002224400 -3600 0 -01} {4015530000 0 1 +00} {4033674000 -3600 0 -01} {4046979600 0 1 +00} {4065123600 -3600 0 -01} {4078429200 0 1 +00} {4096573200 -3600 0 -01} } |
Changes to library/tzdata/Atlantic/Canary.
1 2 3 4 | # created by tools/tclZIC.tcl - do not edit set TZData(:Atlantic/Canary) { {-9223372036854775808 -3696 0 LMT} | | | 1 2 3 4 5 6 7 8 9 10 11 12 | # created by tools/tclZIC.tcl - do not edit set TZData(:Atlantic/Canary) { {-9223372036854775808 -3696 0 LMT} {-1509663504 -3600 0 -01} {-733874400 0 0 WET} {323827200 3600 1 WEST} {338950800 0 0 WET} {354675600 3600 1 WEST} {370400400 0 0 WET} {386125200 3600 1 WEST} {401850000 0 0 WET} |
︙ | ︙ |
Changes to library/tzdata/Atlantic/Cape_Verde.
1 2 3 4 | # created by tools/tclZIC.tcl - do not edit set TZData(:Atlantic/Cape_Verde) { {-9223372036854775808 -5644 0 LMT} | | | | | | 1 2 3 4 5 6 7 8 9 | # created by tools/tclZIC.tcl - do not edit set TZData(:Atlantic/Cape_Verde) { {-9223372036854775808 -5644 0 LMT} {-1988144756 -7200 0 -02} {-862610400 -3600 1 -01} {-764118000 -7200 0 -02} {186120000 -3600 0 -01} } |
Changes to library/tzdata/Atlantic/Madeira.
1 2 3 4 5 | # created by tools/tclZIC.tcl - do not edit set TZData(:Atlantic/Madeira) { {-9223372036854775808 -4056 0 LMT} {-2713906344 -4056 0 FMT} | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | < < < < | > > | | | < | | | < | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 | # created by tools/tclZIC.tcl - do not edit set TZData(:Atlantic/Madeira) { {-9223372036854775808 -4056 0 LMT} {-2713906344 -4056 0 FMT} {-1830379944 -3600 0 -01} {-1689552000 0 1 +00} {-1677798000 -3600 0 -01} {-1667433600 0 1 +00} {-1647734400 -3600 0 -01} {-1635811200 0 1 +00} {-1616198400 -3600 0 -01} {-1604361600 0 1 +00} {-1584662400 -3600 0 -01} {-1572739200 0 1 +00} {-1553040000 -3600 0 -01} {-1541203200 0 1 +00} {-1521504000 -3600 0 -01} {-1442448000 0 1 +00} {-1426809600 -3600 0 -01} {-1379289600 0 1 +00} {-1364774400 -3600 0 -01} {-1348444800 0 1 +00} {-1333324800 -3600 0 -01} {-1316390400 0 1 +00} {-1301270400 -3600 0 -01} {-1284336000 0 1 +00} {-1269820800 -3600 0 -01} {-1221436800 0 1 +00} {-1206921600 -3600 0 -01} {-1191196800 0 1 +00} {-1175472000 -3600 0 -01} {-1127692800 0 1 +00} {-1111968000 -3600 0 -01} {-1096848000 0 1 +00} {-1080518400 -3600 0 -01} {-1063584000 0 1 +00} {-1049068800 -3600 0 -01} {-1033344000 0 1 +00} {-1017619200 -3600 0 -01} {-1002499200 0 1 +00} {-986169600 -3600 0 -01} {-969235200 0 1 +00} {-950486400 -3600 0 -01} {-942019200 0 1 +00} {-922665600 -3600 0 -01} {-906940800 0 1 +00} {-891129600 -3600 0 -01} {-877305600 0 1 +00} {-864003600 0 0 +00} {-857952000 -3600 0 -01} {-845856000 0 1 +00} {-831344400 0 0 +00} {-825897600 -3600 0 -01} {-814406400 0 1 +00} {-799894800 0 0 +00} {-794448000 -3600 0 -01} {-782956800 0 1 +00} {-768445200 0 0 +00} {-762998400 -3600 0 -01} {-749088000 0 1 +00} {-733363200 -3600 0 -01} {-717627600 0 1 +00} {-701902800 -3600 0 -01} {-686178000 0 1 +00} {-670453200 -3600 0 -01} {-654728400 0 1 +00} {-639003600 -3600 0 -01} {-591829200 0 1 +00} {-575499600 -3600 0 -01} {-559774800 0 1 +00} {-544050000 -3600 0 -01} {-528325200 0 1 +00} {-512600400 -3600 0 -01} {-496875600 0 1 +00} {-481150800 -3600 0 -01} {-465426000 0 1 +00} {-449701200 -3600 0 -01} {-433976400 0 1 +00} {-417646800 -3600 0 -01} {-401922000 0 1 +00} {-386197200 -3600 0 -01} {-370472400 0 1 +00} {-354747600 -3600 0 -01} {-339022800 0 1 +00} {-323298000 -3600 0 -01} {-307573200 0 1 +00} {-291848400 -3600 0 -01} {-276123600 0 1 +00} {-260398800 -3600 0 -01} {-244674000 0 1 +00} {-228344400 -3600 0 -01} {-212619600 0 1 +00} {-196894800 -3600 0 -01} {-181170000 0 1 +00} {-165445200 -3600 0 -01} {-149720400 0 1 +00} {-133995600 -3600 0 -01} {-118270800 0 0 WET} {228268800 3600 1 WEST} {243993600 0 0 WET} {260323200 3600 1 WEST} {276048000 0 0 WET} {291772800 3600 1 WEST} {307501200 0 0 WET} |
︙ | ︙ |
Changes to library/tzdata/Atlantic/Reykjavik.
1 2 3 4 | # created by tools/tclZIC.tcl - do not edit set TZData(:Atlantic/Reykjavik) { {-9223372036854775808 -5280 0 LMT} | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 | # created by tools/tclZIC.tcl - do not edit set TZData(:Atlantic/Reykjavik) { {-9223372036854775808 -5280 0 LMT} {-1956609120 -3600 0 -01} {-1668211200 0 1 +00} {-1647212400 -3600 0 -01} {-1636675200 0 1 +00} {-1613430000 -3600 0 -01} {-1605139200 0 1 +00} {-1581894000 -3600 0 -01} {-1539561600 0 1 +00} {-1531350000 -3600 0 -01} {-968025600 0 1 +00} {-952293600 -3600 0 -01} {-942008400 0 1 +00} {-920239200 -3600 0 -01} {-909957600 0 1 +00} {-888789600 -3600 0 -01} {-877903200 0 1 +00} {-857944800 -3600 0 -01} {-846453600 0 1 +00} {-826495200 -3600 0 -01} {-815004000 0 1 +00} {-795045600 -3600 0 -01} {-783554400 0 1 +00} {-762991200 -3600 0 -01} {-752104800 0 1 +00} {-731541600 -3600 0 -01} {-717631200 0 1 +00} {-700092000 -3600 0 -01} {-686181600 0 1 +00} {-668642400 -3600 0 -01} {-654732000 0 1 +00} {-636588000 -3600 0 -01} {-623282400 0 1 +00} {-605743200 -3600 0 -01} {-591832800 0 1 +00} {-573688800 -3600 0 -01} {-559778400 0 1 +00} {-542239200 -3600 0 -01} {-528328800 0 1 +00} {-510789600 -3600 0 -01} {-496879200 0 1 +00} {-479340000 -3600 0 -01} {-465429600 0 1 +00} {-447890400 -3600 0 -01} {-433980000 0 1 +00} {-415836000 -3600 0 -01} {-401925600 0 1 +00} {-384386400 -3600 0 -01} {-370476000 0 1 +00} {-352936800 -3600 0 -01} {-339026400 0 1 +00} {-321487200 -3600 0 -01} {-307576800 0 1 +00} {-290037600 -3600 0 -01} {-276127200 0 1 +00} {-258588000 -3600 0 -01} {-244677600 0 1 +00} {-226533600 -3600 0 -01} {-212623200 0 1 +00} {-195084000 -3600 0 -01} {-181173600 0 1 +00} {-163634400 -3600 0 -01} {-149724000 0 1 +00} {-132184800 -3600 0 -01} {-118274400 0 1 +00} {-100735200 -3600 0 -01} {-86824800 0 1 +00} {-68680800 -3600 0 -01} {-54770400 0 0 GMT} } |
Changes to library/tzdata/Atlantic/South_Georgia.
1 2 3 4 | # created by tools/tclZIC.tcl - do not edit set TZData(:Atlantic/South_Georgia) { {-9223372036854775808 -8768 0 LMT} | | | 1 2 3 4 5 6 | # created by tools/tclZIC.tcl - do not edit set TZData(:Atlantic/South_Georgia) { {-9223372036854775808 -8768 0 LMT} {-2524512832 -7200 0 -02} } |
Changes to library/tzdata/Atlantic/Stanley.
1 2 3 4 5 | # created by tools/tclZIC.tcl - do not edit set TZData(:Atlantic/Stanley) { {-9223372036854775808 -13884 0 LMT} {-2524507716 -13884 0 SMT} | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 | # created by tools/tclZIC.tcl - do not edit set TZData(:Atlantic/Stanley) { {-9223372036854775808 -13884 0 LMT} {-2524507716 -13884 0 SMT} {-1824235716 -14400 0 -04} {-1018209600 -10800 1 -03} {-1003093200 -14400 0 -04} {-986760000 -10800 1 -03} {-971643600 -14400 0 -04} {-954705600 -10800 1 -03} {-939589200 -14400 0 -04} {-923256000 -10800 1 -03} {-908139600 -14400 0 -04} {-891806400 -10800 1 -03} {-876690000 -14400 0 -04} {-860356800 -10800 1 -03} {420606000 -7200 0 -03} {433303200 -7200 1 -02} {452052000 -10800 0 -03} {464151600 -7200 1 -02} {483501600 -10800 0 -03} {495597600 -14400 0 -04} {495604800 -10800 1 -03} {514350000 -14400 0 -04} {527054400 -10800 1 -03} {545799600 -14400 0 -04} {558504000 -10800 1 -03} {577249200 -14400 0 -04} {589953600 -10800 1 -03} {608698800 -14400 0 -04} {621403200 -10800 1 -03} {640753200 -14400 0 -04} {652852800 -10800 1 -03} {672202800 -14400 0 -04} {684907200 -10800 1 -03} {703652400 -14400 0 -04} {716356800 -10800 1 -03} {735102000 -14400 0 -04} {747806400 -10800 1 -03} {766551600 -14400 0 -04} {779256000 -10800 1 -03} {798001200 -14400 0 -04} {810705600 -10800 1 -03} {830055600 -14400 0 -04} {842760000 -10800 1 -03} {861505200 -14400 0 -04} {874209600 -10800 1 -03} {892954800 -14400 0 -04} {905659200 -10800 1 -03} {924404400 -14400 0 -04} {937108800 -10800 1 -03} {955854000 -14400 0 -04} {968558400 -10800 1 -03} {987310800 -14400 0 -04} {999410400 -10800 1 -03} {1019365200 -14400 0 -04} {1030860000 -10800 1 -03} {1050814800 -14400 0 -04} {1062914400 -10800 1 -03} {1082264400 -14400 0 -04} {1094364000 -10800 1 -03} {1113714000 -14400 0 -04} {1125813600 -10800 1 -03} {1145163600 -14400 0 -04} {1157263200 -10800 1 -03} {1176613200 -14400 0 -04} {1188712800 -10800 1 -03} {1208667600 -14400 0 -04} {1220767200 -10800 1 -03} {1240117200 -14400 0 -04} {1252216800 -10800 1 -03} {1271566800 -14400 0 -04} {1283662800 -10800 0 -03} } |
Changes to library/tzdata/Australia/Eucla.
1 2 3 4 | # created by tools/tclZIC.tcl - do not edit set TZData(:Australia/Eucla) { {-9223372036854775808 30928 0 LMT} | | | | | | | | | | | | | | | | | | | | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | # created by tools/tclZIC.tcl - do not edit set TZData(:Australia/Eucla) { {-9223372036854775808 30928 0 LMT} {-2337928528 31500 0 +0945} {-1672562640 35100 1 +0945} {-1665387900 31500 0 +0945} {-883637100 35100 1 +0945} {-876123900 31500 0 +0945} {-860395500 35100 1 +0945} {-844674300 31500 0 +0945} {-836473500 35100 0 +0945} {152039700 35100 1 +0945} {162926100 31500 0 +0945} {436295700 35100 1 +0945} {447182100 31500 0 +0945} {690311700 35100 1 +0945} {699383700 31500 0 +0945} {1165079700 35100 1 +0945} {1174756500 31500 0 +0945} {1193505300 35100 1 +0945} {1206810900 31500 0 +0945} {1224954900 35100 1 +0945} {1238260500 31500 0 +0945} } |
Changes to library/tzdata/Australia/Lord_Howe.
1 2 3 4 5 | # created by tools/tclZIC.tcl - do not edit set TZData(:Australia/Lord_Howe) { {-9223372036854775808 38180 0 LMT} {-2364114980 36000 0 AEST} | | | | | | | | | | > | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 | # created by tools/tclZIC.tcl - do not edit set TZData(:Australia/Lord_Howe) { {-9223372036854775808 38180 0 LMT} {-2364114980 36000 0 AEST} {352216800 37800 0 +1130} {372785400 41400 1 +1130} {384273000 37800 0 +1130} {404839800 41400 1 +1130} {415722600 37800 0 +1130} {436289400 41400 1 +1130} {447172200 37800 0 +1130} {467739000 41400 1 +1130} {478621800 37800 0 +1130} {488984400 37800 0 +11} {499188600 39600 1 +11} {511282800 37800 0 +11} {530033400 39600 1 +11} {542732400 37800 0 +11} {562087800 39600 1 +11} {574786800 37800 0 +11} {594142200 39600 1 +11} {606236400 37800 0 +11} {625591800 39600 1 +11} {636476400 37800 0 +11} {657041400 39600 1 +11} {667926000 37800 0 +11} {688491000 39600 1 +11} {699375600 37800 0 +11} {719940600 39600 1 +11} {731430000 37800 0 +11} {751995000 39600 1 +11} {762879600 37800 0 +11} {783444600 39600 1 +11} {794329200 37800 0 +11} {814894200 39600 1 +11} {828198000 37800 0 +11} {846343800 39600 1 +11} {859647600 37800 0 +11} {877793400 39600 1 +11} {891097200 37800 0 +11} {909243000 39600 1 +11} {922546800 37800 0 +11} {941297400 39600 1 +11} {953996400 37800 0 +11} {967303800 39600 1 +11} {985446000 37800 0 +11} {1004196600 39600 1 +11} {1017500400 37800 0 +11} {1035646200 39600 1 +11} {1048950000 37800 0 +11} {1067095800 39600 1 +11} {1080399600 37800 0 +11} {1099150200 39600 1 +11} {1111849200 37800 0 +11} {1130599800 39600 1 +11} {1143903600 37800 0 +11} {1162049400 39600 1 +11} {1174748400 37800 0 +11} {1193499000 39600 1 +11} {1207407600 37800 0 +11} {1223134200 39600 1 +11} {1238857200 37800 0 +11} {1254583800 39600 1 +11} {1270306800 37800 0 +11} {1286033400 39600 1 +11} {1301756400 37800 0 +11} {1317483000 39600 1 +11} {1333206000 37800 0 +11} {1349537400 39600 1 +11} {1365260400 37800 0 +11} {1380987000 39600 1 +11} {1396710000 37800 0 +11} {1412436600 39600 1 +11} {1428159600 37800 0 +11} {1443886200 39600 1 +11} {1459609200 37800 0 +11} {1475335800 39600 1 +11} {1491058800 37800 0 +11} {1506785400 39600 1 +11} {1522508400 37800 0 +11} {1538839800 39600 1 +11} {1554562800 37800 0 +11} {1570289400 39600 1 +11} {1586012400 37800 0 +11} {1601739000 39600 1 +11} {1617462000 37800 0 +11} {1633188600 39600 1 +11} {1648911600 37800 0 +11} {1664638200 39600 1 +11} {1680361200 37800 0 +11} {1696087800 39600 1 +11} {1712415600 37800 0 +11} {1728142200 39600 1 +11} {1743865200 37800 0 +11} {1759591800 39600 1 +11} {1775314800 37800 0 +11} {1791041400 39600 1 +11} {1806764400 37800 0 +11} {1822491000 39600 1 +11} {1838214000 37800 0 +11} {1853940600 39600 1 +11} {1869663600 37800 0 +11} {1885995000 39600 1 +11} {1901718000 37800 0 +11} {1917444600 39600 1 +11} {1933167600 37800 0 +11} {1948894200 39600 1 +11} {1964617200 37800 0 +11} {1980343800 39600 1 +11} {1996066800 37800 0 +11} {2011793400 39600 1 +11} {2027516400 37800 0 +11} {2043243000 39600 1 +11} {2058966000 37800 0 +11} {2075297400 39600 1 +11} {2091020400 37800 0 +11} {2106747000 39600 1 +11} {2122470000 37800 0 +11} {2138196600 39600 1 +11} {2153919600 37800 0 +11} {2169646200 39600 1 +11} {2185369200 37800 0 +11} {2201095800 39600 1 +11} {2216818800 37800 0 +11} {2233150200 39600 1 +11} {2248873200 37800 0 +11} {2264599800 39600 1 +11} {2280322800 37800 0 +11} {2296049400 39600 1 +11} {2311772400 37800 0 +11} {2327499000 39600 1 +11} {2343222000 37800 0 +11} {2358948600 39600 1 +11} {2374671600 37800 0 +11} {2390398200 39600 1 +11} {2406121200 37800 0 +11} {2422452600 39600 1 +11} {2438175600 37800 0 +11} {2453902200 39600 1 +11} {2469625200 37800 0 +11} {2485351800 39600 1 +11} {2501074800 37800 0 +11} {2516801400 39600 1 +11} {2532524400 37800 0 +11} {2548251000 39600 1 +11} {2563974000 37800 0 +11} {2579700600 39600 1 +11} {2596028400 37800 0 +11} {2611755000 39600 1 +11} {2627478000 37800 0 +11} {2643204600 39600 1 +11} {2658927600 37800 0 +11} {2674654200 39600 1 +11} {2690377200 37800 0 +11} {2706103800 39600 1 +11} {2721826800 37800 0 +11} {2737553400 39600 1 +11} {2753276400 37800 0 +11} {2769607800 39600 1 +11} {2785330800 37800 0 +11} {2801057400 39600 1 +11} {2816780400 37800 0 +11} {2832507000 39600 1 +11} {2848230000 37800 0 +11} {2863956600 39600 1 +11} {2879679600 37800 0 +11} {2895406200 39600 1 +11} {2911129200 37800 0 +11} {2926855800 39600 1 +11} {2942578800 37800 0 +11} {2958910200 39600 1 +11} {2974633200 37800 0 +11} {2990359800 39600 1 +11} {3006082800 37800 0 +11} {3021809400 39600 1 +11} {3037532400 37800 0 +11} {3053259000 39600 1 +11} {3068982000 37800 0 +11} {3084708600 39600 1 +11} {3100431600 37800 0 +11} {3116763000 39600 1 +11} {3132486000 37800 0 +11} {3148212600 39600 1 +11} {3163935600 37800 0 +11} {3179662200 39600 1 +11} {3195385200 37800 0 +11} {3211111800 39600 1 +11} {3226834800 37800 0 +11} {3242561400 39600 1 +11} {3258284400 37800 0 +11} {3274011000 39600 1 +11} {3289734000 37800 0 +11} {3306065400 39600 1 +11} {3321788400 37800 0 +11} {3337515000 39600 1 +11} {3353238000 37800 0 +11} {3368964600 39600 1 +11} {3384687600 37800 0 +11} {3400414200 39600 1 +11} {3416137200 37800 0 +11} {3431863800 39600 1 +11} {3447586800 37800 0 +11} {3463313400 39600 1 +11} {3479641200 37800 0 +11} {3495367800 39600 1 +11} {3511090800 37800 0 +11} {3526817400 39600 1 +11} {3542540400 37800 0 +11} {3558267000 39600 1 +11} {3573990000 37800 0 +11} {3589716600 39600 1 +11} {3605439600 37800 0 +11} {3621166200 39600 1 +11} {3636889200 37800 0 +11} {3653220600 39600 1 +11} {3668943600 37800 0 +11} {3684670200 39600 1 +11} {3700393200 37800 0 +11} {3716119800 39600 1 +11} {3731842800 37800 0 +11} {3747569400 39600 1 +11} {3763292400 37800 0 +11} {3779019000 39600 1 +11} {3794742000 37800 0 +11} {3810468600 39600 1 +11} {3826191600 37800 0 +11} {3842523000 39600 1 +11} {3858246000 37800 0 +11} {3873972600 39600 1 +11} {3889695600 37800 0 +11} {3905422200 39600 1 +11} {3921145200 37800 0 +11} {3936871800 39600 1 +11} {3952594800 37800 0 +11} {3968321400 39600 1 +11} {3984044400 37800 0 +11} {4000375800 39600 1 +11} {4016098800 37800 0 +11} {4031825400 39600 1 +11} {4047548400 37800 0 +11} {4063275000 39600 1 +11} {4078998000 37800 0 +11} {4094724600 39600 1 +11} } |
Changes to library/tzdata/Europe/Amsterdam.
︙ | ︙ | |||
42 43 44 45 46 47 48 | {-1124489972 4772 1 NST} {-1111961972 1172 0 AMT} {-1092953972 4772 1 NST} {-1080512372 1172 0 AMT} {-1061331572 4772 1 NST} {-1049062772 1172 0 AMT} {-1029190772 4772 1 NST} | | | | | | | | 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 | {-1124489972 4772 1 NST} {-1111961972 1172 0 AMT} {-1092953972 4772 1 NST} {-1080512372 1172 0 AMT} {-1061331572 4772 1 NST} {-1049062772 1172 0 AMT} {-1029190772 4772 1 NST} {-1025741972 4800 0 +0120} {-1017613200 1200 0 +0020} {-998259600 4800 1 +0120} {-986163600 1200 0 +0020} {-966723600 4800 1 +0120} {-954109200 1200 0 +0020} {-935022000 7200 0 CEST} {-857257200 3600 0 CET} {-844556400 7200 1 CEST} {-828226800 3600 0 CET} {-812502000 7200 1 CEST} {-796777200 3600 0 CET} {-781052400 7200 0 CEST} |
︙ | ︙ |
Changes to library/tzdata/Europe/Madrid.
1 2 3 4 | # created by tools/tclZIC.tcl - do not edit set TZData(:Europe/Madrid) { {-9223372036854775808 -884 0 LMT} | < < | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 | # created by tools/tclZIC.tcl - do not edit set TZData(:Europe/Madrid) { {-9223372036854775808 -884 0 LMT} {-2177452800 0 0 WET} {-1631926800 3600 1 WEST} {-1616889600 0 0 WET} {-1601168400 3600 1 WEST} {-1585353600 0 0 WET} {-1442451600 3600 1 WEST} {-1427673600 0 0 WET} {-1379293200 3600 1 WEST} {-1364774400 0 0 WET} {-1348448400 3600 1 WEST} {-1333324800 0 0 WET} {-1316390400 3600 1 WEST} {-1301270400 0 0 WET} {-1284339600 3600 1 WEST} {-1269820800 0 0 WET} {-1026954000 3600 1 WEST} {-1017619200 0 0 WET} {-1001898000 3600 1 WEST} {-999482400 7200 1 WEMT} {-986090400 3600 1 WEST} {-954115200 0 0 WET} {-940208400 3600 0 CET} {-873079200 7200 1 CEST} {-862621200 3600 0 CET} {-842839200 7200 1 CEST} {-828320400 3600 0 CET} {-811389600 7200 1 CEST} {-796870800 3600 0 CET} {-779940000 7200 1 CEST} {-765421200 3600 0 CET} {-748490400 7200 1 CEST} {-733971600 3600 0 CET} {-652327200 7200 1 CEST} {-639018000 3600 0 CET} {135122400 7200 1 CEST} {150246000 3600 0 CET} {166572000 7200 1 CEST} {181695600 3600 0 CET} {196812000 7200 1 CEST} {212540400 3600 0 CET} {228866400 7200 1 CEST} {243990000 3600 0 CET} {260326800 7200 1 CEST} {276051600 3600 0 CET} {283993200 3600 0 CET} {291776400 7200 1 CEST} {307501200 3600 0 CET} {323830800 7200 1 CEST} {338950800 3600 0 CET} {354675600 7200 1 CEST} {370400400 3600 0 CET} |
︙ | ︙ |
Added library/tzdata/Europe/Saratov.
> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 | # created by tools/tclZIC.tcl - do not edit set TZData(:Europe/Saratov) { {-9223372036854775808 11058 0 LMT} {-1593820800 10800 0 +03} {-1247540400 14400 0 +05} {354916800 18000 1 +05} {370724400 14400 0 +04} {386452800 18000 1 +05} {402260400 14400 0 +04} {417988800 18000 1 +05} {433796400 14400 0 +04} {449611200 18000 1 +05} {465343200 14400 0 +04} {481068000 18000 1 +05} {496792800 14400 0 +04} {512517600 18000 1 +05} {528242400 14400 0 +04} {543967200 18000 1 +05} {559692000 14400 0 +04} {575416800 10800 0 +04} {575420400 14400 1 +04} {591145200 10800 0 +03} {606870000 14400 1 +04} {622594800 10800 0 +03} {638319600 14400 1 +04} {654649200 10800 0 +03} {670374000 14400 0 +04} {701820000 10800 0 +04} {701823600 14400 1 +04} {717548400 10800 0 +03} {733273200 14400 1 +04} {748998000 10800 0 +03} {764722800 14400 1 +04} {780447600 10800 0 +03} {796172400 14400 1 +04} {811897200 10800 0 +03} {828226800 14400 1 +04} {846370800 10800 0 +03} {859676400 14400 1 +04} {877820400 10800 0 +03} {891126000 14400 1 +04} {909270000 10800 0 +03} {922575600 14400 1 +04} {941324400 10800 0 +03} {954025200 14400 1 +04} {972774000 10800 0 +03} {985474800 14400 1 +04} {1004223600 10800 0 +03} {1017529200 14400 1 +04} {1035673200 10800 0 +03} {1048978800 14400 1 +04} {1067122800 10800 0 +03} {1080428400 14400 1 +04} {1099177200 10800 0 +03} {1111878000 14400 1 +04} {1130626800 10800 0 +03} {1143327600 14400 1 +04} {1162076400 10800 0 +03} {1174777200 14400 1 +04} {1193526000 10800 0 +03} {1206831600 14400 1 +04} {1224975600 10800 0 +03} {1238281200 14400 1 +04} {1256425200 10800 0 +03} {1269730800 14400 1 +04} {1288479600 10800 0 +03} {1301180400 14400 0 +04} {1414274400 10800 0 +03} {1480806000 14400 0 +04} } |
Changes to library/tzdata/Europe/Zaporozhye.
1 2 3 4 | # created by tools/tclZIC.tcl - do not edit set TZData(:Europe/Zaporozhye) { {-9223372036854775808 8440 0 LMT} | | | 1 2 3 4 5 6 7 8 9 10 11 12 | # created by tools/tclZIC.tcl - do not edit set TZData(:Europe/Zaporozhye) { {-9223372036854775808 8440 0 LMT} {-2840149240 8400 0 +0220} {-1441160400 7200 0 EET} {-1247536800 10800 0 MSK} {-894769200 3600 0 CET} {-857257200 3600 0 CET} {-844556400 7200 1 CEST} {-828226800 3600 0 CET} {-826419600 10800 0 MSD} |
︙ | ︙ |
Changes to library/tzdata/Indian/Chagos.
1 2 3 4 | # created by tools/tclZIC.tcl - do not edit set TZData(:Indian/Chagos) { {-9223372036854775808 17380 0 LMT} | | | | 1 2 3 4 5 6 7 | # created by tools/tclZIC.tcl - do not edit set TZData(:Indian/Chagos) { {-9223372036854775808 17380 0 LMT} {-1988167780 18000 0 +05} {820436400 21600 0 +06} } |
Changes to library/tzdata/Indian/Christmas.
1 2 3 4 | # created by tools/tclZIC.tcl - do not edit set TZData(:Indian/Christmas) { {-9223372036854775808 25372 0 LMT} | | | 1 2 3 4 5 6 | # created by tools/tclZIC.tcl - do not edit set TZData(:Indian/Christmas) { {-9223372036854775808 25372 0 LMT} {-2364102172 25200 0 +07} } |
Changes to library/tzdata/Indian/Cocos.
1 2 3 4 | # created by tools/tclZIC.tcl - do not edit set TZData(:Indian/Cocos) { {-9223372036854775808 23260 0 LMT} | | | 1 2 3 4 5 6 | # created by tools/tclZIC.tcl - do not edit set TZData(:Indian/Cocos) { {-9223372036854775808 23260 0 LMT} {-2209012060 23400 0 +0630} } |
Changes to library/tzdata/Indian/Mahe.
1 2 3 4 | # created by tools/tclZIC.tcl - do not edit set TZData(:Indian/Mahe) { {-9223372036854775808 13308 0 LMT} | | | 1 2 3 4 5 6 | # created by tools/tclZIC.tcl - do not edit set TZData(:Indian/Mahe) { {-9223372036854775808 13308 0 LMT} {-2006653308 14400 0 +04} } |
Changes to library/tzdata/Indian/Maldives.
1 2 3 4 5 | # created by tools/tclZIC.tcl - do not edit set TZData(:Indian/Maldives) { {-9223372036854775808 17640 0 LMT} {-2840158440 17640 0 MMT} | | | 1 2 3 4 5 6 7 | # created by tools/tclZIC.tcl - do not edit set TZData(:Indian/Maldives) { {-9223372036854775808 17640 0 LMT} {-2840158440 17640 0 MMT} {-315636840 18000 0 +05} } |
Changes to library/tzdata/Indian/Mauritius.
1 2 3 4 | # created by tools/tclZIC.tcl - do not edit set TZData(:Indian/Mauritius) { {-9223372036854775808 13800 0 LMT} | | | | | | | 1 2 3 4 5 6 7 8 9 10 | # created by tools/tclZIC.tcl - do not edit set TZData(:Indian/Mauritius) { {-9223372036854775808 13800 0 LMT} {-1988164200 14400 0 +04} {403041600 18000 1 +05} {417034800 14400 0 +04} {1224972000 18000 1 +05} {1238274000 14400 0 +04} } |
Changes to library/tzdata/Indian/Reunion.
1 2 3 4 | # created by tools/tclZIC.tcl - do not edit set TZData(:Indian/Reunion) { {-9223372036854775808 13312 0 LMT} | | | 1 2 3 4 5 6 | # created by tools/tclZIC.tcl - do not edit set TZData(:Indian/Reunion) { {-9223372036854775808 13312 0 LMT} {-1848886912 14400 0 +04} } |
Changes to library/tzdata/Pacific/Apia.
1 2 3 4 5 | # created by tools/tclZIC.tcl - do not edit set TZData(:Pacific/Apia) { {-9223372036854775808 45184 0 LMT} {-2855737984 -41216 0 LMT} | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 | # created by tools/tclZIC.tcl - do not edit set TZData(:Pacific/Apia) { {-9223372036854775808 45184 0 LMT} {-2855737984 -41216 0 LMT} {-1861878784 -41400 0 -1130} {-631110600 -39600 0 -10} {1285498800 -36000 1 -10} {1301752800 -39600 0 -10} {1316872800 -36000 1 -10} {1325239200 50400 0 +14} {1333202400 46800 0 +14} {1348927200 50400 1 +14} {1365256800 46800 0 +14} {1380376800 50400 1 +14} {1396706400 46800 0 +14} {1411826400 50400 1 +14} {1428156000 46800 0 +14} {1443276000 50400 1 +14} {1459605600 46800 0 +14} {1474725600 50400 1 +14} {1491055200 46800 0 +14} {1506175200 50400 1 +14} {1522504800 46800 0 +14} {1538229600 50400 1 +14} {1554559200 46800 0 +14} {1569679200 50400 1 +14} {1586008800 46800 0 +14} {1601128800 50400 1 +14} {1617458400 46800 0 +14} {1632578400 50400 1 +14} {1648908000 46800 0 +14} {1664028000 50400 1 +14} {1680357600 46800 0 +14} {1695477600 50400 1 +14} {1712412000 46800 0 +14} {1727532000 50400 1 +14} {1743861600 46800 0 +14} {1758981600 50400 1 +14} {1775311200 46800 0 +14} {1790431200 50400 1 +14} {1806760800 46800 0 +14} {1821880800 50400 1 +14} {1838210400 46800 0 +14} {1853330400 50400 1 +14} {1869660000 46800 0 +14} {1885384800 50400 1 +14} {1901714400 46800 0 +14} {1916834400 50400 1 +14} {1933164000 46800 0 +14} {1948284000 50400 1 +14} {1964613600 46800 0 +14} {1979733600 50400 1 +14} {1996063200 46800 0 +14} {2011183200 50400 1 +14} {2027512800 46800 0 +14} {2042632800 50400 1 +14} {2058962400 46800 0 +14} {2074687200 50400 1 +14} {2091016800 46800 0 +14} {2106136800 50400 1 +14} {2122466400 46800 0 +14} {2137586400 50400 1 +14} {2153916000 46800 0 +14} {2169036000 50400 1 +14} {2185365600 46800 0 +14} {2200485600 50400 1 +14} {2216815200 46800 0 +14} {2232540000 50400 1 +14} {2248869600 46800 0 +14} {2263989600 50400 1 +14} {2280319200 46800 0 +14} {2295439200 50400 1 +14} {2311768800 46800 0 +14} {2326888800 50400 1 +14} {2343218400 46800 0 +14} {2358338400 50400 1 +14} {2374668000 46800 0 +14} {2389788000 50400 1 +14} {2406117600 46800 0 +14} {2421842400 50400 1 +14} {2438172000 46800 0 +14} {2453292000 50400 1 +14} {2469621600 46800 0 +14} {2484741600 50400 1 +14} {2501071200 46800 0 +14} {2516191200 50400 1 +14} {2532520800 46800 0 +14} {2547640800 50400 1 +14} {2563970400 46800 0 +14} {2579090400 50400 1 +14} {2596024800 46800 0 +14} {2611144800 50400 1 +14} {2627474400 46800 0 +14} {2642594400 50400 1 +14} {2658924000 46800 0 +14} {2674044000 50400 1 +14} {2690373600 46800 0 +14} {2705493600 50400 1 +14} {2721823200 46800 0 +14} {2736943200 50400 1 +14} {2753272800 46800 0 +14} {2768997600 50400 1 +14} {2785327200 46800 0 +14} {2800447200 50400 1 +14} {2816776800 46800 0 +14} {2831896800 50400 1 +14} {2848226400 46800 0 +14} {2863346400 50400 1 +14} {2879676000 46800 0 +14} {2894796000 50400 1 +14} {2911125600 46800 0 +14} {2926245600 50400 1 +14} {2942575200 46800 0 +14} {2958300000 50400 1 +14} {2974629600 46800 0 +14} {2989749600 50400 1 +14} {3006079200 46800 0 +14} {3021199200 50400 1 +14} {3037528800 46800 0 +14} {3052648800 50400 1 +14} {3068978400 46800 0 +14} {3084098400 50400 1 +14} {3100428000 46800 0 +14} {3116152800 50400 1 +14} {3132482400 46800 0 +14} {3147602400 50400 1 +14} {3163932000 46800 0 +14} {3179052000 50400 1 +14} {3195381600 46800 0 +14} {3210501600 50400 1 +14} {3226831200 46800 0 +14} {3241951200 50400 1 +14} {3258280800 46800 0 +14} {3273400800 50400 1 +14} {3289730400 46800 0 +14} {3305455200 50400 1 +14} {3321784800 46800 0 +14} {3336904800 50400 1 +14} {3353234400 46800 0 +14} {3368354400 50400 1 +14} {3384684000 46800 0 +14} {3399804000 50400 1 +14} {3416133600 46800 0 +14} {3431253600 50400 1 +14} {3447583200 46800 0 +14} {3462703200 50400 1 +14} {3479637600 46800 0 +14} {3494757600 50400 1 +14} {3511087200 46800 0 +14} {3526207200 50400 1 +14} {3542536800 46800 0 +14} {3557656800 50400 1 +14} {3573986400 46800 0 +14} {3589106400 50400 1 +14} {3605436000 46800 0 +14} {3620556000 50400 1 +14} {3636885600 46800 0 +14} {3652610400 50400 1 +14} {3668940000 46800 0 +14} {3684060000 50400 1 +14} {3700389600 46800 0 +14} {3715509600 50400 1 +14} {3731839200 46800 0 +14} {3746959200 50400 1 +14} {3763288800 46800 0 +14} {3778408800 50400 1 +14} {3794738400 46800 0 +14} {3809858400 50400 1 +14} {3826188000 46800 0 +14} {3841912800 50400 1 +14} {3858242400 46800 0 +14} {3873362400 50400 1 +14} {3889692000 46800 0 +14} {3904812000 50400 1 +14} {3921141600 46800 0 +14} {3936261600 50400 1 +14} {3952591200 46800 0 +14} {3967711200 50400 1 +14} {3984040800 46800 0 +14} {3999765600 50400 1 +14} {4016095200 46800 0 +14} {4031215200 50400 1 +14} {4047544800 46800 0 +14} {4062664800 50400 1 +14} {4078994400 46800 0 +14} {4094114400 50400 1 +14} } |
Changes to library/tzdata/Pacific/Bougainville.
1 2 3 4 5 | # created by tools/tclZIC.tcl - do not edit set TZData(:Pacific/Bougainville) { {-9223372036854775808 37336 0 LMT} {-2840178136 35312 0 PMMT} | | | | | | 1 2 3 4 5 6 7 8 9 10 | # created by tools/tclZIC.tcl - do not edit set TZData(:Pacific/Bougainville) { {-9223372036854775808 37336 0 LMT} {-2840178136 35312 0 PMMT} {-2366790512 36000 0 +10} {-868010400 32400 0 +09} {-768906000 36000 0 +10} {1419696000 39600 0 +11} } |
Changes to library/tzdata/Pacific/Chatham.
1 2 3 4 | # created by tools/tclZIC.tcl - do not edit set TZData(:Pacific/Chatham) { {-9223372036854775808 44028 0 LMT} | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 | # created by tools/tclZIC.tcl - do not edit set TZData(:Pacific/Chatham) { {-9223372036854775808 44028 0 LMT} {-3192437628 44100 0 +1215} {-757426500 45900 0 +1345} {152632800 49500 1 +1345} {162309600 45900 0 +1345} {183477600 49500 1 +1345} {194968800 45900 0 +1345} {215532000 49500 1 +1345} {226418400 45900 0 +1345} {246981600 49500 1 +1345} {257868000 45900 0 +1345} {278431200 49500 1 +1345} {289317600 45900 0 +1345} {309880800 49500 1 +1345} {320767200 45900 0 +1345} {341330400 49500 1 +1345} {352216800 45900 0 +1345} {372780000 49500 1 +1345} {384271200 45900 0 +1345} {404834400 49500 1 +1345} {415720800 45900 0 +1345} {436284000 49500 1 +1345} {447170400 45900 0 +1345} {467733600 49500 1 +1345} {478620000 45900 0 +1345} {499183200 49500 1 +1345} {510069600 45900 0 +1345} {530632800 49500 1 +1345} {541519200 45900 0 +1345} {562082400 49500 1 +1345} {573573600 45900 0 +1345} {594136800 49500 1 +1345} {605023200 45900 0 +1345} {623772000 49500 1 +1345} {637682400 45900 0 +1345} {655221600 49500 1 +1345} {669132000 45900 0 +1345} {686671200 49500 1 +1345} {700581600 45900 0 +1345} {718120800 49500 1 +1345} {732636000 45900 0 +1345} {749570400 49500 1 +1345} {764085600 45900 0 +1345} {781020000 49500 1 +1345} {795535200 45900 0 +1345} {812469600 49500 1 +1345} {826984800 45900 0 +1345} {844524000 49500 1 +1345} {858434400 45900 0 +1345} {875973600 49500 1 +1345} {889884000 45900 0 +1345} {907423200 49500 1 +1345} {921938400 45900 0 +1345} {938872800 49500 1 +1345} {953388000 45900 0 +1345} {970322400 49500 1 +1345} {984837600 45900 0 +1345} {1002376800 49500 1 +1345} {1016287200 45900 0 +1345} {1033826400 49500 1 +1345} {1047736800 45900 0 +1345} {1065276000 49500 1 +1345} {1079791200 45900 0 +1345} {1096725600 49500 1 +1345} {1111240800 45900 0 +1345} {1128175200 49500 1 +1345} {1142690400 45900 0 +1345} {1159624800 49500 1 +1345} {1174140000 45900 0 +1345} {1191074400 49500 1 +1345} {1207404000 45900 0 +1345} {1222524000 49500 1 +1345} {1238853600 45900 0 +1345} {1253973600 49500 1 +1345} {1270303200 45900 0 +1345} {1285423200 49500 1 +1345} {1301752800 45900 0 +1345} {1316872800 49500 1 +1345} {1333202400 45900 0 +1345} {1348927200 49500 1 +1345} {1365256800 45900 0 +1345} {1380376800 49500 1 +1345} {1396706400 45900 0 +1345} {1411826400 49500 1 +1345} {1428156000 45900 0 +1345} {1443276000 49500 1 +1345} {1459605600 45900 0 +1345} {1474725600 49500 1 +1345} {1491055200 45900 0 +1345} {1506175200 49500 1 +1345} {1522504800 45900 0 +1345} {1538229600 49500 1 +1345} {1554559200 45900 0 +1345} {1569679200 49500 1 +1345} {1586008800 45900 0 +1345} {1601128800 49500 1 +1345} {1617458400 45900 0 +1345} {1632578400 49500 1 +1345} {1648908000 45900 0 +1345} {1664028000 49500 1 +1345} {1680357600 45900 0 +1345} {1695477600 49500 1 +1345} {1712412000 45900 0 +1345} {1727532000 49500 1 +1345} {1743861600 45900 0 +1345} {1758981600 49500 1 +1345} {1775311200 45900 0 +1345} {1790431200 49500 1 +1345} {1806760800 45900 0 +1345} {1821880800 49500 1 +1345} {1838210400 45900 0 +1345} {1853330400 49500 1 +1345} {1869660000 45900 0 +1345} {1885384800 49500 1 +1345} {1901714400 45900 0 +1345} {1916834400 49500 1 +1345} {1933164000 45900 0 +1345} {1948284000 49500 1 +1345} {1964613600 45900 0 +1345} {1979733600 49500 1 +1345} {1996063200 45900 0 +1345} {2011183200 49500 1 +1345} {2027512800 45900 0 +1345} {2042632800 49500 1 +1345} {2058962400 45900 0 +1345} {2074687200 49500 1 +1345} {2091016800 45900 0 +1345} {2106136800 49500 1 +1345} {2122466400 45900 0 +1345} {2137586400 49500 1 +1345} {2153916000 45900 0 +1345} {2169036000 49500 1 +1345} {2185365600 45900 0 +1345} {2200485600 49500 1 +1345} {2216815200 45900 0 +1345} {2232540000 49500 1 +1345} {2248869600 45900 0 +1345} {2263989600 49500 1 +1345} {2280319200 45900 0 +1345} {2295439200 49500 1 +1345} {2311768800 45900 0 +1345} {2326888800 49500 1 +1345} {2343218400 45900 0 +1345} {2358338400 49500 1 +1345} {2374668000 45900 0 +1345} {2389788000 49500 1 +1345} {2406117600 45900 0 +1345} {2421842400 49500 1 +1345} {2438172000 45900 0 +1345} {2453292000 49500 1 +1345} {2469621600 45900 0 +1345} {2484741600 49500 1 +1345} {2501071200 45900 0 +1345} {2516191200 49500 1 +1345} {2532520800 45900 0 +1345} {2547640800 49500 1 +1345} {2563970400 45900 0 +1345} {2579090400 49500 1 +1345} {2596024800 45900 0 +1345} {2611144800 49500 1 +1345} {2627474400 45900 0 +1345} {2642594400 49500 1 +1345} {2658924000 45900 0 +1345} {2674044000 49500 1 +1345} {2690373600 45900 0 +1345} {2705493600 49500 1 +1345} {2721823200 45900 0 +1345} {2736943200 49500 1 +1345} {2753272800 45900 0 +1345} {2768997600 49500 1 +1345} {2785327200 45900 0 +1345} {2800447200 49500 1 +1345} {2816776800 45900 0 +1345} {2831896800 49500 1 +1345} {2848226400 45900 0 +1345} {2863346400 49500 1 +1345} {2879676000 45900 0 +1345} {2894796000 49500 1 +1345} {2911125600 45900 0 +1345} {2926245600 49500 1 +1345} {2942575200 45900 0 +1345} {2958300000 49500 1 +1345} {2974629600 45900 0 +1345} {2989749600 49500 1 +1345} {3006079200 45900 0 +1345} {3021199200 49500 1 +1345} {3037528800 45900 0 +1345} {3052648800 49500 1 +1345} {3068978400 45900 0 +1345} {3084098400 49500 1 +1345} {3100428000 45900 0 +1345} {3116152800 49500 1 +1345} {3132482400 45900 0 +1345} {3147602400 49500 1 +1345} {3163932000 45900 0 +1345} {3179052000 49500 1 +1345} {3195381600 45900 0 +1345} {3210501600 49500 1 +1345} {3226831200 45900 0 +1345} {3241951200 49500 1 +1345} {3258280800 45900 0 +1345} {3273400800 49500 1 +1345} {3289730400 45900 0 +1345} {3305455200 49500 1 +1345} {3321784800 45900 0 +1345} {3336904800 49500 1 +1345} {3353234400 45900 0 +1345} {3368354400 49500 1 +1345} {3384684000 45900 0 +1345} {3399804000 49500 1 +1345} {3416133600 45900 0 +1345} {3431253600 49500 1 +1345} {3447583200 45900 0 +1345} {3462703200 49500 1 +1345} {3479637600 45900 0 +1345} {3494757600 49500 1 +1345} {3511087200 45900 0 +1345} {3526207200 49500 1 +1345} {3542536800 45900 0 +1345} {3557656800 49500 1 +1345} {3573986400 45900 0 +1345} {3589106400 49500 1 +1345} {3605436000 45900 0 +1345} {3620556000 49500 1 +1345} {3636885600 45900 0 +1345} {3652610400 49500 1 +1345} {3668940000 45900 0 +1345} {3684060000 49500 1 +1345} {3700389600 45900 0 +1345} {3715509600 49500 1 +1345} {3731839200 45900 0 +1345} {3746959200 49500 1 +1345} {3763288800 45900 0 +1345} {3778408800 49500 1 +1345} {3794738400 45900 0 +1345} {3809858400 49500 1 +1345} {3826188000 45900 0 +1345} {3841912800 49500 1 +1345} {3858242400 45900 0 +1345} {3873362400 49500 1 +1345} {3889692000 45900 0 +1345} {3904812000 49500 1 +1345} {3921141600 45900 0 +1345} {3936261600 49500 1 +1345} {3952591200 45900 0 +1345} {3967711200 49500 1 +1345} {3984040800 45900 0 +1345} {3999765600 49500 1 +1345} {4016095200 45900 0 +1345} {4031215200 49500 1 +1345} {4047544800 45900 0 +1345} {4062664800 49500 1 +1345} {4078994400 45900 0 +1345} {4094114400 49500 1 +1345} } |
Changes to library/tzdata/Pacific/Chuuk.
1 2 3 4 | # created by tools/tclZIC.tcl - do not edit set TZData(:Pacific/Chuuk) { {-9223372036854775808 36428 0 LMT} | | | 1 2 3 4 5 6 | # created by tools/tclZIC.tcl - do not edit set TZData(:Pacific/Chuuk) { {-9223372036854775808 36428 0 LMT} {-2177489228 36000 0 +10} } |
Changes to library/tzdata/Pacific/Easter.
1 2 3 4 5 | # created by tools/tclZIC.tcl - do not edit set TZData(:Pacific/Easter) { {-9223372036854775808 -26248 0 LMT} {-2524495352 -26248 0 EMT} | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 | # created by tools/tclZIC.tcl - do not edit set TZData(:Pacific/Easter) { {-9223372036854775808 -26248 0 LMT} {-2524495352 -26248 0 EMT} {-1178124152 -25200 0 -07} {-36619200 -21600 1 -06} {-23922000 -25200 0 -07} {-3355200 -21600 1 -06} {7527600 -25200 0 -07} {24465600 -21600 1 -06} {37767600 -25200 0 -07} {55915200 -21600 1 -06} {69217200 -25200 0 -07} {87969600 -21600 1 -06} {100666800 -25200 0 -07} {118209600 -21600 1 -06} {132116400 -25200 0 -07} {150868800 -21600 1 -06} {163566000 -25200 0 -07} {182318400 -21600 1 -06} {195620400 -25200 0 -07} {213768000 -21600 1 -06} {227070000 -25200 0 -07} {245217600 -21600 1 -06} {258519600 -25200 0 -07} {277272000 -21600 1 -06} {289969200 -25200 0 -07} {308721600 -21600 1 -06} {321418800 -25200 0 -07} {340171200 -21600 1 -06} {353473200 -25200 0 -07} {371620800 -21600 1 -06} {384922800 -21600 0 -06} {403070400 -18000 1 -05} {416372400 -21600 0 -06} {434520000 -18000 1 -05} {447822000 -21600 0 -06} {466574400 -18000 1 -05} {479271600 -21600 0 -06} {498024000 -18000 1 -05} {510721200 -21600 0 -06} {529473600 -18000 1 -05} {545194800 -21600 0 -06} {560923200 -18000 1 -05} {574225200 -21600 0 -06} {592372800 -18000 1 -05} {605674800 -21600 0 -06} {624427200 -18000 1 -05} {637124400 -21600 0 -06} {653457600 -18000 1 -05} {668574000 -21600 0 -06} {687326400 -18000 1 -05} {700628400 -21600 0 -06} {718776000 -18000 1 -05} {732078000 -21600 0 -06} {750225600 -18000 1 -05} {763527600 -21600 0 -06} {781675200 -18000 1 -05} {794977200 -21600 0 -06} {813729600 -18000 1 -05} {826426800 -21600 0 -06} {845179200 -18000 1 -05} {859690800 -21600 0 -06} {876628800 -18000 1 -05} {889930800 -21600 0 -06} {906868800 -18000 1 -05} {923194800 -21600 0 -06} {939528000 -18000 1 -05} {952830000 -21600 0 -06} {971582400 -18000 1 -05} {984279600 -21600 0 -06} {1003032000 -18000 1 -05} {1015729200 -21600 0 -06} {1034481600 -18000 1 -05} {1047178800 -21600 0 -06} {1065931200 -18000 1 -05} {1079233200 -21600 0 -06} {1097380800 -18000 1 -05} {1110682800 -21600 0 -06} {1128830400 -18000 1 -05} {1142132400 -21600 0 -06} {1160884800 -18000 1 -05} {1173582000 -21600 0 -06} {1192334400 -18000 1 -05} {1206846000 -21600 0 -06} {1223784000 -18000 1 -05} {1237086000 -21600 0 -06} {1255233600 -18000 1 -05} {1270350000 -21600 0 -06} {1286683200 -18000 1 -05} {1304823600 -21600 0 -06} {1313899200 -18000 1 -05} {1335668400 -21600 0 -06} {1346558400 -18000 1 -05} {1367118000 -21600 0 -06} {1378612800 -18000 1 -05} {1398567600 -21600 0 -06} {1410062400 -18000 1 -05} {1463281200 -21600 0 -06} {1471147200 -18000 1 -05} {1494730800 -21600 0 -06} {1502596800 -18000 1 -05} {1526180400 -21600 0 -06} {1534046400 -18000 1 -05} {1557630000 -21600 0 -06} {1565496000 -18000 1 -05} {1589079600 -21600 0 -06} {1596945600 -18000 1 -05} {1620529200 -21600 0 -06} {1629000000 -18000 1 -05} {1652583600 -21600 0 -06} {1660449600 -18000 1 -05} {1684033200 -21600 0 -06} {1691899200 -18000 1 -05} {1715482800 -21600 0 -06} {1723348800 -18000 1 -05} {1746932400 -21600 0 -06} {1754798400 -18000 1 -05} {1778382000 -21600 0 -06} {1786248000 -18000 1 -05} {1809831600 -21600 0 -06} {1818302400 -18000 1 -05} {1841886000 -21600 0 -06} {1849752000 -18000 1 -05} {1873335600 -21600 0 -06} {1881201600 -18000 1 -05} {1904785200 -21600 0 -06} {1912651200 -18000 1 -05} {1936234800 -21600 0 -06} {1944100800 -18000 1 -05} {1967684400 -21600 0 -06} {1976155200 -18000 1 -05} {1999738800 -21600 0 -06} {2007604800 -18000 1 -05} {2031188400 -21600 0 -06} {2039054400 -18000 1 -05} {2062638000 -21600 0 -06} {2070504000 -18000 1 -05} {2094087600 -21600 0 -06} {2101953600 -18000 1 -05} {2125537200 -21600 0 -06} {2133403200 -18000 1 -05} {2156986800 -21600 0 -06} {2165457600 -18000 1 -05} {2189041200 -21600 0 -06} {2196907200 -18000 1 -05} {2220490800 -21600 0 -06} {2228356800 -18000 1 -05} {2251940400 -21600 0 -06} {2259806400 -18000 1 -05} {2283390000 -21600 0 -06} {2291256000 -18000 1 -05} {2314839600 -21600 0 -06} {2322705600 -18000 1 -05} {2346894000 -21600 0 -06} {2354760000 -18000 1 -05} {2378343600 -21600 0 -06} {2386209600 -18000 1 -05} {2409793200 -21600 0 -06} {2417659200 -18000 1 -05} {2441242800 -21600 0 -06} {2449108800 -18000 1 -05} {2472692400 -21600 0 -06} {2480558400 -18000 1 -05} {2504142000 -21600 0 -06} {2512612800 -18000 1 -05} {2536196400 -21600 0 -06} {2544062400 -18000 1 -05} {2567646000 -21600 0 -06} {2575512000 -18000 1 -05} {2599095600 -21600 0 -06} {2606961600 -18000 1 -05} {2630545200 -21600 0 -06} {2638411200 -18000 1 -05} {2661994800 -21600 0 -06} {2669860800 -18000 1 -05} {2693444400 -21600 0 -06} {2701915200 -18000 1 -05} {2725498800 -21600 0 -06} {2733364800 -18000 1 -05} {2756948400 -21600 0 -06} {2764814400 -18000 1 -05} {2788398000 -21600 0 -06} {2796264000 -18000 1 -05} {2819847600 -21600 0 -06} {2827713600 -18000 1 -05} {2851297200 -21600 0 -06} {2859768000 -18000 1 -05} {2883351600 -21600 0 -06} {2891217600 -18000 1 -05} {2914801200 -21600 0 -06} {2922667200 -18000 1 -05} {2946250800 -21600 0 -06} {2954116800 -18000 1 -05} {2977700400 -21600 0 -06} {2985566400 -18000 1 -05} {3009150000 -21600 0 -06} {3017016000 -18000 1 -05} {3040599600 -21600 0 -06} {3049070400 -18000 1 -05} {3072654000 -21600 0 -06} {3080520000 -18000 1 -05} {3104103600 -21600 0 -06} {3111969600 -18000 1 -05} {3135553200 -21600 0 -06} {3143419200 -18000 1 -05} {3167002800 -21600 0 -06} {3174868800 -18000 1 -05} {3198452400 -21600 0 -06} {3206318400 -18000 1 -05} {3230506800 -21600 0 -06} {3238372800 -18000 1 -05} {3261956400 -21600 0 -06} {3269822400 -18000 1 -05} {3293406000 -21600 0 -06} {3301272000 -18000 1 -05} {3324855600 -21600 0 -06} {3332721600 -18000 1 -05} {3356305200 -21600 0 -06} {3364171200 -18000 1 -05} {3387754800 -21600 0 -06} {3396225600 -18000 1 -05} {3419809200 -21600 0 -06} {3427675200 -18000 1 -05} {3451258800 -21600 0 -06} {3459124800 -18000 1 -05} {3482708400 -21600 0 -06} {3490574400 -18000 1 -05} {3514158000 -21600 0 -06} {3522024000 -18000 1 -05} {3545607600 -21600 0 -06} {3553473600 -18000 1 -05} {3577057200 -21600 0 -06} {3585528000 -18000 1 -05} {3609111600 -21600 0 -06} {3616977600 -18000 1 -05} {3640561200 -21600 0 -06} {3648427200 -18000 1 -05} {3672010800 -21600 0 -06} {3679876800 -18000 1 -05} {3703460400 -21600 0 -06} {3711326400 -18000 1 -05} {3734910000 -21600 0 -06} {3743380800 -18000 1 -05} {3766964400 -21600 0 -06} {3774830400 -18000 1 -05} {3798414000 -21600 0 -06} {3806280000 -18000 1 -05} {3829863600 -21600 0 -06} {3837729600 -18000 1 -05} {3861313200 -21600 0 -06} {3869179200 -18000 1 -05} {3892762800 -21600 0 -06} {3900628800 -18000 1 -05} {3924212400 -21600 0 -06} {3932683200 -18000 1 -05} {3956266800 -21600 0 -06} {3964132800 -18000 1 -05} {3987716400 -21600 0 -06} {3995582400 -18000 1 -05} {4019166000 -21600 0 -06} {4027032000 -18000 1 -05} {4050615600 -21600 0 -06} {4058481600 -18000 1 -05} {4082065200 -21600 0 -06} {4089931200 -18000 1 -05} } |
Changes to library/tzdata/Pacific/Efate.
1 2 3 4 | # created by tools/tclZIC.tcl - do not edit set TZData(:Pacific/Efate) { {-9223372036854775808 40396 0 LMT} | | | | | | | | | | | | | | | | | | | | | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | # created by tools/tclZIC.tcl - do not edit set TZData(:Pacific/Efate) { {-9223372036854775808 40396 0 LMT} {-1829387596 39600 0 +11} {433256400 43200 1 +12} {448977600 39600 0 +11} {467298000 43200 1 +12} {480427200 39600 0 +11} {496760400 43200 1 +12} {511876800 39600 0 +11} {528210000 43200 1 +12} {543931200 39600 0 +11} {559659600 43200 1 +12} {575380800 39600 0 +11} {591109200 43200 1 +12} {606830400 39600 0 +11} {622558800 43200 1 +12} {638280000 39600 0 +11} {654008400 43200 1 +12} {669729600 39600 0 +11} {686062800 43200 1 +12} {696340800 39600 0 +11} {719931600 43200 1 +12} {727790400 39600 0 +11} } |
Changes to library/tzdata/Pacific/Enderbury.
1 2 3 4 | # created by tools/tclZIC.tcl - do not edit set TZData(:Pacific/Enderbury) { {-9223372036854775808 -41060 0 LMT} | | | | | 1 2 3 4 5 6 7 8 | # created by tools/tclZIC.tcl - do not edit set TZData(:Pacific/Enderbury) { {-9223372036854775808 -41060 0 LMT} {-2177411740 -43200 0 -12} {307627200 -39600 0 -11} {788958000 46800 0 +13} } |
Changes to library/tzdata/Pacific/Fakaofo.
1 2 3 4 | # created by tools/tclZIC.tcl - do not edit set TZData(:Pacific/Fakaofo) { {-9223372036854775808 -41096 0 LMT} | | | | 1 2 3 4 5 6 7 | # created by tools/tclZIC.tcl - do not edit set TZData(:Pacific/Fakaofo) { {-9223372036854775808 -41096 0 LMT} {-2177411704 -39600 0 -11} {1325242800 46800 0 +13} } |
Changes to library/tzdata/Pacific/Fiji.
1 2 3 4 | # created by tools/tclZIC.tcl - do not edit set TZData(:Pacific/Fiji) { {-9223372036854775808 42944 0 LMT} | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 | # created by tools/tclZIC.tcl - do not edit set TZData(:Pacific/Fiji) { {-9223372036854775808 42944 0 LMT} {-1709985344 43200 0 +12} {909842400 46800 1 +13} {920124000 43200 0 +12} {941896800 46800 1 +13} {951573600 43200 0 +12} {1259416800 46800 1 +13} {1269698400 43200 0 +12} {1287842400 46800 1 +13} {1299333600 43200 0 +12} {1319292000 46800 1 +13} {1327154400 43200 0 +12} {1350741600 46800 1 +13} {1358604000 43200 0 +12} {1382796000 46800 1 +13} {1390050000 43200 0 +12} {1414850400 46800 1 +13} {1421503200 43200 0 +12} {1446300000 46800 1 +13} {1452952800 43200 0 +12} {1478354400 46800 1 +13} {1484402400 43200 0 +12} {1509804000 46800 1 +13} {1516456800 43200 0 +12} {1541253600 46800 1 +13} {1547906400 43200 0 +12} {1572703200 46800 1 +13} {1579356000 43200 0 +12} {1604152800 46800 1 +13} {1610805600 43200 0 +12} {1636207200 46800 1 +13} {1642255200 43200 0 +12} {1667656800 46800 1 +13} {1673704800 43200 0 +12} {1699106400 46800 1 +13} {1705759200 43200 0 +12} {1730556000 46800 1 +13} {1737208800 43200 0 +12} {1762005600 46800 1 +13} {1768658400 43200 0 +12} {1793455200 46800 1 +13} {1800108000 43200 0 +12} {1825509600 46800 1 +13} {1831557600 43200 0 +12} {1856959200 46800 1 +13} {1863612000 43200 0 +12} {1888408800 46800 1 +13} {1895061600 43200 0 +12} {1919858400 46800 1 +13} {1926511200 43200 0 +12} {1951308000 46800 1 +13} {1957960800 43200 0 +12} {1983362400 46800 1 +13} {1989410400 43200 0 +12} {2014812000 46800 1 +13} {2020860000 43200 0 +12} {2046261600 46800 1 +13} {2052914400 43200 0 +12} {2077711200 46800 1 +13} {2084364000 43200 0 +12} {2109160800 46800 1 +13} {2115813600 43200 0 +12} {2140610400 46800 1 +13} {2147263200 43200 0 +12} {2172664800 46800 1 +13} {2178712800 43200 0 +12} {2204114400 46800 1 +13} {2210162400 43200 0 +12} {2235564000 46800 1 +13} {2242216800 43200 0 +12} {2267013600 46800 1 +13} {2273666400 43200 0 +12} {2298463200 46800 1 +13} {2305116000 43200 0 +12} {2329912800 46800 1 +13} {2336565600 43200 0 +12} {2361967200 46800 1 +13} {2368015200 43200 0 +12} {2393416800 46800 1 +13} {2400069600 43200 0 +12} {2424866400 46800 1 +13} {2431519200 43200 0 +12} {2456316000 46800 1 +13} {2462968800 43200 0 +12} {2487765600 46800 1 +13} {2494418400 43200 0 +12} {2519820000 46800 1 +13} {2525868000 43200 0 +12} {2551269600 46800 1 +13} {2557317600 43200 0 +12} {2582719200 46800 1 +13} {2589372000 43200 0 +12} {2614168800 46800 1 +13} {2620821600 43200 0 +12} {2645618400 46800 1 +13} {2652271200 43200 0 +12} {2677068000 46800 1 +13} {2683720800 43200 0 +12} {2709122400 46800 1 +13} {2715170400 43200 0 +12} {2740572000 46800 1 +13} {2747224800 43200 0 +12} {2772021600 46800 1 +13} {2778674400 43200 0 +12} {2803471200 46800 1 +13} {2810124000 43200 0 +12} {2834920800 46800 1 +13} {2841573600 43200 0 +12} {2866975200 46800 1 +13} {2873023200 43200 0 +12} {2898424800 46800 1 +13} {2904472800 43200 0 +12} {2929874400 46800 1 +13} {2936527200 43200 0 +12} {2961324000 46800 1 +13} {2967976800 43200 0 +12} {2992773600 46800 1 +13} {2999426400 43200 0 +12} {3024223200 46800 1 +13} {3030876000 43200 0 +12} {3056277600 46800 1 +13} {3062325600 43200 0 +12} {3087727200 46800 1 +13} {3093775200 43200 0 +12} {3119176800 46800 1 +13} {3125829600 43200 0 +12} {3150626400 46800 1 +13} {3157279200 43200 0 +12} {3182076000 46800 1 +13} {3188728800 43200 0 +12} {3213525600 46800 1 +13} {3220178400 43200 0 +12} {3245580000 46800 1 +13} {3251628000 43200 0 +12} {3277029600 46800 1 +13} {3283682400 43200 0 +12} {3308479200 46800 1 +13} {3315132000 43200 0 +12} {3339928800 46800 1 +13} {3346581600 43200 0 +12} {3371378400 46800 1 +13} {3378031200 43200 0 +12} {3403432800 46800 1 +13} {3409480800 43200 0 +12} {3434882400 46800 1 +13} {3440930400 43200 0 +12} {3466332000 46800 1 +13} {3472984800 43200 0 +12} {3497781600 46800 1 +13} {3504434400 43200 0 +12} {3529231200 46800 1 +13} {3535884000 43200 0 +12} {3560680800 46800 1 +13} {3567333600 43200 0 +12} {3592735200 46800 1 +13} {3598783200 43200 0 +12} {3624184800 46800 1 +13} {3630837600 43200 0 +12} {3655634400 46800 1 +13} {3662287200 43200 0 +12} {3687084000 46800 1 +13} {3693736800 43200 0 +12} {3718533600 46800 1 +13} {3725186400 43200 0 +12} {3750588000 46800 1 +13} {3756636000 43200 0 +12} {3782037600 46800 1 +13} {3788085600 43200 0 +12} {3813487200 46800 1 +13} {3820140000 43200 0 +12} {3844936800 46800 1 +13} {3851589600 43200 0 +12} {3876386400 46800 1 +13} {3883039200 43200 0 +12} {3907836000 46800 1 +13} {3914488800 43200 0 +12} {3939890400 46800 1 +13} {3945938400 43200 0 +12} {3971340000 46800 1 +13} {3977388000 43200 0 +12} {4002789600 46800 1 +13} {4009442400 43200 0 +12} {4034239200 46800 1 +13} {4040892000 43200 0 +12} {4065688800 46800 1 +13} {4072341600 43200 0 +12} {4097138400 46800 1 +13} } |
Changes to library/tzdata/Pacific/Funafuti.
1 2 3 4 | # created by tools/tclZIC.tcl - do not edit set TZData(:Pacific/Funafuti) { {-9223372036854775808 43012 0 LMT} | | | 1 2 3 4 5 6 | # created by tools/tclZIC.tcl - do not edit set TZData(:Pacific/Funafuti) { {-9223372036854775808 43012 0 LMT} {-2177495812 43200 0 +12} } |
Changes to library/tzdata/Pacific/Galapagos.
1 2 3 4 | # created by tools/tclZIC.tcl - do not edit set TZData(:Pacific/Galapagos) { {-9223372036854775808 -21504 0 LMT} | | | > > | 1 2 3 4 5 6 7 8 9 | # created by tools/tclZIC.tcl - do not edit set TZData(:Pacific/Galapagos) { {-9223372036854775808 -21504 0 LMT} {-1230746496 -18000 0 -05} {504939600 -21600 0 -06} {722930400 -18000 1 -05} {728888400 -21600 0 -06} } |
Changes to library/tzdata/Pacific/Gambier.
1 2 3 4 | # created by tools/tclZIC.tcl - do not edit set TZData(:Pacific/Gambier) { {-9223372036854775808 -32388 0 LMT} | | | 1 2 3 4 5 6 | # created by tools/tclZIC.tcl - do not edit set TZData(:Pacific/Gambier) { {-9223372036854775808 -32388 0 LMT} {-1806678012 -32400 0 -09} } |
Changes to library/tzdata/Pacific/Guadalcanal.
1 2 3 4 | # created by tools/tclZIC.tcl - do not edit set TZData(:Pacific/Guadalcanal) { {-9223372036854775808 38388 0 LMT} | | | 1 2 3 4 5 6 | # created by tools/tclZIC.tcl - do not edit set TZData(:Pacific/Guadalcanal) { {-9223372036854775808 38388 0 LMT} {-1806748788 39600 0 +11} } |
Changes to library/tzdata/Pacific/Kiritimati.
1 2 3 4 | # created by tools/tclZIC.tcl - do not edit set TZData(:Pacific/Kiritimati) { {-9223372036854775808 -37760 0 LMT} | | | | | 1 2 3 4 5 6 7 8 | # created by tools/tclZIC.tcl - do not edit set TZData(:Pacific/Kiritimati) { {-9223372036854775808 -37760 0 LMT} {-2177415040 -38400 0 -1040} {307622400 -36000 0 -10} {788954400 50400 0 +14} } |
Changes to library/tzdata/Pacific/Kosrae.
1 2 3 4 | # created by tools/tclZIC.tcl - do not edit set TZData(:Pacific/Kosrae) { {-9223372036854775808 39116 0 LMT} | | | | | 1 2 3 4 5 6 7 8 | # created by tools/tclZIC.tcl - do not edit set TZData(:Pacific/Kosrae) { {-9223372036854775808 39116 0 LMT} {-2177491916 39600 0 +11} {-7988400 43200 0 +12} {915105600 39600 0 +11} } |
Changes to library/tzdata/Pacific/Kwajalein.
1 2 3 4 | # created by tools/tclZIC.tcl - do not edit set TZData(:Pacific/Kwajalein) { {-9223372036854775808 40160 0 LMT} | | | | | 1 2 3 4 5 6 7 8 | # created by tools/tclZIC.tcl - do not edit set TZData(:Pacific/Kwajalein) { {-9223372036854775808 40160 0 LMT} {-2177492960 39600 0 +11} {-7988400 -43200 0 -12} {745848000 43200 0 +12} } |
Changes to library/tzdata/Pacific/Majuro.
1 2 3 4 | # created by tools/tclZIC.tcl - do not edit set TZData(:Pacific/Majuro) { {-9223372036854775808 41088 0 LMT} | | | | 1 2 3 4 5 6 7 | # created by tools/tclZIC.tcl - do not edit set TZData(:Pacific/Majuro) { {-9223372036854775808 41088 0 LMT} {-2177493888 39600 0 +11} {-7988400 43200 0 +12} } |
Changes to library/tzdata/Pacific/Marquesas.
1 2 3 4 | # created by tools/tclZIC.tcl - do not edit set TZData(:Pacific/Marquesas) { {-9223372036854775808 -33480 0 LMT} | | | 1 2 3 4 5 6 | # created by tools/tclZIC.tcl - do not edit set TZData(:Pacific/Marquesas) { {-9223372036854775808 -33480 0 LMT} {-1806676920 -34200 0 -0930} } |
Changes to library/tzdata/Pacific/Nauru.
1 2 3 4 | # created by tools/tclZIC.tcl - do not edit set TZData(:Pacific/Nauru) { {-9223372036854775808 40060 0 LMT} | | | | | | 1 2 3 4 5 6 7 8 9 | # created by tools/tclZIC.tcl - do not edit set TZData(:Pacific/Nauru) { {-9223372036854775808 40060 0 LMT} {-1545131260 41400 0 +1130} {-877347000 32400 0 +09} {-800960400 41400 0 +1130} {294323400 43200 0 +12} } |
Changes to library/tzdata/Pacific/Niue.
1 2 3 4 | # created by tools/tclZIC.tcl - do not edit set TZData(:Pacific/Niue) { {-9223372036854775808 -40780 0 LMT} | | | | | 1 2 3 4 5 6 7 8 | # created by tools/tclZIC.tcl - do not edit set TZData(:Pacific/Niue) { {-9223372036854775808 -40780 0 LMT} {-2177412020 -40800 0 -1120} {-599575200 -41400 0 -1130} {276089400 -39600 0 -11} } |
Changes to library/tzdata/Pacific/Norfolk.
1 2 3 4 | # created by tools/tclZIC.tcl - do not edit set TZData(:Pacific/Norfolk) { {-9223372036854775808 40312 0 LMT} | | | | | | | 1 2 3 4 5 6 7 8 9 10 | # created by tools/tclZIC.tcl - do not edit set TZData(:Pacific/Norfolk) { {-9223372036854775808 40312 0 LMT} {-2177493112 40320 0 +1112} {-599656320 41400 0 +1130} {152029800 45000 1 +1230} {162912600 41400 0 +1130} {1443882600 39600 0 +11} } |
Changes to library/tzdata/Pacific/Noumea.
1 2 3 4 | # created by tools/tclZIC.tcl - do not edit set TZData(:Pacific/Noumea) { {-9223372036854775808 39948 0 LMT} | | | | | | | | | 1 2 3 4 5 6 7 8 9 10 11 12 | # created by tools/tclZIC.tcl - do not edit set TZData(:Pacific/Noumea) { {-9223372036854775808 39948 0 LMT} {-1829387148 39600 0 +11} {250002000 43200 1 +12} {257342400 39600 0 +11} {281451600 43200 1 +12} {288878400 39600 0 +11} {849366000 43200 1 +12} {857228400 39600 0 +11} } |
Changes to library/tzdata/Pacific/Pago_Pago.
1 2 3 4 5 | # created by tools/tclZIC.tcl - do not edit set TZData(:Pacific/Pago_Pago) { {-9223372036854775808 45432 0 LMT} {-2855738232 -40968 0 LMT} | | < < | 1 2 3 4 5 6 7 | # created by tools/tclZIC.tcl - do not edit set TZData(:Pacific/Pago_Pago) { {-9223372036854775808 45432 0 LMT} {-2855738232 -40968 0 LMT} {-1861879032 -39600 0 SST} } |
Changes to library/tzdata/Pacific/Palau.
1 2 3 4 | # created by tools/tclZIC.tcl - do not edit set TZData(:Pacific/Palau) { {-9223372036854775808 32276 0 LMT} | | | 1 2 3 4 5 6 | # created by tools/tclZIC.tcl - do not edit set TZData(:Pacific/Palau) { {-9223372036854775808 32276 0 LMT} {-2177485076 32400 0 +09} } |
Changes to library/tzdata/Pacific/Pitcairn.
1 2 3 4 | # created by tools/tclZIC.tcl - do not edit set TZData(:Pacific/Pitcairn) { {-9223372036854775808 -31220 0 LMT} | | | | 1 2 3 4 5 6 7 | # created by tools/tclZIC.tcl - do not edit set TZData(:Pacific/Pitcairn) { {-9223372036854775808 -31220 0 LMT} {-2177421580 -30600 0 -0830} {893665800 -28800 0 -08} } |
Changes to library/tzdata/Pacific/Pohnpei.
1 2 3 4 | # created by tools/tclZIC.tcl - do not edit set TZData(:Pacific/Pohnpei) { {-9223372036854775808 37972 0 LMT} | | | 1 2 3 4 5 6 | # created by tools/tclZIC.tcl - do not edit set TZData(:Pacific/Pohnpei) { {-9223372036854775808 37972 0 LMT} {-2177490772 39600 0 +11} } |
Changes to library/tzdata/Pacific/Port_Moresby.
1 2 3 4 5 | # created by tools/tclZIC.tcl - do not edit set TZData(:Pacific/Port_Moresby) { {-9223372036854775808 35320 0 LMT} {-2840176120 35312 0 PMMT} | | | 1 2 3 4 5 6 7 | # created by tools/tclZIC.tcl - do not edit set TZData(:Pacific/Port_Moresby) { {-9223372036854775808 35320 0 LMT} {-2840176120 35312 0 PMMT} {-2366790512 36000 0 +10} } |
Changes to library/tzdata/Pacific/Rarotonga.
1 2 3 4 | # created by tools/tclZIC.tcl - do not edit set TZData(:Pacific/Rarotonga) { {-9223372036854775808 -38344 0 LMT} | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 | # created by tools/tclZIC.tcl - do not edit set TZData(:Pacific/Rarotonga) { {-9223372036854775808 -38344 0 LMT} {-2177414456 -37800 0 -1030} {279714600 -34200 0 -0930} {289387800 -36000 0 -10} {309952800 -34200 1 -0930} {320837400 -36000 0 -10} {341402400 -34200 1 -0930} {352287000 -36000 0 -10} {372852000 -34200 1 -0930} {384341400 -36000 0 -10} {404906400 -34200 1 -0930} {415791000 -36000 0 -10} {436356000 -34200 1 -0930} {447240600 -36000 0 -10} {467805600 -34200 1 -0930} {478690200 -36000 0 -10} {499255200 -34200 1 -0930} {510139800 -36000 0 -10} {530704800 -34200 1 -0930} {541589400 -36000 0 -10} {562154400 -34200 1 -0930} {573643800 -36000 0 -10} {594208800 -34200 1 -0930} {605093400 -36000 0 -10} {625658400 -34200 1 -0930} {636543000 -36000 0 -10} {657108000 -34200 1 -0930} {667992600 -36000 0 -10} } |
Changes to library/tzdata/Pacific/Tahiti.
1 2 3 4 | # created by tools/tclZIC.tcl - do not edit set TZData(:Pacific/Tahiti) { {-9223372036854775808 -35896 0 LMT} | | | 1 2 3 4 5 6 | # created by tools/tclZIC.tcl - do not edit set TZData(:Pacific/Tahiti) { {-9223372036854775808 -35896 0 LMT} {-1806674504 -36000 0 -10} } |
Changes to library/tzdata/Pacific/Tarawa.
1 2 3 4 | # created by tools/tclZIC.tcl - do not edit set TZData(:Pacific/Tarawa) { {-9223372036854775808 41524 0 LMT} | | | 1 2 3 4 5 6 | # created by tools/tclZIC.tcl - do not edit set TZData(:Pacific/Tarawa) { {-9223372036854775808 41524 0 LMT} {-2177494324 43200 0 +12} } |
Changes to library/tzdata/Pacific/Wake.
1 2 3 4 | # created by tools/tclZIC.tcl - do not edit set TZData(:Pacific/Wake) { {-9223372036854775808 39988 0 LMT} | | | 1 2 3 4 5 6 | # created by tools/tclZIC.tcl - do not edit set TZData(:Pacific/Wake) { {-9223372036854775808 39988 0 LMT} {-2177492788 43200 0 +12} } |
Changes to library/tzdata/Pacific/Wallis.
1 2 3 4 | # created by tools/tclZIC.tcl - do not edit set TZData(:Pacific/Wallis) { {-9223372036854775808 44120 0 LMT} | | | 1 2 3 4 5 6 | # created by tools/tclZIC.tcl - do not edit set TZData(:Pacific/Wallis) { {-9223372036854775808 44120 0 LMT} {-2177496920 43200 0 +12} } |
Changes to macosx/Tcl-Common.xcconfig.
︙ | ︙ | |||
15 16 17 18 19 20 21 | INSTALL_MODE_FLAG = go-w,a+rX GCC_PREFIX_HEADER = $(DERIVED_FILE_DIR)/tcl/tclConfig.h GCC_GENERATE_DEBUGGING_SYMBOLS = YES GCC_NO_COMMON_BLOCKS = YES GCC_DYNAMIC_NO_PIC = YES GCC_VERSION = 4.2 GCC = gcc-$(GCC_VERSION) | | | 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | INSTALL_MODE_FLAG = go-w,a+rX GCC_PREFIX_HEADER = $(DERIVED_FILE_DIR)/tcl/tclConfig.h GCC_GENERATE_DEBUGGING_SYMBOLS = YES GCC_NO_COMMON_BLOCKS = YES GCC_DYNAMIC_NO_PIC = YES GCC_VERSION = 4.2 GCC = gcc-$(GCC_VERSION) WARNING_CFLAGS = -Wall -Wwrite-strings -Wextra -Wdeclaration-after-statement -Wno-unused-parameter -Wno-missing-field-initializers -Wno-unused-value -Winit-self -Wpointer-arith -Wcast-align -Wdisabled-optimization -Winline $(WARNING_CFLAGS) BINDIR = $(PREFIX)/bin CFLAGS = $(CFLAGS) CPPFLAGS = -mmacosx-version-min=$(MACOSX_DEPLOYMENT_TARGET) $(CPPFLAGS) FRAMEWORK_INSTALL_PATH = /Library/Frameworks INCLUDEDIR = $(PREFIX)/include LIBDIR = $(PREFIX)/lib MANDIR = $(PREFIX)/man |
︙ | ︙ |
Changes to macosx/Tcl.xcode/project.pbxproj.
︙ | ︙ | |||
834 835 836 837 838 839 840 | F96D446D08F272B9004A47F5 /* tclXtTest.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tclXtTest.c; sourceTree = "<group>"; }; F96D447008F272BA004A47F5 /* aclocal.m4 */ = {isa = PBXFileReference; explicitFileType = text.script.sh; fileEncoding = 4; path = aclocal.m4; sourceTree = "<group>"; }; F96D447108F272BA004A47F5 /* buildall.vc.bat */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = buildall.vc.bat; sourceTree = "<group>"; }; F96D447208F272BA004A47F5 /* cat.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = cat.c; sourceTree = "<group>"; }; F96D447308F272BA004A47F5 /* coffbase.txt */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = coffbase.txt; sourceTree = "<group>"; }; F96D447408F272BA004A47F5 /* configure */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.script.sh; path = configure; sourceTree = "<group>"; }; F96D447508F272BA004A47F5 /* configure.ac */ = {isa = PBXFileReference; explicitFileType = text.script.sh; fileEncoding = 4; path = configure.ac; sourceTree = "<group>"; }; | < | 834 835 836 837 838 839 840 841 842 843 844 845 846 847 | F96D446D08F272B9004A47F5 /* tclXtTest.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tclXtTest.c; sourceTree = "<group>"; }; F96D447008F272BA004A47F5 /* aclocal.m4 */ = {isa = PBXFileReference; explicitFileType = text.script.sh; fileEncoding = 4; path = aclocal.m4; sourceTree = "<group>"; }; F96D447108F272BA004A47F5 /* buildall.vc.bat */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = buildall.vc.bat; sourceTree = "<group>"; }; F96D447208F272BA004A47F5 /* cat.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = cat.c; sourceTree = "<group>"; }; F96D447308F272BA004A47F5 /* coffbase.txt */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = coffbase.txt; sourceTree = "<group>"; }; F96D447408F272BA004A47F5 /* configure */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.script.sh; path = configure; sourceTree = "<group>"; }; F96D447508F272BA004A47F5 /* configure.ac */ = {isa = PBXFileReference; explicitFileType = text.script.sh; fileEncoding = 4; path = configure.ac; sourceTree = "<group>"; }; F96D447708F272BA004A47F5 /* Makefile.in */ = {isa = PBXFileReference; explicitFileType = sourcecode.make; fileEncoding = 4; path = Makefile.in; sourceTree = "<group>"; }; F96D447808F272BA004A47F5 /* makefile.vc */ = {isa = PBXFileReference; explicitFileType = sourcecode.make; fileEncoding = 4; path = makefile.vc; sourceTree = "<group>"; }; F96D447908F272BA004A47F5 /* nmakehlp.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = nmakehlp.c; sourceTree = "<group>"; }; F96D447A08F272BA004A47F5 /* README */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = README; sourceTree = "<group>"; }; F96D447C08F272BA004A47F5 /* rules.vc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = rules.vc; sourceTree = "<group>"; }; F96D447D08F272BA004A47F5 /* stub16.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = stub16.c; sourceTree = "<group>"; }; F96D447E08F272BA004A47F5 /* tcl.dsp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = tcl.dsp; sourceTree = "<group>"; }; |
︙ | ︙ | |||
1757 1758 1759 1760 1761 1762 1763 | children = ( F96D447008F272BA004A47F5 /* aclocal.m4 */, F96D447108F272BA004A47F5 /* buildall.vc.bat */, F96D447208F272BA004A47F5 /* cat.c */, F96D447308F272BA004A47F5 /* coffbase.txt */, F96D447408F272BA004A47F5 /* configure */, F96D447508F272BA004A47F5 /* configure.ac */, | < | 1756 1757 1758 1759 1760 1761 1762 1763 1764 1765 1766 1767 1768 1769 | children = ( F96D447008F272BA004A47F5 /* aclocal.m4 */, F96D447108F272BA004A47F5 /* buildall.vc.bat */, F96D447208F272BA004A47F5 /* cat.c */, F96D447308F272BA004A47F5 /* coffbase.txt */, F96D447408F272BA004A47F5 /* configure */, F96D447508F272BA004A47F5 /* configure.ac */, F96D447708F272BA004A47F5 /* Makefile.in */, F96D447808F272BA004A47F5 /* makefile.vc */, F96D447908F272BA004A47F5 /* nmakehlp.c */, F96D447A08F272BA004A47F5 /* README */, F96D447C08F272BA004A47F5 /* rules.vc */, F96D447D08F272BA004A47F5 /* stub16.c */, F96D447E08F272BA004A47F5 /* tcl.dsp */, |
︙ | ︙ |
Changes to macosx/Tcl.xcodeproj/project.pbxproj.
︙ | ︙ | |||
835 836 837 838 839 840 841 | F96D446D08F272B9004A47F5 /* tclXtTest.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tclXtTest.c; sourceTree = "<group>"; }; F96D447008F272BA004A47F5 /* aclocal.m4 */ = {isa = PBXFileReference; explicitFileType = text.script.sh; fileEncoding = 4; path = aclocal.m4; sourceTree = "<group>"; }; F96D447108F272BA004A47F5 /* buildall.vc.bat */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = buildall.vc.bat; sourceTree = "<group>"; }; F96D447208F272BA004A47F5 /* cat.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = cat.c; sourceTree = "<group>"; }; F96D447308F272BA004A47F5 /* coffbase.txt */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = coffbase.txt; sourceTree = "<group>"; }; F96D447408F272BA004A47F5 /* configure */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.script.sh; path = configure; sourceTree = "<group>"; }; F96D447508F272BA004A47F5 /* configure.ac */ = {isa = PBXFileReference; explicitFileType = text.script.sh; fileEncoding = 4; path = configure.ac; sourceTree = "<group>"; }; | < | 835 836 837 838 839 840 841 842 843 844 845 846 847 848 | F96D446D08F272B9004A47F5 /* tclXtTest.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tclXtTest.c; sourceTree = "<group>"; }; F96D447008F272BA004A47F5 /* aclocal.m4 */ = {isa = PBXFileReference; explicitFileType = text.script.sh; fileEncoding = 4; path = aclocal.m4; sourceTree = "<group>"; }; F96D447108F272BA004A47F5 /* buildall.vc.bat */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = buildall.vc.bat; sourceTree = "<group>"; }; F96D447208F272BA004A47F5 /* cat.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = cat.c; sourceTree = "<group>"; }; F96D447308F272BA004A47F5 /* coffbase.txt */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = coffbase.txt; sourceTree = "<group>"; }; F96D447408F272BA004A47F5 /* configure */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.script.sh; path = configure; sourceTree = "<group>"; }; F96D447508F272BA004A47F5 /* configure.ac */ = {isa = PBXFileReference; explicitFileType = text.script.sh; fileEncoding = 4; path = configure.ac; sourceTree = "<group>"; }; F96D447708F272BA004A47F5 /* Makefile.in */ = {isa = PBXFileReference; explicitFileType = sourcecode.make; fileEncoding = 4; path = Makefile.in; sourceTree = "<group>"; }; F96D447808F272BA004A47F5 /* makefile.vc */ = {isa = PBXFileReference; explicitFileType = sourcecode.make; fileEncoding = 4; path = makefile.vc; sourceTree = "<group>"; }; F96D447908F272BA004A47F5 /* nmakehlp.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = nmakehlp.c; sourceTree = "<group>"; }; F96D447A08F272BA004A47F5 /* README */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = README; sourceTree = "<group>"; }; F96D447C08F272BA004A47F5 /* rules.vc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = rules.vc; sourceTree = "<group>"; }; F96D447D08F272BA004A47F5 /* stub16.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = stub16.c; sourceTree = "<group>"; }; F96D447E08F272BA004A47F5 /* tcl.dsp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = tcl.dsp; sourceTree = "<group>"; }; |
︙ | ︙ | |||
1758 1759 1760 1761 1762 1763 1764 | children = ( F96D447008F272BA004A47F5 /* aclocal.m4 */, F96D447108F272BA004A47F5 /* buildall.vc.bat */, F96D447208F272BA004A47F5 /* cat.c */, F96D447308F272BA004A47F5 /* coffbase.txt */, F96D447408F272BA004A47F5 /* configure */, F96D447508F272BA004A47F5 /* configure.ac */, | < | 1757 1758 1759 1760 1761 1762 1763 1764 1765 1766 1767 1768 1769 1770 | children = ( F96D447008F272BA004A47F5 /* aclocal.m4 */, F96D447108F272BA004A47F5 /* buildall.vc.bat */, F96D447208F272BA004A47F5 /* cat.c */, F96D447308F272BA004A47F5 /* coffbase.txt */, F96D447408F272BA004A47F5 /* configure */, F96D447508F272BA004A47F5 /* configure.ac */, F96D447708F272BA004A47F5 /* Makefile.in */, F96D447808F272BA004A47F5 /* makefile.vc */, F96D447908F272BA004A47F5 /* nmakehlp.c */, F96D447A08F272BA004A47F5 /* README */, F96D447C08F272BA004A47F5 /* rules.vc */, F96D447D08F272BA004A47F5 /* stub16.c */, F96D447E08F272BA004A47F5 /* tcl.dsp */, |
︙ | ︙ |
Changes to macosx/tclMacOSXNotify.c.
︙ | ︙ | |||
381 382 383 384 385 386 387 | #define CF_TIMEINTERVAL_FOREVER 5.05e8 /* * Static routines defined in this file. */ static void StartNotifierThread(void); | | < | 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 | #define CF_TIMEINTERVAL_FOREVER 5.05e8 /* * Static routines defined in this file. */ static void StartNotifierThread(void); static TCL_NORETURN void NotifierThreadProc(ClientData clientData); static int FileHandlerEventProc(Tcl_Event *evPtr, int flags); static void TimerWakeUp(CFRunLoopTimerRef timer, void *info); static void QueueFileEvents(void *info); static void UpdateWaitingListAndServiceEvents( CFRunLoopObserverRef observer, CFRunLoopActivity activity, void *info); static int OnOffWaitingList(ThreadSpecificData *tsdPtr, |
︙ | ︙ | |||
1749 1750 1751 1752 1753 1754 1755 | * Side effects: * The trigger pipe used to signal the notifier thread is created when * the notifier thread first starts. * *---------------------------------------------------------------------- */ | | | 1748 1749 1750 1751 1752 1753 1754 1755 1756 1757 1758 1759 1760 1761 1762 | * Side effects: * The trigger pipe used to signal the notifier thread is created when * the notifier thread first starts. * *---------------------------------------------------------------------- */ static TCL_NORETURN void NotifierThreadProc( ClientData clientData) /* Not used. */ { ThreadSpecificData *tsdPtr; fd_set readableMask, writableMask, exceptionalMask; int i, numFdBits = 0, polling; struct timeval poll = {0., 0.}, *timePtr; |
︙ | ︙ |
Changes to tests/case.test.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | # Commands covered: case # # This file contains a collection of tests for one or more of the Tcl # built-in commands. Sourcing this file into Tcl runs the tests and # generates output for errors. No output means no errors were found. # # Copyright (c) 1991-1993 The Regents of the University of California. # Copyright (c) 1994 Sun Microsystems, Inc. # Copyright (c) 1998-1999 by Scriptics Corporation. # # See the file "license.terms" for information on usage and redistribution # of this file, and for a DISCLAIMER OF ALL WARRANTIES. if {[lsearch [namespace children] ::tcltest] == -1} { package require tcltest namespace import -force ::tcltest::* } test case-1.1 {simple pattern} { | > > > > > | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | # Commands covered: case # # This file contains a collection of tests for one or more of the Tcl # built-in commands. Sourcing this file into Tcl runs the tests and # generates output for errors. No output means no errors were found. # # Copyright (c) 1991-1993 The Regents of the University of California. # Copyright (c) 1994 Sun Microsystems, Inc. # Copyright (c) 1998-1999 by Scriptics Corporation. # # See the file "license.terms" for information on usage and redistribution # of this file, and for a DISCLAIMER OF ALL WARRANTIES. if {![llength [info commands case]]} { # No "case" command? So no need to test return } if {[lsearch [namespace children] ::tcltest] == -1} { package require tcltest namespace import -force ::tcltest::* } test case-1.1 {simple pattern} { |
︙ | ︙ |
Changes to tests/chanio.test.
︙ | ︙ | |||
6771 6772 6773 6774 6775 6776 6777 | chan copy $in $out chan close $in chan close $out file size $path(utf8-fcopy.txt) } 5 test chan-io-52.11 {TclCopyChannel & encodings} -setup { set f [open $path(utf8-fcopy.txt) w] | | | 6771 6772 6773 6774 6775 6776 6777 6778 6779 6780 6781 6782 6783 6784 6785 | chan copy $in $out chan close $in chan close $out file size $path(utf8-fcopy.txt) } 5 test chan-io-52.11 {TclCopyChannel & encodings} -setup { set f [open $path(utf8-fcopy.txt) w] fconfigure $f -encoding utf-8 -translation lf puts $f "\u0410\u0410" close $f } -constraints {fcopy} -body { # binary to encoding => the input has to be in utf-8 to make sense to the # encoder set in [open $path(utf8-fcopy.txt) r] set out [open $path(kyrillic.txt) w] |
︙ | ︙ |
Changes to tests/cmdAH.test.
︙ | ︙ | |||
163 164 165 166 167 168 169 | } -result {wrong # args: should be "continue"} test cmdAH-3.2 {Tcl_ContinueObjCmd, success} { list [catch {continue} msg] $msg } {4 {}} test cmdAH-4.1 {Tcl_EncodingObjCmd} -returnCodes error -body { encoding | | | | 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 | } -result {wrong # args: should be "continue"} test cmdAH-3.2 {Tcl_ContinueObjCmd, success} { list [catch {continue} msg] $msg } {4 {}} test cmdAH-4.1 {Tcl_EncodingObjCmd} -returnCodes error -body { encoding } -result {wrong # args: should be "encoding subcommand ?arg ...?"} test cmdAH-4.2 {Tcl_EncodingObjCmd} -returnCodes error -body { encoding foo } -result {unknown or ambiguous subcommand "foo": must be convertfrom, convertto, dirs, names, or system} test cmdAH-4.3 {Tcl_EncodingObjCmd} -returnCodes error -body { encoding convertto } -result {wrong # args: should be "encoding convertto ?encoding? data"} test cmdAH-4.4 {Tcl_EncodingObjCmd} -returnCodes error -body { encoding convertto foo bar } -result {unknown encoding "foo"} test cmdAH-4.5 {Tcl_EncodingObjCmd} -setup { |
︙ | ︙ |
Changes to tests/expr.test.
︙ | ︙ | |||
906 907 908 909 910 911 912 913 914 915 916 917 918 919 | list [catch {expr {1 / Inf}} msg] $msg } {1 {can't use infinite floating-point value as operand of "/"}} # Make sure [Bug 761471] stays fixed. test expr-22.9 {non-numeric floats: shared object equality and NaN} { set x NaN expr {$x == $x} } 0 # Tests for exponentiation handling test expr-23.1 {CompileExponentialExpr: just exponential expr} {expr 4**2} 16 test expr-23.2 {CompileExponentialExpr: just exponential expr} {expr 0xff**2} 65025 test expr-23.3 {CompileExponentialExpr: just exponential expr} {expr -1**2} 1 test expr-23.4 {CompileExponentialExpr: just exponential expr} {expr 18**07} 612220032 test expr-23.5 {CompileExponentialExpr: error in exponential expr} -body { | > > > > > > > > > | 906 907 908 909 910 911 912 913 914 915 916 917 918 919 920 921 922 923 924 925 926 927 928 | list [catch {expr {1 / Inf}} msg] $msg } {1 {can't use infinite floating-point value as operand of "/"}} # Make sure [Bug 761471] stays fixed. test expr-22.9 {non-numeric floats: shared object equality and NaN} { set x NaN expr {$x == $x} } 0 # Make sure [Bug d0f7ba56f0] stays fixed. test expr-22.10 {non-numeric arguments: equality and NaN} { set x NaN expr {$x > "Gran"} } 1 test expr-22.11 {non-numeric arguments: equality and NaN} { set x NaN expr {"Gran" < $x} } 1 # Tests for exponentiation handling test expr-23.1 {CompileExponentialExpr: just exponential expr} {expr 4**2} 16 test expr-23.2 {CompileExponentialExpr: just exponential expr} {expr 0xff**2} 65025 test expr-23.3 {CompileExponentialExpr: just exponential expr} {expr -1**2} 1 test expr-23.4 {CompileExponentialExpr: just exponential expr} {expr 18**07} 612220032 test expr-23.5 {CompileExponentialExpr: error in exponential expr} -body { |
︙ | ︙ |
Changes to tests/format.test.
︙ | ︙ | |||
17 18 19 20 21 22 23 24 25 26 27 28 29 30 | # %u output depends on word length, so this test is not portable. testConstraint longIs32bit [expr {int(0x80000000) < 0}] testConstraint longIs64bit [expr {int(0x8000000000000000) < 0}] testConstraint wideIs64bit \ [expr {(wide(0x80000000) > 0) && (wide(0x8000000000000000) < 0)}] testConstraint wideBiggerThanInt [expr {wide(0x80000000) != int(0x80000000)}] test format-1.1 {integer formatting} { format "%*d %d %d %d" 6 34 16923 -12 -1 } { 34 16923 -12 -1} test format-1.2 {integer formatting} { format "%4d %4d %4d %4d %d %#x %#X" 6 34 16923 -12 -1 14 12 } { 6 34 16923 -12 -1 0xe 0XC} | > | 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 | # %u output depends on word length, so this test is not portable. testConstraint longIs32bit [expr {int(0x80000000) < 0}] testConstraint longIs64bit [expr {int(0x8000000000000000) < 0}] testConstraint wideIs64bit \ [expr {(wide(0x80000000) > 0) && (wide(0x8000000000000000) < 0)}] testConstraint wideBiggerThanInt [expr {wide(0x80000000) != int(0x80000000)}] testConstraint pointerIs64bit [expr {$tcl_platform(pointerSize) >= 8}] test format-1.1 {integer formatting} { format "%*d %d %d %d" 6 34 16923 -12 -1 } { 34 16923 -12 -1} test format-1.2 {integer formatting} { format "%4d %4d %4d %4d %d %#x %#X" 6 34 16923 -12 -1 14 12 } { 6 34 16923 -12 -1 0xe 0XC} |
︙ | ︙ | |||
345 346 347 348 349 350 351 | catch {format ab% 12} msg set msg } {format string ended in middle of field specifier} test format-8.19 {error conditions} { catch {format %q x} } 1 test format-8.20 {error conditions} { | | | > > > > > > > > > > > > > > > > > > > > | 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 | catch {format ab% 12} msg set msg } {format string ended in middle of field specifier} test format-8.19 {error conditions} { catch {format %q x} } 1 test format-8.20 {error conditions} { catch {format %r x} msg set msg } {bad field specifier "r"} test format-8.21 {error conditions} { catch {format %d} } 1 test format-8.22 {error conditions} { catch {format %d} msg set msg } {not enough arguments for all format specifiers} test format-8.23 {error conditions} { catch {format "%d %d" 24 xyz} msg set msg } {expected integer but got "xyz"} # Since "%zd" and "%td" are equivalent to "%lld" in 64-bit platforms and # equivalent to "%d" in 32-bit platforms, they are really not useful in # scripts, therefore they are not documented. It's intended use is through # the function Tcl_AppendPrintfToObj (et al). test format-8.24 {Undocumented formats} -body { format "%zd %td %d" [expr 2**30] [expr 2**30] [expr 2**30] } -result {1073741824 1073741824 1073741824} test format-8.25 {Undocumented formats} -constraints pointerIs64bit -body { format "%zd %td %lld" [expr 2**33] [expr 2**33] [expr 2**33] } -result {8589934592 8589934592 8589934592} # Since "%p" is equivalent to "%#llx" in 64-bit platforms and equivalent # to "%#x" in 32-bit platforms, it are really not useful in scripts, # therefore they are not documented. It's intended use is through the # function Tcl_AppendPrintfToObj (et al). test format-8.26 {Undocumented formats} -body { format "%p %#x" [expr 2**31] [expr 2**31] } -result {0x80000000 0x80000000} test format-8.27 {Undocumented formats} -constraints pointerIs64bit -body { format "%p %#llx" [expr 2**33] [expr 2**33] } -result {0x200000000 0x200000000} test format-9.1 {long result} { set a {1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ 1 2 3 4 5 6 7 8 9 0 a b c d e f g h i j k l m n o p q r s t u v w x y z A B C D E F G H I J K L M N O P Q R S T U V W X Y Z} format {1111 2222 3333 4444 5555 6666 7777 8888 9999 aaaa bbbb cccc dddd eeee ffff gggg hhhh iiii jjjj kkkk llll mmmm nnnn oooo pppp qqqq rrrr ssss tttt uuuu vvvv wwww xxxx yyyy zzzz AAAA BBBB CCCC DDDD EEEE FFFF GGGG %s %s} $a $a } {1111 2222 3333 4444 5555 6666 7777 8888 9999 aaaa bbbb cccc dddd eeee ffff gggg hhhh iiii jjjj kkkk llll mmmm nnnn oooo pppp qqqq rrrr ssss tttt uuuu vvvv wwww xxxx yyyy zzzz AAAA BBBB CCCC DDDD EEEE FFFF GGGG 1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ 1 2 3 4 5 6 7 8 9 0 a b c d e f g h i j k l m n o p q r s t u v w x y z A B C D E F G H I J K L M N O P Q R S T U V W X Y Z 1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ 1 2 3 4 5 6 7 8 9 0 a b c d e f g h i j k l m n o p q r s t u v w x y z A B C D E F G H I J K L M N O P Q R S T U V W X Y Z} test format-10.1 {"h" format specifier} { |
︙ | ︙ | |||
524 525 526 527 528 529 530 531 532 533 534 535 536 537 | } 7810179016327718216 test format-17.3 {testing %ld with non-wide} {wideIs64bit} { format %ld 42 } 42 test format-17.4 {testing %l with non-integer} { format %lf 1 } 1.000000 test format-18.1 {do not demote existing numeric values} { set a 0xaaaaaaaa # Ensure $a and $b are separate objects set b 0xaaaa append b aaaa set result [expr {$a == $b}] | > > > > > > | 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 | } 7810179016327718216 test format-17.3 {testing %ld with non-wide} {wideIs64bit} { format %ld 42 } 42 test format-17.4 {testing %l with non-integer} { format %lf 1 } 1.000000 test format-17.5 {testing %llu with bignum} { format %llu 0xabcdef0123456789abcdef } 207698809136909011942886895 test format-17.6 {testing %llu with negative number} -body { format %llu -1 } -returnCodes 1 -result {unsigned bignum format is invalid} test format-18.1 {do not demote existing numeric values} { set a 0xaaaaaaaa # Ensure $a and $b are separate objects set b 0xaaaa append b aaaa set result [expr {$a == $b}] |
︙ | ︙ |
Changes to tests/get.test.
︙ | ︙ | |||
94 95 96 97 98 99 100 | foreach num $numbers { lappend result [catch {format %g $num} msg] $msg } set result } {0 1 0 1 1 {expected floating-point number but got "++1.0"} 1 {expected floating-point number but got "+-1.0"} 1 {expected floating-point number but got "-+1.0"} 0 -1 1 {expected floating-point number but got "--1.0"} 1 {expected floating-point number but got "- +1.0"}} # Bug 7114ac6141 test get-3.3 {tcl_GetInt with iffy numbers} testgetint { | | | | | | 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 | foreach num $numbers { lappend result [catch {format %g $num} msg] $msg } set result } {0 1 0 1 1 {expected floating-point number but got "++1.0"} 1 {expected floating-point number but got "+-1.0"} 1 {expected floating-point number but got "-+1.0"} 0 -1 1 {expected floating-point number but got "--1.0"} 1 {expected floating-point number but got "- +1.0"}} # Bug 7114ac6141 test get-3.3 {tcl_GetInt with iffy numbers} testgetint { lmap x {0 " 0" "0 " " 0 " " 0xa " " 007 " " 0o10 " " 0b10 "} { catch {testgetint 44 $x} x set x } } {44 44 44 44 54 51 52 46} test get-3.4 {Tcl_GetDouble with iffy numbers} testdoubleobj { lmap x {0 0.0 " .0" ".0 " " 0e0 " "07" "- 0" "-0" "0o12" "0b10"} { catch {testdoubleobj set 1 $x} x set x } } {0.0 0.0 0.0 0.0 0.0 7.0 {expected floating-point number but got "- 0"} 0.0 10.0 2.0} # cleanup ::tcltest::cleanupTests return # Local Variables: # mode: tcl |
︙ | ︙ |
Changes to tests/http.test.
︙ | ︙ | |||
32 33 34 35 36 37 38 | proc bgerror {args} { global errorInfo puts stderr "http.test bgerror" puts stderr [join $args] puts stderr $errorInfo } | < < | | < < | 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 | proc bgerror {args} { global errorInfo puts stderr "http.test bgerror" puts stderr [join $args] puts stderr $errorInfo } set bindata "This is binary data\x0d\x0amore\x0dmore\x0amore\x00null" catch {unset data} # Ensure httpd file exists set origFile [file join [pwd] [file dirname [info script]] httpd] set httpdFile [file join [temporaryDirectory] httpd_[pid]] if {![file exists $httpdFile]} { makeFile "" $httpdFile file delete $httpdFile file copy $origFile $httpdFile set removeHttpd 1 } catch {package require Thread 2.7-} if {[catch {package present Thread}] == 0 && [file exists $httpdFile]} { set httpthread [thread::create -preserved] thread::send $httpthread [list source $httpdFile] thread::send $httpthread [list set bindata $bindata] thread::send $httpthread {httpd_init 0; set port} port puts "Running httpd in thread $httpthread" } else { if {![file exists $httpdFile]} { puts "Cannot read $httpdFile script, http test skipped" unset port return } source $httpdFile # Let the OS pick the port; that's much more flexible if {[catch {httpd_init 0} listen]} { puts "Cannot start http server, http test skipped" catch {unset port} return } } test http-1.1 {http::config} { http::config -useragent UserAgent http::config } [list -accept */* -proxyfilter http::ProxyRequired -proxyhost {} -proxyport {} -urlencoding utf-8 -useragent "UserAgent"] |
︙ | ︙ |
Changes to tests/httpd.
1 2 3 4 5 6 7 8 9 10 11 12 13 | # -*- tcl -*- # # The httpd_ procedures implement a stub http server. # # Copyright (c) 1997-1998 Sun Microsystems, Inc. # Copyright (c) 1999-2000 Scriptics Corporation # # See the file "license.terms" for information on usage and redistribution # of this file, and for a DISCLAIMER OF ALL WARRANTIES. #set httpLog 1 proc httpd_init {{port 8015}} { | | > > > > > | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | # -*- tcl -*- # # The httpd_ procedures implement a stub http server. # # Copyright (c) 1997-1998 Sun Microsystems, Inc. # Copyright (c) 1999-2000 Scriptics Corporation # # See the file "license.terms" for information on usage and redistribution # of this file, and for a DISCLAIMER OF ALL WARRANTIES. #set httpLog 1 proc httpd_init {{port 8015}} { set s [socket -server httpdAccept $port] # Save the actual port number in a global variable. # This is important when we're called with port 0 # for picking an unused port at random. set ::port [lindex [chan configure $s -sockname] 2] return $s } proc httpd_log {args} { global httpLog if {[info exists httpLog] && $httpLog} { puts stderr "httpd: [join $args { }]" } } |
︙ | ︙ |
Changes to tests/httpd11.tcl.
1 2 3 4 5 6 7 8 9 10 | # httpd11.tcl -- -*- tcl -*- # # A simple httpd for testing HTTP/1.1 client features. # Not suitable for use on a internet connected port. # # Copyright (C) 2009 Pat Thoyts <[email protected]> # # See the file "license.terms" for information on usage and redistribution # of this file, and for a DISCLAIMER OF ALL WARRANTIES. | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | # httpd11.tcl -- -*- tcl -*- # # A simple httpd for testing HTTP/1.1 client features. # Not suitable for use on a internet connected port. # # Copyright (C) 2009 Pat Thoyts <[email protected]> # # See the file "license.terms" for information on usage and redistribution # of this file, and for a DISCLAIMER OF ALL WARRANTIES. package require Tcl 8.6- proc ::tcl::dict::get? {dict key} { if {[dict exists $dict $key]} { return [dict get $dict $key] } return } |
︙ | ︙ |
Changes to tests/httpold.test.
1 2 3 4 5 6 7 | # Commands covered: http_config, http_get, http_wait, http_reset # # This file contains a collection of tests for the http script library. # Sourcing this file into Tcl runs the tests and # generates output for errors. No output means no errors were found. # # Copyright (c) 1991-1993 The Regents of the University of California. | > | 1 2 3 4 5 6 7 8 | # -*- tcl -*- # Commands covered: http_config, http_get, http_wait, http_reset # # This file contains a collection of tests for the http script library. # Sourcing this file into Tcl runs the tests and # generates output for errors. No output means no errors were found. # # Copyright (c) 1991-1993 The Regents of the University of California. |
︙ | ︙ | |||
37 38 39 40 41 42 43 | catch {unset data} ## ## The httpd script implement a stub http server ## source [file join [file dirname [info script]] httpd] | < | | | 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 | catch {unset data} ## ## The httpd script implement a stub http server ## source [file join [file dirname [info script]] httpd] if [catch {httpd_init 0} listen] { puts "Cannot start http server, http test skipped" catch {unset port} ::tcltest::cleanupTests return } test httpold-1.1 {http_config} { http_config } {-accept */* -proxyfilter httpProxyRequired -proxyhost {} -proxyport {} -useragent {Tcl http client package 1.0}} |
︙ | ︙ |
Changes to tests/incr.test.
︙ | ︙ | |||
490 491 492 493 494 495 496 497 498 499 500 501 502 503 | "$z x 1a"}} test incr-2.31 {incr command (compiled): bad increment} { list [catch {incr x 1a} msg] $msg $::errorInfo } {1 {expected integer but got "1a"} {expected integer but got "1a" (reading increment) invoked from within "incr x 1a"}} test incr-3.1 {increment by wide amount: bytecode route} { set x 0 incr x 123123123123 } 123123123123 test incr-3.2 {increment by wide amount: command route} { set z incr | > > > > > > > > > > > > | 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 | "$z x 1a"}} test incr-2.31 {incr command (compiled): bad increment} { list [catch {incr x 1a} msg] $msg $::errorInfo } {1 {expected integer but got "1a"} {expected integer but got "1a" (reading increment) invoked from within "incr x 1a"}} test incr-2.32 {incr command (compiled): bad pure list increment} { list [catch {incr x [list 1 2]} msg] $msg $::errorInfo } {1 {expected integer but got "1 2"} {expected integer but got "1 2" (reading increment) invoked from within "incr x [list 1 2]"}} test incr-2.33 {incr command (compiled): bad pure dict increment} { list [catch {incr x [dict create 1 2]} msg] $msg $::errorInfo } {1 {expected integer but got "1 2"} {expected integer but got "1 2" (reading increment) invoked from within "incr x [dict create 1 2]"}} test incr-3.1 {increment by wide amount: bytecode route} { set x 0 incr x 123123123123 } 123123123123 test incr-3.2 {increment by wide amount: command route} { set z incr |
︙ | ︙ |
Changes to tests/interp.test.
︙ | ︙ | |||
16 17 18 19 20 21 22 | } ::tcltest::loadTestedCommands catch [list package require -exact Tcltest [info patchlevel]] testConstraint testinterpdelete [llength [info commands testinterpdelete]] | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | } ::tcltest::loadTestedCommands catch [list package require -exact Tcltest [info patchlevel]] testConstraint testinterpdelete [llength [info commands testinterpdelete]] set hidden_cmds {cd encoding exec exit fconfigure file glob load open pwd socket source tcl:encoding:dirs tcl:file:atime tcl:file:attributes tcl:file:copy tcl:file:delete tcl:file:dirname tcl:file:executable tcl:file:exists tcl:file:extension tcl:file:isdirectory tcl:file:isfile tcl:file:link tcl:file:lstat tcl:file:mkdir tcl:file:mtime tcl:file:nativename tcl:file:normalize tcl:file:owned tcl:file:readable tcl:file:readlink tcl:file:rename tcl:file:rootname tcl:file:size tcl:file:stat tcl:file:tail tcl:file:tempfile tcl:file:type tcl:file:volumes tcl:file:writable unload} foreach i [interp slaves] { interp delete $i } # Part 0: Check out options for interp command test interp-1.1 {options for interp command} -returnCodes error -body { |
︙ | ︙ | |||
611 612 613 614 615 616 617 618 619 620 621 622 623 624 | interp eval $interp { proc {} args {return $args} } } -body { interp alias {} p1 $interp {} p1 one two three } -result {one two three} # part 15: testing file sharing test interp-15.1 {testing file sharing} { catch {interp delete z} interp create z z eval close stdout | > > | 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 | interp eval $interp { proc {} args {return $args} } } -body { interp alias {} p1 $interp {} p1 one two three } -cleanup { interp delete $interp } -result {one two three} # part 15: testing file sharing test interp-15.1 {testing file sharing} { catch {interp delete z} interp create z z eval close stdout |
︙ | ︙ |
Changes to tests/load.test.
︙ | ︙ | |||
181 182 183 184 185 186 187 | teststaticpkg More 0 1 } -constraints [list teststaticpkg $dll $loaded] -body { teststaticpkg Double 0 1 teststaticpkg Double 0 1 info loaded } -result [list {{} Double} {{} More} {{} Another} {{} Test} {*}$currentRealPackages {*}$alreadyTotalLoaded] | > > | | | | > > > > > | | | | | | 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 | teststaticpkg More 0 1 } -constraints [list teststaticpkg $dll $loaded] -body { teststaticpkg Double 0 1 teststaticpkg Double 0 1 info loaded } -result [list {{} Double} {{} More} {{} Another} {{} Test} {*}$currentRealPackages {*}$alreadyTotalLoaded] testConstraint teststaticpkg_8.x \ [if {[testConstraint teststaticpkg]} { teststaticpkg Test 1 1 teststaticpkg Another 0 1 teststaticpkg More 0 1 teststaticpkg Double 0 1 expr 1 } else { expr 0 }] test load-8.1 {TclGetLoadedPackages procedure} [list teststaticpkg_8.x $dll $loaded] { lsort -index 1 [info loaded] } [lsort -index 1 [list {{} Double} {{} More} {{} Another} {{} Test} {*}$currentRealPackages {*}$alreadyTotalLoaded]] test load-8.2 {TclGetLoadedPackages procedure} -constraints {teststaticpkg_8.x} -body { info loaded gorp } -returnCodes error -result {could not find interpreter "gorp"} test load-8.3a {TclGetLoadedPackages procedure} [list teststaticpkg_8.x $dll $loaded] { lsort -index 1 [info loaded {}] } [lsort -index 1 [list {{} Double} {{} More} {{} Another} {{} Test} [list [file join $testDir pkga$ext] Pkga] [list [file join $testDir pkgb$ext] Pkgb] {*}$alreadyLoaded]] test load-8.3b {TclGetLoadedPackages procedure} [list teststaticpkg_8.x $dll $loaded] { lsort -index 1 [info loaded child] } [lsort -index 1 [list {{} Test} [list [file join $testDir pkgb$ext] Pkgb]]] test load-8.4 {TclGetLoadedPackages procedure} [list teststaticpkg_8.x $dll $loaded] { load [file join $testDir pkgb$ext] pkgb list [lsort -index 1 [info loaded {}]] [lsort [info commands pkgb_*]] } [list [lsort -index 1 [concat [list [list [file join $testDir pkgb$ext] Pkgb] {{} Double} {{} More} {{} Another} {{} Test} [list [file join $testDir pkga$ext] Pkga]] $alreadyLoaded]] {pkgb_demo pkgb_sub pkgb_unsafe}] interp delete child test load-9.1 {Tcl_StaticPackage, load already-loaded package into another interp} \ -constraints {teststaticpkg} \ |
︙ | ︙ |
Changes to tests/nre.test.
︙ | ︙ | |||
60 61 62 63 64 65 66 | return "$body0; $txt" } namespace export * } namespace import testnre::* } | | > > | | 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 | return "$body0; $txt" } namespace export * } namespace import testnre::* } test nre-0.1 {levels while unwinding} -body { testnreunwind } -constraints { testnrelevels } -result {0 0 0} test nre-1.1 {self-recursive procs} -setup { proc a i [makebody {a $i}] } -body { setabs a 0 } -cleanup { |
︙ | ︙ |
Changes to tests/oo.test.
︙ | ︙ | |||
2237 2238 2239 2240 2241 2242 2243 2244 2245 2246 2247 2248 2249 2250 | oo::class create foo } -cleanup { rename foo {} } -body { oo::define foo unexport {*}[info class methods foo -all] info class methods foo -all } -result {} test oo-18.1 {OO: define command support} { list [catch {oo::define oo::object {error foo}} msg] $msg $errorInfo } {1 foo {foo while executing "error foo" (in definition script for class "::oo::object" line 1) | > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 2237 2238 2239 2240 2241 2242 2243 2244 2245 2246 2247 2248 2249 2250 2251 2252 2253 2254 2255 2256 2257 2258 2259 2260 2261 2262 2263 2264 2265 2266 2267 2268 2269 2270 2271 2272 2273 2274 2275 2276 2277 2278 2279 2280 2281 2282 2283 2284 2285 2286 2287 2288 | oo::class create foo } -cleanup { rename foo {} } -body { oo::define foo unexport {*}[info class methods foo -all] info class methods foo -all } -result {} set stdmethods {<cloned> destroy eval unknown variable varname} test oo-17.11 {OO: object method unexport (bug 900cb0284bc)} -setup { oo::object create o oo::objdefine o unexport m } -body { lsort [info object methods o -all -private] } -cleanup { o destroy } -result $stdmethods test oo-17.12 {OO: instance method unexport (bug 900cb0284bc)} -setup { oo::class create c c create o oo::objdefine o unexport m } -body { lsort [info object methods o -all -private] } -cleanup { o destroy c destroy } -result $stdmethods test oo-17.13 {OO: class method unexport (bug 900cb0284bc)} -setup { oo::class create c oo::define c unexport m } -body { lsort [info class methods c -all -private] } -cleanup { c destroy } -result $stdmethods test oo-17.14 {OO: instance method unexport (bug 900cb0284bc)} -setup { oo::class create c oo::define c unexport m c create o } -body { lsort [info object methods o -all -private] } -cleanup { o destroy c destroy } -result $stdmethods test oo-18.1 {OO: define command support} { list [catch {oo::define oo::object {error foo}} msg] $msg $errorInfo } {1 foo {foo while executing "error foo" (in definition script for class "::oo::object" line 1) |
︙ | ︙ |
Changes to tests/parseExpr.test.
︙ | ︙ | |||
1040 1041 1042 1043 1044 1045 1046 | dict get $o -errorcode } -result {TCL PARSE EXPR EMPTY} test parseExpr-22.13 {Bug 3401704} -constraints testexprparser -body { testexprparser naner() -1 } -result {- {} 0 subexpr naner() 1 operator naner 0 {}} test parseExpr-22.14 {Bug 3401704} -constraints testexprparser -body { | | < | | 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 | dict get $o -errorcode } -result {TCL PARSE EXPR EMPTY} test parseExpr-22.13 {Bug 3401704} -constraints testexprparser -body { testexprparser naner() -1 } -result {- {} 0 subexpr naner() 1 operator naner 0 {}} test parseExpr-22.14 {Bug 3401704} -constraints testexprparser -body { testexprparser 07 -1 } -result {- {} 0 subexpr 07 1 text 07 0 {}} test parseExpr-22.15 {Bug 3401704} -constraints testexprparser -body { catch {testexprparser 0o8 -1} m o dict get $o -errorcode } -result {TCL PARSE EXPR BADNUMBER OCTAL} test parseExpr-22.16 {Bug 3401704} -constraints testexprparser -body { catch {testexprparser 0o08 -1} m o dict get $o -errorcode |
︙ | ︙ |
Changes to tests/result.test.
︙ | ︙ | |||
27 28 29 30 31 32 33 | testsaveresult small {set x 42} 0 } {small result} test result-1.2 {Tcl_SaveInterpResult} {testsaveresult} { testsaveresult append {set x 42} 0 } {append result} test result-1.3 {Tcl_SaveInterpResult} {testsaveresult} { testsaveresult dynamic {set x 42} 0 | | | | 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 | testsaveresult small {set x 42} 0 } {small result} test result-1.2 {Tcl_SaveInterpResult} {testsaveresult} { testsaveresult append {set x 42} 0 } {append result} test result-1.3 {Tcl_SaveInterpResult} {testsaveresult} { testsaveresult dynamic {set x 42} 0 } {dynamic result presentOrFreed} test result-1.4 {Tcl_SaveInterpResult} {testsaveresult} { testsaveresult object {set x 42} 0 } {object result same} test result-1.5 {Tcl_SaveInterpResult} {testsaveresult} { testsaveresult small {set x 42} 1 } {42} test result-1.6 {Tcl_SaveInterpResult} {testsaveresult} { testsaveresult append {set x 42} 1 } {42} test result-1.7 {Tcl_SaveInterpResult} {testsaveresult} { testsaveresult dynamic {set x 42} 1 } {42 presentOrFreed} test result-1.8 {Tcl_SaveInterpResult} {testsaveresult} { testsaveresult object {set x 42} 1 } {42 different} # Tcl_RestoreInterpResult is mostly tested by the previous tests except # for the following case |
︙ | ︙ |
Changes to tests/scan.test.
︙ | ︙ | |||
537 538 539 540 541 542 543 544 545 546 547 548 549 550 | } 0 test scan-5.15 {Bug be003d570f} { scan 0x40 %o } 0 test scan-5.16 {Bug be003d570f} { scan 0x40 %b } 0 test scan-6.1 {floating-point scanning} -setup { set a {}; set b {}; set c {}; set d {} } -body { list [scan "2.1 -3.0e8 .99962 a" "%f%g%e%f" a b c d] $a $b $c $d } -result {3 2.1 -300000000.0 0.99962 {}} test scan-6.2 {floating-point scanning} -setup { | > > > > > > > > > > > > > | 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 | } 0 test scan-5.15 {Bug be003d570f} { scan 0x40 %o } 0 test scan-5.16 {Bug be003d570f} { scan 0x40 %b } 0 test scan-5.17 {bigint scanning} -setup { set a {}; set b {}; set c {}; set d {} } -body { list [scan "207698809136909011942886895,207698809136909011942886895,abcdef0123456789abcdef,125715736004432126361152746757" \ %llu,%lld,%llx,%llo a b c d] $a $b $c $d } -result {4 207698809136909011942886895 207698809136909011942886895 207698809136909011942886895 207698809136909011942886895} test scan-5.18 {bigint scanning underflow} -setup { set a {}; } -body { list [scan "-207698809136909011942886895" \ %llu a] $a } -returnCodes 1 -result {unsigned bignum scans are invalid} test scan-6.1 {floating-point scanning} -setup { set a {}; set b {}; set c {}; set d {} } -body { list [scan "2.1 -3.0e8 .99962 a" "%f%g%e%f" a b c d] $a $b $c $d } -result {3 2.1 -300000000.0 0.99962 {}} test scan-6.2 {floating-point scanning} -setup { |
︙ | ︙ |
Changes to tests/util.test.
︙ | ︙ | |||
4023 4024 4025 4026 4027 4028 4029 | } {9223372036854775807} test util-18.2 {Tcl_ObjPrintf} {testprint} { testprint %I64d [expr 2**63-1] } {9223372036854775807} test util-18.3 {Tcl_ObjPrintf} {testprint} { | | | | | > > > > | > > > > > > > > > > > > > > > > > > > > | 4023 4024 4025 4026 4027 4028 4029 4030 4031 4032 4033 4034 4035 4036 4037 4038 4039 4040 4041 4042 4043 4044 4045 4046 4047 4048 4049 4050 4051 4052 4053 4054 4055 4056 4057 4058 4059 4060 4061 4062 4063 4064 4065 4066 4067 4068 4069 4070 4071 4072 4073 4074 | } {9223372036854775807} test util-18.2 {Tcl_ObjPrintf} {testprint} { testprint %I64d [expr 2**63-1] } {9223372036854775807} test util-18.3 {Tcl_ObjPrintf} {testprint} { testprint %qd [expr 2**63-1] } {9223372036854775807} test util-18.4 {Tcl_ObjPrintf} {testprint} { testprint %jd [expr 2**63-1] } {9223372036854775807} test util-18.5 {Tcl_ObjPrintf} {testprint} { testprint %lld [expr -2**63] } {-9223372036854775808} test util-18.6 {Tcl_ObjPrintf} {testprint} { testprint %I64d [expr -2**63] } {-9223372036854775808} test util-18.7 {Tcl_ObjPrintf} {testprint} { testprint %qd [expr -2**63] } {-9223372036854775808} test util-18.8 {Tcl_ObjPrintf} {testprint} { testprint %jd [expr -2**63] } {-9223372036854775808} test util-18.9 {Tcl_ObjPrintf} {testprint} { testprint "%I64d %I32d" [expr -2**63+2] } {-9223372036854775806 2} test util-18.10 {Tcl_ObjPrintf} {testprint} { testprint "%I64d %p" 65535 } {65535 0xffff} test util-18.11 {Tcl_ObjPrintf} {testprint} { testprint "%I64d %td" 65536 } {65536 65536} test util-18.12 {Tcl_ObjPrintf} {testprint} { testprint "%I64d %Id" 65537 } {65537 65537} set ::tcl_precision $saved_precision # cleanup ::tcltest::cleanupTests return |
︙ | ︙ |
Changes to tests/zlib.test.
︙ | ︙ | |||
153 154 155 156 157 158 159 160 161 162 163 164 165 166 | $strm put -finalize $randdata set data [$strm get] list [string length $data] [string length [zlib decompress $data]] } -cleanup { catch {$strm close} unset -nocomplain randdata data } -result {120185 18003000} test zlib-8.1 {zlib transformation} -constraints zlib -setup { set file [makeFile {} test.gz] } -body { set f [zlib push gzip [open $file w] -header {comment gorp}] puts $f "ok" close $f | > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 | $strm put -finalize $randdata set data [$strm get] list [string length $data] [string length [zlib decompress $data]] } -cleanup { catch {$strm close} unset -nocomplain randdata data } -result {120185 18003000} test zlib-7.9 {zlib stream finalize (bug 25842c161)} -constraints zlib -setup { set z1 [zlib stream gzip] set z2 [zlib stream gzip] } -body { $z1 put ABCDEedbca.. $z1 finalize zlib gunzip [$z1 get] } -cleanup { $z1 close } -result ABCDEedbca.. test zlib-7.10 {zlib stream finalize (bug 25842c161)} -constraints zlib -setup { set z2 [zlib stream gzip] } -body { $z2 put -finalize ABCDEedbca.. zlib gunzip [$z2 get] } -cleanup { $z2 close } -result ABCDEedbca.. test zlib-7.11 {zlib stream put -finalize (bug 25842c161)} -constraints zlib -setup { set c [zlib stream gzip] set d [zlib stream gunzip] } -body { $c put abcdeEDCBA.. $c finalize $d put [$c get] $d finalize $d get } -cleanup { $c close $d close } -result abcdeEDCBA.. test zlib-7.12 {zlib stream put; zlib stream finalize (bug 25842c161)} -constraints zlib -setup { set c [zlib stream gzip] set d [zlib stream gunzip] } -body { $c put -finalize abcdeEDCBA.. $d put -finalize [$c get] $d get } -cleanup { $c close $d close } -result abcdeEDCBA.. test zlib-8.1 {zlib transformation} -constraints zlib -setup { set file [makeFile {} test.gz] } -body { set f [zlib push gzip [open $file w] -header {comment gorp}] puts $f "ok" close $f |
︙ | ︙ | |||
265 266 267 268 269 270 271 | # Dictionary is that which is proposed _in_ SPDY draft set spdyHeaders "HTTP/1.0 200 OK\r\nContent-Type: text/html; charset=utf-8\r\nX-Robots-Tag: noarchive\r\nLast-Modified: Tue, 05 Jun 2012 02:43:25 GMT\r\nETag: \"1338864205129|#public|0|en|||0\"\r\nExpires: Tue, 05 Jun 2012 16:17:11 GMT\r\nDate: Tue, 05 Jun 2012 16:17:06 GMT\r\nCache-Control: public, max-age=5\r\nX-Content-Type-Options: nosniff\r\nX-XSS-Protection: 1; mode=block\r\nServer: GSE\r\n" set spdyDict "optionsgetheadpostputdeletetraceacceptaccept-charsetaccept-encodingaccept-languageauthorizationexpectfromhostif-modified-sinceif-matchif-none-matchif-rangeif-unmodifiedsincemax-forwardsproxy-authorizationrangerefererteuser-agent100101200201202203204205206300301302303304305306307400401402403404405406407408409410411412413414415416417500501502503504505accept-rangesageetaglocationproxy-authenticatepublicretry-afterservervarywarningwww-authenticateallowcontent-basecontent-encodingcache-controlconnectiondatetrailertransfer-encodingupgradeviawarningcontent-languagecontent-lengthcontent-locationcontent-md5content-rangecontent-typeetagexpireslast-modifiedset-cookieMondayTuesdayWednesdayThursdayFridaySaturdaySundayJanFebMarAprMayJunJulAugSepOctNovDecchunkedtext/htmlimage/pngimage/jpgimage/gifapplication/xmlapplication/xhtmltext/plainpublicmax-agecharset=iso-8859-1utf-8gzipdeflateHTTP/1.1statusversionurl" test zlib-8.8 {transformation and fconfigure} -setup { lassign [chan pipe] inSide outSide } -constraints zlib -body { zlib push compress $outSide -dictionary $spdyDict | | | 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 | # Dictionary is that which is proposed _in_ SPDY draft set spdyHeaders "HTTP/1.0 200 OK\r\nContent-Type: text/html; charset=utf-8\r\nX-Robots-Tag: noarchive\r\nLast-Modified: Tue, 05 Jun 2012 02:43:25 GMT\r\nETag: \"1338864205129|#public|0|en|||0\"\r\nExpires: Tue, 05 Jun 2012 16:17:11 GMT\r\nDate: Tue, 05 Jun 2012 16:17:06 GMT\r\nCache-Control: public, max-age=5\r\nX-Content-Type-Options: nosniff\r\nX-XSS-Protection: 1; mode=block\r\nServer: GSE\r\n" set spdyDict "optionsgetheadpostputdeletetraceacceptaccept-charsetaccept-encodingaccept-languageauthorizationexpectfromhostif-modified-sinceif-matchif-none-matchif-rangeif-unmodifiedsincemax-forwardsproxy-authorizationrangerefererteuser-agent100101200201202203204205206300301302303304305306307400401402403404405406407408409410411412413414415416417500501502503504505accept-rangesageetaglocationproxy-authenticatepublicretry-afterservervarywarningwww-authenticateallowcontent-basecontent-encodingcache-controlconnectiondatetrailertransfer-encodingupgradeviawarningcontent-languagecontent-lengthcontent-locationcontent-md5content-rangecontent-typeetagexpireslast-modifiedset-cookieMondayTuesdayWednesdayThursdayFridaySaturdaySundayJanFebMarAprMayJunJulAugSepOctNovDecchunkedtext/htmlimage/pngimage/jpgimage/gifapplication/xmlapplication/xhtmltext/plainpublicmax-agecharset=iso-8859-1utf-8gzipdeflateHTTP/1.1statusversionurl" test zlib-8.8 {transformation and fconfigure} -setup { lassign [chan pipe] inSide outSide } -constraints zlib -body { zlib push compress $outSide -dictionary $spdyDict fconfigure $outSide -blocking 1 -translation binary -buffering none fconfigure $inSide -blocking 1 -translation binary puts -nonewline $outSide $spdyHeaders chan pop $outSide chan close $outSide set compressed [read $inSide] catch {zlib decompress $compressed} err opt list [string length [zlib compress $spdyHeaders]] \ |
︙ | ︙ | |||
462 463 464 465 466 467 468 469 470 471 472 473 474 475 | removeFile $sfile } -result {copied 81920 size 81920} test zlib-9.2 "socket fcopy with push" -constraints zlib -setup { set srv [socket -myaddr localhost -server {apply {{c a p} { chan configure $c -translation binary -buffering none -blocking 0 puts -nonewline $c [zlib gzip [string repeat a 81920]] close $c }}} 0] set file [makeFile {} test.gz] } -body { lassign [chan configure $srv -sockname] addr name port set sin [socket $addr $port] chan configure $sin -translation binary zlib push gunzip $sin | > > | > > | 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 | removeFile $sfile } -result {copied 81920 size 81920} test zlib-9.2 "socket fcopy with push" -constraints zlib -setup { set srv [socket -myaddr localhost -server {apply {{c a p} { chan configure $c -translation binary -buffering none -blocking 0 puts -nonewline $c [zlib gzip [string repeat a 81920]] close $c set ::total -1 }}} 0] set file [makeFile {} test.gz] } -body { lassign [chan configure $srv -sockname] addr name port set sin [socket $addr $port] chan configure $sin -translation binary zlib push gunzip $sin after 1000 {set ::total timeout} vwait ::total after cancel {set ::total timeout} if {$::total != -1} {error "unexpected value $::total of ::total"} set total [fcopy $sin [set fout [open $file wb]]] close $sin close $fout list read $total size [file size $file] } -cleanup { close $srv removeFile $file |
︙ | ︙ |
Changes to tools/configure.
︙ | ︙ | |||
1677 1678 1679 1680 1681 1682 1683 | # Recover information that Tcl computed with its configure script. #-------------------------------------------------------------------- # See if there was a command-line option for where Tcl is; if # not, assume that its top-level directory is a sibling of ours. #-------------------------------------------------------------------- | | | 1677 1678 1679 1680 1681 1682 1683 1684 1685 1686 1687 1688 1689 1690 1691 | # Recover information that Tcl computed with its configure script. #-------------------------------------------------------------------- # See if there was a command-line option for where Tcl is; if # not, assume that its top-level directory is a sibling of ours. #-------------------------------------------------------------------- DEF_VER=8.7 # Check whether --with-tcl was given. if test "${with_tcl+set}" = set; then : withval=$with_tcl; TCL_BIN_DIR=$withval else TCL_BIN_DIR=`cd ../../tcl$DEF_VER$TCL_PATCH_LEVEL/unix; pwd` |
︙ | ︙ |
Changes to tools/genStubs.tcl.
︙ | ︙ | |||
195 196 197 198 199 200 201 202 203 204 205 206 207 208 | if {$decl ne ""} { set stubs($curName,$platform,$index) $decl if {![info exists stubs($curName,$platform,lastNum)] \ || ($index > $stubs($curName,$platform,lastNum))} { set stubs($curName,$platform,lastNum) $index } } } return } # genStubs::export -- # # This function is used in the declarations file to declare a symbol | > > > > > > > | 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 | if {$decl ne ""} { set stubs($curName,$platform,$index) $decl if {![info exists stubs($curName,$platform,lastNum)] \ || ($index > $stubs($curName,$platform,lastNum))} { set stubs($curName,$platform,lastNum) $index } } if {$platformList eq "deprecated"} { set stubs($curName,generic,$index) $decl if {![info exists stubs($curName,generic,lastNum)] \ || ($index > $stubs($curName,generic,lastNum))} { set stubs($curName,$platform,lastNum) $index } } } return } # genStubs::export -- # # This function is used in the declarations file to declare a symbol |
︙ | ︙ | |||
451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 | # index The slot index for this function. # # Results: # Returns the formatted declaration string. proc genStubs::makeDecl {name decl index} { variable scspec lassign $decl rtype fname args append text "/* $index */\n" set line "$scspec $rtype" set count [expr {2 - ([string length $line] / 8)}] append line [string range "\t\t\t" 0 $count] set pad [expr {24 - [string length $line]}] if {$pad <= 0} { append line " " set pad 0 } | > > > > > > | 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 | # index The slot index for this function. # # Results: # Returns the formatted declaration string. proc genStubs::makeDecl {name decl index} { variable scspec variable stubs variable libraryName lassign $decl rtype fname args append text "/* $index */\n" if {[info exists stubs($name,deprecated,$index)]} { set line "[string toupper $libraryName]_DEPRECATED $rtype" } else { set line "$scspec $rtype" } set count [expr {2 - ([string length $line] / 8)}] append line [string range "\t\t\t" 0 $count] set pad [expr {24 - [string length $line]}] if {$pad <= 0} { append line " " set pad 0 } |
︙ | ︙ | |||
678 679 680 681 682 683 684 | if {$stubs($plat) > $lastNum} { set lastNum $stubs($plat) } } for {set i 0} {$i <= $lastNum} {incr i} { set slots [array names stubs $name,*,$i] set emit 0 | | > > > | 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 | if {$stubs($plat) > $lastNum} { set lastNum $stubs($plat) } } for {set i 0} {$i <= $lastNum} {incr i} { set slots [array names stubs $name,*,$i] set emit 0 if {[info exists stubs($name,deprecated,$i)]} { append text [$slotProc $name $stubs($name,generic,$i) $i] set emit 1 } elseif {[info exists stubs($name,generic,$i)]} { if {[llength $slots] > 1} { puts stderr "conflicting generic and platform entries:\ $name $i" } append text [$slotProc $name $stubs($name,generic,$i) $i] set emit 1 } elseif {[llength $slots] > 0} { |
︙ | ︙ |
Changes to tools/tcltk-man2html-utils.tcl.
︙ | ︙ | |||
151 152 153 154 155 156 157 | {\(fm} "′" \ {\(mu} "×" \ {\(mi} "−" \ {\(->} "<font size=\"+1\">→</font>" \ {\fP} {\fR} \ {\.} . \ {\(bu} "•" \ | < > > > > > > > > | 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 | {\(fm} "′" \ {\(mu} "×" \ {\(mi} "−" \ {\(->} "<font size=\"+1\">→</font>" \ {\fP} {\fR} \ {\.} . \ {\(bu} "•" \ ] # This might make a few invalid mappings, but we don't use them foreach c {a e i o u y A E I O U Y} { foreach {prefix suffix} { o ring / slash : uml ' acute ^ circ ` grave } { lappend charmap "\\\[${prefix}${c}\]" "&${c}${suffix};" } } lappend charmap {\-\|\-} -- ; # two hyphens lappend charmap {\-} - ; # a hyphen set text [htmlize-text $text $charmap] # General quoted entity regsub -all {\\N'(\d+)'} $text "\\&#\\1;" text while {[string first "\\" $text] >= 0} { |
︙ | ︙ |
Changes to tools/tcltk-man2html.tcl.
1 2 3 4 5 6 | #!/usr/bin/env tclsh if {[catch {package require Tcl 8.6-} msg]} { puts stderr "ERROR: $msg" puts stderr "If running this script from 'make html', set the\ NATIVE_TCLSH environment\nvariable to point to an installed\ | | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 | #!/usr/bin/env tclsh if {[catch {package require Tcl 8.6-} msg]} { puts stderr "ERROR: $msg" puts stderr "If running this script from 'make html', set the\ NATIVE_TCLSH environment\nvariable to point to an installed\ tclsh8.7 (or the equivalent tclsh87.exe\non Windows)." exit 1 } # Convert Ousterhout format man pages into highly crosslinked hypertext. # # Along the way detect many unmatched font changes and other odd things. # # Note well, this program is a hack rather than a piece of software # engineering. In that sense it's probably a good example of things # that a scripting language, like Tcl, can do well. It is offered as # an example of how someone might convert a specific set of man pages # into hypertext, not as a general solution to the problem. If you # try to use this, you'll be very much on your own. # # Copyright (c) 1995-1997 Roger E. Critchlow Jr # Copyright (c) 2004-2010 Donal K. Fellows set ::Version "50/8.7" set ::CSSFILE "docs.css" ## ## Source the utility functions that provide most of the ## implementation of the transformation from nroff to html. ## source [file join [file dirname [info script]] tcltk-man2html-utils.tcl] |
︙ | ︙ |
Changes to unix/configure.
︙ | ︙ | |||
4981 4982 4983 4984 4985 4986 4987 | TCL_TRIM_DOTS='`echo ${VERSION} | tr -d .`' ECHO_VERSION='`echo ${VERSION}`' TCL_LIB_VERSIONS_OK=ok CFLAGS_DEBUG=-g if test "$GCC" = yes; then : CFLAGS_OPTIMIZE=-O2 | | | 4981 4982 4983 4984 4985 4986 4987 4988 4989 4990 4991 4992 4993 4994 4995 | TCL_TRIM_DOTS='`echo ${VERSION} | tr -d .`' ECHO_VERSION='`echo ${VERSION}`' TCL_LIB_VERSIONS_OK=ok CFLAGS_DEBUG=-g if test "$GCC" = yes; then : CFLAGS_OPTIMIZE=-O2 CFLAGS_WARNING="-Wall -Wwrite-strings -Wsign-compare -Wdeclaration-after-statement" else CFLAGS_OPTIMIZE=-O CFLAGS_WARNING="" fi |
︙ | ︙ |
Changes to unix/tcl.m4.
︙ | ︙ | |||
1092 1093 1094 1095 1096 1097 1098 | UNSHARED_LIB_SUFFIX="" TCL_TRIM_DOTS='`echo ${VERSION} | tr -d .`' ECHO_VERSION='`echo ${VERSION}`' TCL_LIB_VERSIONS_OK=ok CFLAGS_DEBUG=-g AS_IF([test "$GCC" = yes], [ CFLAGS_OPTIMIZE=-O2 | | | 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 | UNSHARED_LIB_SUFFIX="" TCL_TRIM_DOTS='`echo ${VERSION} | tr -d .`' ECHO_VERSION='`echo ${VERSION}`' TCL_LIB_VERSIONS_OK=ok CFLAGS_DEBUG=-g AS_IF([test "$GCC" = yes], [ CFLAGS_OPTIMIZE=-O2 CFLAGS_WARNING="-Wall -Wwrite-strings -Wsign-compare -Wdeclaration-after-statement" ], [ CFLAGS_OPTIMIZE=-O CFLAGS_WARNING="" ]) AC_CHECK_TOOL(AR, ar) STLIB_LD='${AR} cr' LD_LIBRARY_PATH_VAR="LD_LIBRARY_PATH" |
︙ | ︙ |
Changes to unix/tclUnixNotfy.c.
︙ | ︙ | |||
189 190 191 192 193 194 195 | #endif /* TCL_THREADS */ /* * Static routines defined in this file. */ #ifdef TCL_THREADS | | | 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 | #endif /* TCL_THREADS */ /* * Static routines defined in this file. */ #ifdef TCL_THREADS static TCL_NORETURN void NotifierThreadProc(ClientData clientData); #if defined(HAVE_PTHREAD_ATFORK) static int atForkInit = 0; static void AtForkChild(void); #endif /* HAVE_PTHREAD_ATFORK */ #endif /* TCL_THREADS */ static int FileHandlerEventProc(Tcl_Event *evPtr, int flags); |
︙ | ︙ | |||
1135 1136 1137 1138 1139 1140 1141 | * Side effects: * The trigger pipe used to signal the notifier thread is created when * the notifier thread first starts. * *---------------------------------------------------------------------- */ | | | 1135 1136 1137 1138 1139 1140 1141 1142 1143 1144 1145 1146 1147 1148 1149 | * Side effects: * The trigger pipe used to signal the notifier thread is created when * the notifier thread first starts. * *---------------------------------------------------------------------- */ static TCL_NORETURN void NotifierThreadProc( ClientData clientData) /* Not used. */ { ThreadSpecificData *tsdPtr; fd_set readableMask; fd_set writableMask; fd_set exceptionMask; |
︙ | ︙ |
Changes to unix/tclUnixSock.c.
︙ | ︙ | |||
113 114 115 116 117 118 119 | #define SOCKET_BUFSIZE 4096 /* * Static routines for this file: */ | | < | 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 | #define SOCKET_BUFSIZE 4096 /* * Static routines for this file: */ static int TcpConnect(Tcl_Interp *interp, TcpState *state); static void TcpAccept(ClientData data, int mask); static int TcpBlockModeProc(ClientData data, int mode); static int TcpCloseProc(ClientData instanceData, Tcl_Interp *interp); static int TcpClose2Proc(ClientData instanceData, Tcl_Interp *interp, int flags); static int TcpGetHandleProc(ClientData instanceData, |
︙ | ︙ | |||
169 170 171 172 173 174 175 | static TclInitProcessGlobalValueProc InitializeHostName; static ProcessGlobalValue hostName = {0, 0, NULL, NULL, InitializeHostName, NULL, NULL}; #if 0 /* printf debugging */ | > > | > > | < | | | | 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 | static TclInitProcessGlobalValueProc InitializeHostName; static ProcessGlobalValue hostName = {0, 0, NULL, NULL, InitializeHostName, NULL, NULL}; #if 0 /* printf debugging */ void printaddrinfo( struct addrinfo *addrlist, char *prefix) { char host[NI_MAXHOST], port[NI_MAXSERV]; struct addrinfo *ai; for (ai = addrlist; ai != NULL; ai = ai->ai_next) { getnameinfo(ai->ai_addr, ai->ai_addrlen, host, sizeof(host), port, sizeof(port), NI_NUMERICHOST|NI_NUMERICSERV); fprintf(stderr,"%s: %s:%s\n", prefix, host, port); } } #endif /* * ---------------------------------------------------------------------- * * InitializeHostName -- * * This routine sets the process global value of the name of the local * host on which the process is running. * * Results: * None. * * ---------------------------------------------------------------------- */ static void InitializeHostName( char **valuePtr, size_t *lengthPtr, Tcl_Encoding *encodingPtr) |
︙ | ︙ | |||
236 237 238 239 240 241 242 | if (hp != NULL) { native = hp->h_name; } else { native = u.nodename; } } if (native == NULL) { | | | 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 | if (hp != NULL) { native = hp->h_name; } else { native = u.nodename; } } if (native == NULL) { native = &tclEmptyString; } #else /* !NO_UNAME */ /* * Uname doesn't exist; try gethostname instead. * * There is no portable macro for the maximum length of host names * returned by gethostbyname(). We should only trust SYS_NMLN if it is at |
︙ | ︙ | |||
272 273 274 275 276 277 278 | *encodingPtr = Tcl_GetEncoding(NULL, NULL); *lengthPtr = strlen(native); *valuePtr = ckalloc(*lengthPtr + 1); memcpy(*valuePtr, native, *lengthPtr + 1); } /* | | | | | | | | | | 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 | *encodingPtr = Tcl_GetEncoding(NULL, NULL); *lengthPtr = strlen(native); *valuePtr = ckalloc(*lengthPtr + 1); memcpy(*valuePtr, native, *lengthPtr + 1); } /* * ---------------------------------------------------------------------- * * Tcl_GetHostName -- * * Returns the name of the local host. * * Results: * A string containing the network name for this machine, or an empty * string if we can't figure out the name. The caller must not modify or * free this string. * * Side effects: * Caches the name to return for future calls. * * ---------------------------------------------------------------------- */ const char * Tcl_GetHostName(void) { return Tcl_GetString(TclGetProcessGlobalValue(&hostName)); } /* * ---------------------------------------------------------------------- * * TclpHasSockets -- * * Detect if sockets are available on this platform. * * Results: * Returns TCL_OK. * * Side effects: * None. * * ---------------------------------------------------------------------- */ int TclpHasSockets( Tcl_Interp *interp) /* Not used. */ { return TCL_OK; } /* * ---------------------------------------------------------------------- * * TclpFinalizeSockets -- * * Performs per-thread socket subsystem finalization. * * Results: * None. * * Side effects: * None. * * ---------------------------------------------------------------------- */ void TclpFinalizeSockets(void) { return; } /* * ---------------------------------------------------------------------- * * TcpBlockModeProc -- * * This function is invoked by the generic IO level to set blocking and * nonblocking mode on a TCP socket based channel. * * Results: * 0 if successful, errno when failed. * * Side effects: * Sets the device into blocking or nonblocking mode. * * ---------------------------------------------------------------------- */ /* ARGSUSED */ static int TcpBlockModeProc( ClientData instanceData, /* Socket state. */ int mode) /* The mode to set. Can be one of |
︙ | ︙ | |||
383 384 385 386 387 388 389 | if (TclUnixSetBlockingMode(statePtr->fds.fd, mode) < 0) { return errno; } return 0; } /* | | | | | | | | | < | | | | | | | | | 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 | if (TclUnixSetBlockingMode(statePtr->fds.fd, mode) < 0) { return errno; } return 0; } /* * ---------------------------------------------------------------------- * * WaitForConnect -- * * Check the state of an async connect process. If a connection attempt * terminated, process it, which may finalize it or may start the next * attempt. If a connect error occures, it is saved in * statePtr->connectError to be reported by 'fconfigure -error'. * * There are two modes of operation, defined by errorCodePtr: * * non-NULL: Called by explicite read/write command. Blocks if the * socket is blocking. * May return two error codes: * * EWOULDBLOCK: if connect is still in progress * * ENOTCONN: if connect failed. This would be the error message * of a rect or sendto syscall so this is emulated here. * * NULL: Called by a backround operation. Do not block and do not * return any error code. * * Results: * 0 if the connection has completed, -1 if still in progress or there is * an error. * * Side effects: * Processes socket events off the system queue. May process * asynchroneous connects. * *---------------------------------------------------------------------- */ static int WaitForConnect( TcpState *statePtr, /* State of the socket. */ int *errorCodePtr) { int timeout; /* * Check if an async connect failed already and error reporting is * demanded, return the error ENOTCONN */ if (errorCodePtr != NULL && (statePtr->flags & TCP_ASYNC_FAILED)) { *errorCodePtr = ENOTCONN; return -1; } |
︙ | ︙ | |||
446 447 448 449 450 451 452 | if (errorCodePtr == NULL || (statePtr->flags & TCP_NONBLOCKING)) { timeout = 0; } else { timeout = -1; } do { if (TclUnixWaitForFile(statePtr->fds.fd, | | > > | | > | 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 | if (errorCodePtr == NULL || (statePtr->flags & TCP_NONBLOCKING)) { timeout = 0; } else { timeout = -1; } do { if (TclUnixWaitForFile(statePtr->fds.fd, TCL_WRITABLE | TCL_EXCEPTION, timeout) != 0) { TcpConnect(NULL, statePtr); } /* * Do this only once in the nonblocking case and repeat it until the * socket is final when blocking. */ } while (timeout == -1 && statePtr->flags & TCP_ASYNC_CONNECT); if (errorCodePtr != NULL) { if (statePtr->flags & TCP_ASYNC_PENDING) { *errorCodePtr = EAGAIN; return -1; } else if (statePtr->connectError != 0) { |
︙ | ︙ | |||
611 612 613 614 615 616 617 618 619 620 621 622 623 624 | errorCode = errno; } } fds = statePtr->fds.next; while (fds != NULL) { TcpFdList *next = fds->next; ckfree(fds); fds = next; } if (statePtr->addrlist != NULL) { freeaddrinfo(statePtr->addrlist); } if (statePtr->myaddrlist != NULL) { | > | 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 | errorCode = errno; } } fds = statePtr->fds.next; while (fds != NULL) { TcpFdList *next = fds->next; ckfree(fds); fds = next; } if (statePtr->addrlist != NULL) { freeaddrinfo(statePtr->addrlist); } if (statePtr->myaddrlist != NULL) { |
︙ | ︙ | |||
681 682 683 684 685 686 687 | } /* *---------------------------------------------------------------------- * * TcpHostPortList -- * | | | | < | < | > | | > | < > > | > > > | | > > | > > > | > > | 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 | } /* *---------------------------------------------------------------------- * * TcpHostPortList -- * * This function is called by the -gethostname and -getpeername switches * of TcpGetOptionProc() to add three list elements with the textual * representation of the given address to the given DString. * * Results: * None. * * Side effects: * Adds three elements do dsPtr * *---------------------------------------------------------------------- */ static void TcpHostPortList( Tcl_Interp *interp, Tcl_DString *dsPtr, address addr, socklen_t salen) { #define SUPPRESS_RDNS_VAR "::tcl::unsupported::noReverseDNS" char host[NI_MAXHOST], nhost[NI_MAXHOST], nport[NI_MAXSERV]; int flags = 0; getnameinfo(&addr.sa, salen, nhost, sizeof(nhost), nport, sizeof(nport), NI_NUMERICHOST | NI_NUMERICSERV); Tcl_DStringAppendElement(dsPtr, nhost); /* * We don't want to resolve INADDR_ANY and sin6addr_any; they can * sometimes cause problems (and never have a name). */ if (addr.sa.sa_family == AF_INET) { if (addr.sa4.sin_addr.s_addr == INADDR_ANY) { flags |= NI_NUMERICHOST; } #ifndef NEED_FAKE_RFC2553 } else if (addr.sa.sa_family == AF_INET6) { if ((IN6_ARE_ADDR_EQUAL(&addr.sa6.sin6_addr, &in6addr_any)) || (IN6_IS_ADDR_V4MAPPED(&addr.sa6.sin6_addr) && addr.sa6.sin6_addr.s6_addr[12] == 0 && addr.sa6.sin6_addr.s6_addr[13] == 0 && addr.sa6.sin6_addr.s6_addr[14] == 0 && addr.sa6.sin6_addr.s6_addr[15] == 0)) { flags |= NI_NUMERICHOST; } #endif /* NEED_FAKE_RFC2553 */ } /* * Check if reverse DNS has been switched off globally. */ if (interp != NULL && Tcl_GetVar2(interp, SUPPRESS_RDNS_VAR, NULL, 0) != NULL) { flags |= NI_NUMERICHOST; } if (getnameinfo(&addr.sa, salen, host, sizeof(host), NULL, 0, flags) == 0) { /* * Reverse mapping worked. */ Tcl_DStringAppendElement(dsPtr, host); } else { /* * Reverse mapping failed - use the numeric rep once more. */ Tcl_DStringAppendElement(dsPtr, nhost); } Tcl_DStringAppendElement(dsPtr, nport); } /* *---------------------------------------------------------------------- |
︙ | ︙ | |||
789 790 791 792 793 794 795 | } if ((len > 1) && (optionName[1] == 'e') && (strncmp(optionName, "-error", len) == 0)) { socklen_t optlen = sizeof(int); if (statePtr->flags & TCP_ASYNC_CONNECT) { | > | > > > | | | | > > | 805 806 807 808 809 810 811 812 813 814 815 816 817 818 819 820 821 822 823 824 825 826 827 828 829 830 831 832 833 834 835 836 837 838 839 840 841 842 843 844 845 846 847 848 849 850 851 852 853 854 855 856 857 858 859 860 861 862 863 864 865 866 867 868 | } if ((len > 1) && (optionName[1] == 'e') && (strncmp(optionName, "-error", len) == 0)) { socklen_t optlen = sizeof(int); if (statePtr->flags & TCP_ASYNC_CONNECT) { /* * Suppress errors as long as we are not done. */ errno = 0; } else if (statePtr->connectError != 0) { errno = statePtr->connectError; statePtr->connectError = 0; } else { int err; getsockopt(statePtr->fds.fd, SOL_SOCKET, SO_ERROR, (char *) &err, &optlen); errno = err; } if (errno != 0) { Tcl_DStringAppend(dsPtr, Tcl_ErrnoMsg(errno), -1); } return TCL_OK; } if ((len > 1) && (optionName[1] == 'c') && (strncmp(optionName, "-connecting", len) == 0)) { Tcl_DStringAppend(dsPtr, (statePtr->flags & TCP_ASYNC_CONNECT) ? "1" : "0", -1); return TCL_OK; } if ((len == 0) || ((len > 1) && (optionName[1] == 'p') && (strncmp(optionName, "-peername", len) == 0))) { address peername; socklen_t size = sizeof(peername); if (statePtr->flags & TCP_ASYNC_CONNECT) { /* * In async connect output an empty string */ if (len == 0) { Tcl_DStringAppendElement(dsPtr, "-peername"); Tcl_DStringAppendElement(dsPtr, ""); } else { return TCL_OK; } } else if (getpeername(statePtr->fds.fd, &peername.sa, &size) >= 0) { /* * Peername fetch succeeded - output list */ if (len == 0) { Tcl_DStringAppendElement(dsPtr, "-peername"); Tcl_DStringStartSublist(dsPtr); } TcpHostPortList(interp, dsPtr, peername, size); if (len) { return TCL_OK; |
︙ | ︙ | |||
872 873 874 875 876 877 878 | socklen_t size; int found = 0; if (len == 0) { Tcl_DStringAppendElement(dsPtr, "-sockname"); Tcl_DStringStartSublist(dsPtr); } | | > | | 894 895 896 897 898 899 900 901 902 903 904 905 906 907 908 909 910 911 912 913 | socklen_t size; int found = 0; if (len == 0) { Tcl_DStringAppendElement(dsPtr, "-sockname"); Tcl_DStringStartSublist(dsPtr); } if (statePtr->flags & TCP_ASYNC_CONNECT) { /* * In async connect output an empty string */ found = 1; } else { for (fds = &statePtr->fds; fds != NULL; fds = fds->next) { size = sizeof(sockname); if (getsockname(fds->fd, &(sockname.sa), &size) >= 0) { found = 1; TcpHostPortList(interp, dsPtr, sockname, size); } |
︙ | ︙ | |||
901 902 903 904 905 906 907 | "can't get sockname: %s", Tcl_PosixError(interp))); } return TCL_ERROR; } } if (len > 0) { | | > | | | | | | < | | | | > | 924 925 926 927 928 929 930 931 932 933 934 935 936 937 938 939 940 941 942 943 944 945 946 947 948 949 950 951 952 953 954 955 956 957 958 959 960 961 962 963 964 965 966 967 968 969 970 971 972 973 974 975 976 977 978 979 980 981 982 | "can't get sockname: %s", Tcl_PosixError(interp))); } return TCL_ERROR; } } if (len > 0) { return Tcl_BadChannelOption(interp, optionName, "connecting peername sockname"); } return TCL_OK; } /* * ---------------------------------------------------------------------- * * TcpWatchProc -- * * Initialize the notifier to watch the fd from this channel. * * Results: * None. * * Side effects: * Sets up the notifier so that a future event on the channel will be * seen by Tcl. * * ---------------------------------------------------------------------- */ static void WrapNotify( ClientData clientData, int mask) { TcpState *statePtr = (TcpState *) clientData; int newmask = mask & statePtr->interest; if (newmask == 0) { /* * There was no overlap between the states the channel is interested * in notifications for, and the states that are reported present on * the file descriptor by select(). The only way that can happen is * when the channel is interested in a writable condition, and only a * readable state is reported present (see TcpWatchProc() below). In * that case, signal back to the caller the writable state, which is * really an error condition. As an extra check on that assumption, * check for a non-zero value of errno before reporting an artificial * writable state. */ if (errno == 0) { return; } newmask = TCL_WRITABLE; } Tcl_NotifyChannel(statePtr->channel, newmask); } |
︙ | ︙ | |||
968 969 970 971 972 973 974 975 976 977 978 | if (statePtr->acceptProc != NULL) { /* * Make sure we don't mess with server sockets since they will never * be readable or writable at the Tcl level. This keeps Tcl scripts * from interfering with the -accept behavior (bug #3394732). */ return; } if (statePtr->flags & TCP_ASYNC_PENDING) { | > > | | > > | | | | < | | | | | | < | | | > | | | | | | | > | | 992 993 994 995 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 | if (statePtr->acceptProc != NULL) { /* * Make sure we don't mess with server sockets since they will never * be readable or writable at the Tcl level. This keeps Tcl scripts * from interfering with the -accept behavior (bug #3394732). */ return; } if (statePtr->flags & TCP_ASYNC_PENDING) { /* * Async sockets use a FileHandler internally while connecting, so we * need to cache this request until the connection has succeeded. */ statePtr->filehandlers = mask; } else if (mask) { /* * Whether it is a bug or feature or otherwise, it is a fact of life * that on at least some Linux kernels select() fails to report that a * socket file descriptor is writable when the other end of the socket * is closed. This is in contrast to the guarantees Tcl makes that * its channels become writable and fire writable events on an error * conditon. This has caused a leak of file descriptors in a state of * background flushing. See Tcl ticket 1758a0b603. * * As a workaround, when our caller indicates an interest in writable * notifications, we must tell the notifier built around select() that * we are interested in the readable state of the file descriptor as * well, as that is the only reliable means to get notified of error * conditions. Then it is the task of WrapNotify() above to untangle * the meaning of these channel states and report the chan events as * best it can. We save a copy of the mask passed in to assist with * that. */ statePtr->interest = mask; Tcl_CreateFileHandler(statePtr->fds.fd, mask|TCL_READABLE, (Tcl_FileProc *) WrapNotify, statePtr); } else { Tcl_DeleteFileHandler(statePtr->fds.fd); } } /* * ---------------------------------------------------------------------- * * TcpGetHandleProc -- * * Called from Tcl_GetChannelHandle to retrieve OS handles from inside a * TCP socket based channel. * * Results: * Returns TCL_OK with the fd in handlePtr, or TCL_ERROR if there is no * handle for the specified direction. * * Side effects: * None. * * ---------------------------------------------------------------------- */ /* ARGSUSED */ static int TcpGetHandleProc( ClientData instanceData, /* The socket state. */ int direction, /* Not used. */ ClientData *handlePtr) /* Where to store the handle. */ { TcpState *statePtr = instanceData; *handlePtr = INT2PTR(statePtr->fds.fd); return TCL_OK; } /* * ---------------------------------------------------------------------- * * TcpAsyncCallback -- * * Called by the event handler that TcpConnect sets up internally for * [socket -async] to get notified when the asyncronous connection * attempt has succeeded or failed. * * ---------------------------------------------------------------------- */ static void TcpAsyncCallback( ClientData clientData, /* The socket state. */ int mask) /* Events of interest; an OR-ed combination of * TCL_READABLE, TCL_WRITABLE and * TCL_EXCEPTION. */ { TcpConnect(NULL, clientData); } /* * ---------------------------------------------------------------------- * * TcpConnect -- * * This function opens a new socket in client mode. * * Results: * TCL_OK, if the socket was successfully connected or an asynchronous |
︙ | ︙ | |||
1084 1085 1086 1087 1088 1089 1090 | * two nested loops over the local and remote addresses. Once the first * connection attempt is in progress, it sets up itself as a writable * event handler for that socket, and returns. When the callback occurs, * control is transferred to the "reenter" label, right after the initial * return and the loops resume as if they had never been interrupted. * For syncronously connecting sockets, the loops work the usual way. * | | | > | 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 1134 1135 1136 1137 1138 1139 1140 1141 1142 1143 1144 1145 1146 1147 | * two nested loops over the local and remote addresses. Once the first * connection attempt is in progress, it sets up itself as a writable * event handler for that socket, and returns. When the callback occurs, * control is transferred to the "reenter" label, right after the initial * return and the loops resume as if they had never been interrupted. * For syncronously connecting sockets, the loops work the usual way. * * ---------------------------------------------------------------------- */ static int TcpConnect( Tcl_Interp *interp, /* For error reporting; can be NULL. */ TcpState *statePtr) { socklen_t optlen; int async_callback = statePtr->flags & TCP_ASYNC_PENDING; int ret = -1, error = EHOSTUNREACH; int async = statePtr->flags & TCP_ASYNC_CONNECT; if (async_callback) { goto reenter; } for (statePtr->addr = statePtr->addrlist; statePtr->addr != NULL; statePtr->addr = statePtr->addr->ai_next) { for (statePtr->myaddr = statePtr->myaddrlist; statePtr->myaddr != NULL; statePtr->myaddr = statePtr->myaddr->ai_next) { int reuseaddr = 1; /* * No need to try combinations of local and remote addresses of * different families. */ |
︙ | ︙ | |||
1128 1129 1130 1131 1132 1133 1134 | if (statePtr->fds.fd >= 0) { close(statePtr->fds.fd); statePtr->fds.fd = -1; errno = 0; } | | > | > > | | > > | > > | > | 1157 1158 1159 1160 1161 1162 1163 1164 1165 1166 1167 1168 1169 1170 1171 1172 1173 1174 1175 1176 1177 1178 1179 1180 1181 1182 1183 1184 1185 1186 1187 1188 1189 1190 1191 1192 1193 1194 1195 1196 1197 1198 1199 1200 1201 1202 1203 1204 1205 1206 1207 1208 1209 1210 1211 1212 1213 1214 1215 1216 1217 1218 1219 1220 1221 1222 1223 1224 1225 1226 1227 1228 1229 | if (statePtr->fds.fd >= 0) { close(statePtr->fds.fd); statePtr->fds.fd = -1; errno = 0; } statePtr->fds.fd = socket(statePtr->addr->ai_family, SOCK_STREAM, 0); if (statePtr->fds.fd < 0) { continue; } /* * Set the close-on-exec flag so that the socket will not get * inherited by child processes. */ fcntl(statePtr->fds.fd, F_SETFD, FD_CLOEXEC); /* * Set kernel space buffering */ TclSockMinimumBuffers(INT2PTR(statePtr->fds.fd), SOCKET_BUFSIZE); if (async) { ret = TclUnixSetBlockingMode(statePtr->fds.fd, TCL_MODE_NONBLOCKING); if (ret < 0) { continue; } } /* * Must reset the error variable here, before we use it for the * first time in this iteration. */ error = 0; (void) setsockopt(statePtr->fds.fd, SOL_SOCKET, SO_REUSEADDR, (char *) &reuseaddr, sizeof(reuseaddr)); ret = bind(statePtr->fds.fd, statePtr->myaddr->ai_addr, statePtr->myaddr->ai_addrlen); if (ret < 0) { error = errno; continue; } /* * Attempt to connect. The connect may fail at present with an * EINPROGRESS but at a later time it will complete. The caller * will set up a file handler on the socket if she is interested * in being informed when the connect completes. */ ret = connect(statePtr->fds.fd, statePtr->addr->ai_addr, statePtr->addr->ai_addrlen); if (ret < 0) { error = errno; } if (ret < 0 && errno == EINPROGRESS) { Tcl_CreateFileHandler(statePtr->fds.fd, TCL_WRITABLE | TCL_EXCEPTION, TcpAsyncCallback, statePtr); errno = EWOULDBLOCK; SET_BITS(statePtr->flags, TCP_ASYNC_PENDING); return TCL_OK; reenter: CLEAR_BITS(statePtr->flags, TCP_ASYNC_PENDING); Tcl_DeleteFileHandler(statePtr->fds.fd); |
︙ | ︙ | |||
1206 1207 1208 1209 1210 1211 1212 | } if (error == 0) { goto out; } } } | | | 1243 1244 1245 1246 1247 1248 1249 1250 1251 1252 1253 1254 1255 1256 1257 | } if (error == 0) { goto out; } } } out: statePtr->connectError = error; CLEAR_BITS(statePtr->flags, TCP_ASYNC_CONNECT); if (async_callback) { /* * An asynchonous connection has finally succeeded or failed. */ |
︙ | ︙ | |||
1284 1285 1286 1287 1288 1289 1290 | * connect. */ { char service[TCL_INTEGER_SPACE], myservice[TCL_INTEGER_SPACE]; TclFormatInt(service, port); TclFormatInt(myservice, myport); | | | | 1321 1322 1323 1324 1325 1326 1327 1328 1329 1330 1331 1332 1333 1334 1335 1336 1337 1338 1339 | * connect. */ { char service[TCL_INTEGER_SPACE], myservice[TCL_INTEGER_SPACE]; TclFormatInt(service, port); TclFormatInt(myservice, myport); return Tcl_OpenTcpClientEx(interp, service, host, myaddr, myservice, async!=0); } Tcl_Channel Tcl_OpenTcpClientEx( Tcl_Interp *interp, /* For error reporting; can be NULL. */ const char *service, /* Port number to open. */ const char *host, /* Host on which to open port. */ const char *myaddr, /* Client-side address */ const char *myservice, /* Client-side port */ unsigned int flags) /* If nonzero, attempt to do an asynchronous * connect. Otherwise we do a blocking |
︙ | ︙ | |||
1319 1320 1321 1322 1323 1324 1325 1326 1327 1328 1329 1330 1331 1332 1333 1334 1335 1336 1337 1338 1339 1340 1341 1342 1343 | } return NULL; } /* * Allocate a new TcpState for this socket. */ statePtr = ckalloc(sizeof(TcpState)); memset(statePtr, 0, sizeof(TcpState)); statePtr->flags = (flags&1) ? TCP_ASYNC_CONNECT : 0; statePtr->cachedBlocking = TCL_MODE_BLOCKING; statePtr->addrlist = addrlist; statePtr->myaddrlist = myaddrlist; statePtr->fds.fd = -1; /* * Create a new client socket and wrap it in a channel. */ if (TcpConnect(interp, statePtr) != TCL_OK) { TcpCloseProc(statePtr, NULL); return NULL; } sprintf(channelName, SOCK_TEMPLATE, (long) statePtr); | > > | | | 1356 1357 1358 1359 1360 1361 1362 1363 1364 1365 1366 1367 1368 1369 1370 1371 1372 1373 1374 1375 1376 1377 1378 1379 1380 1381 1382 1383 1384 1385 1386 1387 1388 1389 1390 1391 | } return NULL; } /* * Allocate a new TcpState for this socket. */ statePtr = ckalloc(sizeof(TcpState)); memset(statePtr, 0, sizeof(TcpState)); statePtr->flags = (flags&1) ? TCP_ASYNC_CONNECT : 0; statePtr->cachedBlocking = TCL_MODE_BLOCKING; statePtr->addrlist = addrlist; statePtr->myaddrlist = myaddrlist; statePtr->fds.fd = -1; /* * Create a new client socket and wrap it in a channel. */ if (TcpConnect(interp, statePtr) != TCL_OK) { TcpCloseProc(statePtr, NULL); return NULL; } sprintf(channelName, SOCK_TEMPLATE, (long) statePtr); statePtr->channel = Tcl_CreateChannel(&tcpChannelType, channelName, statePtr, TCL_READABLE | TCL_WRITABLE); if (Tcl_SetChannelOption(interp, statePtr->channel, "-translation", "auto crlf") == TCL_ERROR) { Tcl_Close(NULL, statePtr->channel); return NULL; } return statePtr->channel; } |
︙ | ︙ | |||
1367 1368 1369 1370 1371 1372 1373 | *---------------------------------------------------------------------- */ Tcl_Channel Tcl_MakeTcpClientChannel( ClientData sock) /* The socket to wrap up into a channel. */ { | | > | 1406 1407 1408 1409 1410 1411 1412 1413 1414 1415 1416 1417 1418 1419 1420 1421 | *---------------------------------------------------------------------- */ Tcl_Channel Tcl_MakeTcpClientChannel( ClientData sock) /* The socket to wrap up into a channel. */ { return (Tcl_Channel) TclpMakeTcpClientChannelMode(sock, TCL_READABLE | TCL_WRITABLE); } /* *---------------------------------------------------------------------- * * TclpMakeTcpClientChannelMode -- * |
︙ | ︙ | |||
1436 1437 1438 1439 1440 1441 1442 1443 1444 1445 1446 1447 1448 1449 | Tcl_Channel Tcl_OpenTcpServerEx( Tcl_Interp *interp, /* For error reporting - may be NULL. */ const char *service, /* Port number to open. */ const char *myHost, /* Name of local host. */ unsigned int flags, /* Flags. */ Tcl_TcpAcceptProc *acceptProc, /* Callback for accepting connections from new * clients. */ ClientData acceptProcData) /* Data for the callback. */ { int status = 0, sock = -1, optvalue, port, chosenport; struct addrinfo *addrlist = NULL, *addrPtr; /* socket address */ | > | 1476 1477 1478 1479 1480 1481 1482 1483 1484 1485 1486 1487 1488 1489 1490 | Tcl_Channel Tcl_OpenTcpServerEx( Tcl_Interp *interp, /* For error reporting - may be NULL. */ const char *service, /* Port number to open. */ const char *myHost, /* Name of local host. */ unsigned int flags, /* Flags. */ int backlog, /* Length of OS listen backlog queue. */ Tcl_TcpAcceptProc *acceptProc, /* Callback for accepting connections from new * clients. */ ClientData acceptProcData) /* Data for the callback. */ { int status = 0, sock = -1, optvalue, port, chosenport; struct addrinfo *addrlist = NULL, *addrPtr; /* socket address */ |
︙ | ︙ | |||
1467 1468 1469 1470 1471 1472 1473 1474 1475 1476 1477 1478 1479 1480 | * might fail to bind() with EADDRINUSE if a port is free on the first * address family in the list but already used on the other. In this case * we revert everything we've done so far and start from scratch hoping * that next time we'll find a port number that is usable on all address * families. We try this at most MAXRETRY times to avoid an endless loop * if all ports are taken. */ int retry = 0; #define MAXRETRY 10 repeat: if (retry > 0) { if (statePtr != NULL) { TcpCloseProc(statePtr, NULL); | > | 1508 1509 1510 1511 1512 1513 1514 1515 1516 1517 1518 1519 1520 1521 1522 | * might fail to bind() with EADDRINUSE if a port is free on the first * address family in the list but already used on the other. In this case * we revert everything we've done so far and start from scratch hoping * that next time we'll find a port number that is usable on all address * families. We try this at most MAXRETRY times to avoid an endless loop * if all ports are taken. */ int retry = 0; #define MAXRETRY 10 repeat: if (retry > 0) { if (statePtr != NULL) { TcpCloseProc(statePtr, NULL); |
︙ | ︙ | |||
1492 1493 1494 1495 1496 1497 1498 | chosenport = 0; if (TclSockGetPort(interp, service, "tcp", &port) != TCL_OK) { errorMsg = "invalid port number"; goto error; } | | > | 1534 1535 1536 1537 1538 1539 1540 1541 1542 1543 1544 1545 1546 1547 1548 1549 | chosenport = 0; if (TclSockGetPort(interp, service, "tcp", &port) != TCL_OK) { errorMsg = "invalid port number"; goto error; } if (!TclCreateSocketAddress(interp, &addrlist, myHost, service, 1, &errorMsg)) { my_errno = errno; goto error; } for (addrPtr = addrlist; addrPtr != NULL; addrPtr = addrPtr->ai_next) { sock = socket(addrPtr->ai_family, addrPtr->ai_socktype, addrPtr->ai_protocol); |
︙ | ︙ | |||
1528 1529 1530 1531 1532 1533 1534 | /* * Set up to reuse server addresses and/or ports if requested. */ if (flags & TCL_TCPSERVER_REUSEADDR) { optvalue = 1; (void) setsockopt(sock, SOL_SOCKET, SO_REUSEADDR, | | | | > | > | > > | 1571 1572 1573 1574 1575 1576 1577 1578 1579 1580 1581 1582 1583 1584 1585 1586 1587 1588 1589 1590 1591 1592 1593 1594 1595 1596 1597 1598 1599 1600 1601 1602 1603 1604 1605 1606 1607 1608 1609 1610 1611 1612 1613 1614 1615 1616 1617 1618 1619 1620 1621 | /* * Set up to reuse server addresses and/or ports if requested. */ if (flags & TCL_TCPSERVER_REUSEADDR) { optvalue = 1; (void) setsockopt(sock, SOL_SOCKET, SO_REUSEADDR, (char *) &optvalue, sizeof(optvalue)); } if (flags & TCL_TCPSERVER_REUSEPORT) { #ifndef SO_REUSEPORT /* * If the platform doesn't support the SO_REUSEPORT flag we can't * do much beside erroring out. */ errorMsg = "SO_REUSEPORT isn't supported by this platform"; goto error; #else optvalue = 1; (void) setsockopt(sock, SOL_SOCKET, SO_REUSEPORT, (char *) &optvalue, sizeof(optvalue)); #endif } /* * Make sure we use the same port number when opening two server * sockets for IPv4 and IPv6 on a random port. * * As sockaddr_in6 uses the same offset and size for the port member * as sockaddr_in, we can handle both through the IPv4 API. */ if (port == 0 && chosenport != 0) { ((struct sockaddr_in *) addrPtr->ai_addr)->sin_port = htons(chosenport); } #ifdef IPV6_V6ONLY /* * Missing on: Solaris 2.8 */ if (addrPtr->ai_family == AF_INET6) { int v6only = 1; (void) setsockopt(sock, IPPROTO_IPV6, IPV6_V6ONLY, &v6only, sizeof(v6only)); } #endif /* IPV6_V6ONLY */ |
︙ | ︙ | |||
1595 1596 1597 1598 1599 1600 1601 | * addresses. */ if (getsockname(sock, &sockname.sa, &namelen) >= 0) { chosenport = ntohs(sockname.sa4.sin_port); } } | > > > | | 1642 1643 1644 1645 1646 1647 1648 1649 1650 1651 1652 1653 1654 1655 1656 1657 1658 1659 | * addresses. */ if (getsockname(sock, &sockname.sa, &namelen) >= 0) { chosenport = ntohs(sockname.sa4.sin_port); } } if (backlog < 0) { backlog = SOMAXCONN; } status = listen(sock, backlog); if (status < 0) { if (howfar < LISTEN) { howfar = LISTEN; my_errno = errno; } close(sock); sock = -1; |
︙ | ︙ | |||
1712 1713 1714 1715 1716 1717 1718 | newSockState = ckalloc(sizeof(TcpState)); memset(newSockState, 0, sizeof(TcpState)); newSockState->flags = 0; newSockState->fds.fd = newsock; sprintf(channelName, SOCK_TEMPLATE, (long) newSockState); newSockState->channel = Tcl_CreateChannel(&tcpChannelType, channelName, | | | 1762 1763 1764 1765 1766 1767 1768 1769 1770 1771 1772 1773 1774 1775 1776 | newSockState = ckalloc(sizeof(TcpState)); memset(newSockState, 0, sizeof(TcpState)); newSockState->flags = 0; newSockState->fds.fd = newsock; sprintf(channelName, SOCK_TEMPLATE, (long) newSockState); newSockState->channel = Tcl_CreateChannel(&tcpChannelType, channelName, newSockState, TCL_READABLE | TCL_WRITABLE); Tcl_SetChannelOption(NULL, newSockState->channel, "-translation", "auto crlf"); if (fds->statePtr->acceptProc != NULL) { getnameinfo(&addr.sa, len, host, sizeof(host), port, sizeof(port), NI_NUMERICHOST|NI_NUMERICSERV); |
︙ | ︙ |
Changes to unix/tclUnixThrd.c.
︙ | ︙ | |||
640 641 642 643 644 645 646 647 648 649 650 651 652 653 | * Notes: * TclpReaddir is no longer used by the core (see 1095909), but it * appears in the internal stubs table (see #589526). * *---------------------------------------------------------------------- */ Tcl_DirEntry * TclpReaddir( DIR * dir) { return TclOSreaddir(dir); } | > | 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 | * Notes: * TclpReaddir is no longer used by the core (see 1095909), but it * appears in the internal stubs table (see #589526). * *---------------------------------------------------------------------- */ #ifndef TCL_NO_DEPRECATED Tcl_DirEntry * TclpReaddir( DIR * dir) { return TclOSreaddir(dir); } |
︙ | ︙ | |||
662 663 664 665 666 667 668 669 670 671 672 673 674 675 | sprintf(tsdPtr->nabuf, "%u.%u.%u.%u", b[0], b[1], b[2], b[3]); return tsdPtr->nabuf; #else return inet_ntoa(addr); #endif } #ifdef TCL_THREADS /* * Additions by AOL for specialized thread memory allocator. */ #ifdef USE_THREAD_ALLOC | > | 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 | sprintf(tsdPtr->nabuf, "%u.%u.%u.%u", b[0], b[1], b[2], b[3]); return tsdPtr->nabuf; #else return inet_ntoa(addr); #endif } #endif /* TCL_NO_DEPRECATED */ #ifdef TCL_THREADS /* * Additions by AOL for specialized thread memory allocator. */ #ifdef USE_THREAD_ALLOC |
︙ | ︙ | |||
707 708 709 710 711 712 713 | pthread_mutex_destroy(&lockPtr->plock); free(lockPtr); } void TclpInitAllocCache(void) { | < < | 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 | pthread_mutex_destroy(&lockPtr->plock); free(lockPtr); } void TclpInitAllocCache(void) { pthread_key_create(&key, NULL); } void TclpFreeAllocCache( void *ptr) { if (ptr != NULL) { |
︙ | ︙ |
Changes to unix/tclUnixTime.c.
︙ | ︙ | |||
18 19 20 21 22 23 24 25 26 27 28 29 30 31 | /* * TclpGetDate is coded to return a pointer to a 'struct tm'. For thread * safety, this structure must be in thread-specific data. The 'tmKey' * variable is the key to this buffer. */ static Tcl_ThreadDataKey tmKey; typedef struct { struct tm gmtime_buf; struct tm localtime_buf; } ThreadSpecificData; /* | > | 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 | /* * TclpGetDate is coded to return a pointer to a 'struct tm'. For thread * safety, this structure must be in thread-specific data. The 'tmKey' * variable is the key to this buffer. */ #ifndef TCL_NO_DEPRECATED static Tcl_ThreadDataKey tmKey; typedef struct { struct tm gmtime_buf; struct tm localtime_buf; } ThreadSpecificData; /* |
︙ | ︙ | |||
41 42 43 44 45 46 47 48 49 50 51 52 53 54 | /* * Static functions declared in this file. */ static void SetTZIfNecessary(void); static void CleanupMemory(ClientData clientData); static void NativeScaleTime(Tcl_Time *timebuf, ClientData clientData); static void NativeGetTime(Tcl_Time *timebuf, ClientData clientData); /* * TIP #233 (Virtualized Time): Data for the time hooks, if any. | > > | 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 | /* * Static functions declared in this file. */ static void SetTZIfNecessary(void); static void CleanupMemory(ClientData clientData); #endif /* TCL_NO_DEPRECATED */ static void NativeScaleTime(Tcl_Time *timebuf, ClientData clientData); static void NativeGetTime(Tcl_Time *timebuf, ClientData clientData); /* * TIP #233 (Virtualized Time): Data for the time hooks, if any. |
︙ | ︙ | |||
259 260 261 262 263 264 265 266 267 268 269 270 271 272 | * * Side effects: * None. * *---------------------------------------------------------------------- */ struct tm * TclpGetDate( const time_t *time, int useGMT) { if (useGMT) { return TclpGmtime(time); | > | 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 | * * Side effects: * None. * *---------------------------------------------------------------------- */ #ifndef TCL_NO_DEPRECATED struct tm * TclpGetDate( const time_t *time, int useGMT) { if (useGMT) { return TclpGmtime(time); |
︙ | ︙ | |||
348 349 350 351 352 353 354 355 356 357 358 359 360 361 | Tcl_MutexLock(&tmMutex); memcpy(&tsdPtr->localtime_buf, localtime(timePtr), sizeof(struct tm)); Tcl_MutexUnlock(&tmMutex); #endif return &tsdPtr->localtime_buf; } /* *---------------------------------------------------------------------- * * Tcl_SetTimeProc -- * * TIP #233 (Virtualized Time): Registers two handlers for the | > | 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 | Tcl_MutexLock(&tmMutex); memcpy(&tsdPtr->localtime_buf, localtime(timePtr), sizeof(struct tm)); Tcl_MutexUnlock(&tmMutex); #endif return &tsdPtr->localtime_buf; } #endif /* TCL_NO_DEPRECATED */ /* *---------------------------------------------------------------------- * * Tcl_SetTimeProc -- * * TIP #233 (Virtualized Time): Registers two handlers for the |
︙ | ︙ | |||
482 483 484 485 486 487 488 489 490 491 492 493 494 495 | * If 'tzset' has never been called in the current process, or if the * value of the environment variable TZ has changed since the last call * to 'tzset', then 'tzset' is called again. * *---------------------------------------------------------------------- */ static void SetTZIfNecessary(void) { const char *newTZ = getenv("TZ"); Tcl_MutexLock(&tmMutex); if (newTZ == NULL) { | > | 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 | * If 'tzset' has never been called in the current process, or if the * value of the environment variable TZ has changed since the last call * to 'tzset', then 'tzset' is called again. * *---------------------------------------------------------------------- */ #ifndef TCL_NO_DEPRECATED static void SetTZIfNecessary(void) { const char *newTZ = getenv("TZ"); Tcl_MutexLock(&tmMutex); if (newTZ == NULL) { |
︙ | ︙ | |||
527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 | static void CleanupMemory( ClientData ignored) { ckfree(lastTZ); } /* * Local Variables: * mode: c * c-basic-offset: 4 * fill-column: 78 * End: */ | > | 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 | static void CleanupMemory( ClientData ignored) { ckfree(lastTZ); } #endif /* TCL_NO_DEPRECATED */ /* * Local Variables: * mode: c * c-basic-offset: 4 * fill-column: 78 * End: */ |
Changes to win/configure.
︙ | ︙ | |||
4161 4162 4163 4164 4165 4166 4167 | LIBFLAGSUFFIX="\${DBGX}" SHLIB_SUFFIX=.dll EXTRA_CFLAGS="${extra_cflags}" CFLAGS_DEBUG=-g CFLAGS_OPTIMIZE="-O2 -fomit-frame-pointer" | | | 4161 4162 4163 4164 4165 4166 4167 4168 4169 4170 4171 4172 4173 4174 4175 | LIBFLAGSUFFIX="\${DBGX}" SHLIB_SUFFIX=.dll EXTRA_CFLAGS="${extra_cflags}" CFLAGS_DEBUG=-g CFLAGS_OPTIMIZE="-O2 -fomit-frame-pointer" CFLAGS_WARNING="-Wall -Wwrite-strings -Wsign-compare -Wdeclaration-after-statement" LDFLAGS_DEBUG= LDFLAGS_OPTIMIZE= # Specify the CC output file names based on the target name CC_OBJNAME="-o \$@" CC_EXENAME="-o \$@" |
︙ | ︙ |
Deleted win/makefile.bc.
|
| < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < |
Changes to win/nmakehlp.c.
︙ | ︙ | |||
39 40 41 42 43 44 45 | #endif /* protos */ static int CheckForCompilerFeature(const char *option); | | | 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 | #endif /* protos */ static int CheckForCompilerFeature(const char *option); static int CheckForLinkerFeature(const char **options, int count); static int IsIn(const char *string, const char *substring); static int SubstituteFile(const char *substs, const char *filename); static int QualifyPath(const char *path); static const char *GetVersionFromFile(const char *filename, const char *match, int numdots); static DWORD WINAPI ReadFromPipe(LPVOID args); /* globals */ |
︙ | ︙ | |||
98 99 100 101 102 103 104 | "exitcodes: 0 == no, 1 == yes, 2 == error\n", argv[0]); WriteFile(GetStdHandle(STD_ERROR_HANDLE), msg, chars, &dwWritten, NULL); return 2; } return CheckForCompilerFeature(argv[2]); case 'l': | | | | | 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 | "exitcodes: 0 == no, 1 == yes, 2 == error\n", argv[0]); WriteFile(GetStdHandle(STD_ERROR_HANDLE), msg, chars, &dwWritten, NULL); return 2; } return CheckForCompilerFeature(argv[2]); case 'l': if (argc < 3) { chars = snprintf(msg, sizeof(msg) - 1, "usage: %s -l <linker option> ?<mandatory option> ...?\n" "Tests for whether link.exe supports an option\n" "exitcodes: 0 == no, 1 == yes, 2 == error\n", argv[0]); WriteFile(GetStdHandle(STD_ERROR_HANDLE), msg, chars, &dwWritten, NULL); return 2; } return CheckForLinkerFeature(&argv[2], argc-2); case 'f': if (argc == 2) { chars = snprintf(msg, sizeof(msg) - 1, "usage: %s -f <string> <substring>\n" "Find a substring within another\n" "exitcodes: 0 == no, 1 == yes, 2 == error\n", argv[0]); WriteFile(GetStdHandle(STD_ERROR_HANDLE), msg, chars, |
︙ | ︙ | |||
309 310 311 312 313 314 315 | || strstr(Err.buffer, "D9002") != NULL || strstr(Out.buffer, "D2021") != NULL || strstr(Err.buffer, "D2021") != NULL); } static int CheckForLinkerFeature( | | > > | | 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 | || strstr(Err.buffer, "D9002") != NULL || strstr(Out.buffer, "D2021") != NULL || strstr(Err.buffer, "D2021") != NULL); } static int CheckForLinkerFeature( const char **options, int count) { STARTUPINFO si; PROCESS_INFORMATION pi; SECURITY_ATTRIBUTES sa; DWORD threadID; char msg[300]; BOOL ok; HANDLE hProcess, h, pipeThreads[2]; int i; char cmdline[255]; hProcess = GetCurrentProcess(); ZeroMemory(&pi, sizeof(PROCESS_INFORMATION)); ZeroMemory(&si, sizeof(STARTUPINFO)); si.cb = sizeof(STARTUPINFO); si.dwFlags = STARTF_USESTDHANDLES; |
︙ | ︙ | |||
364 365 366 367 368 369 370 | lstrcpy(cmdline, "link.exe -nologo "); /* * Append our option for testing. */ | > | > > > | 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 | lstrcpy(cmdline, "link.exe -nologo "); /* * Append our option for testing. */ for (i = 0; i < count; i++) { lstrcat(cmdline, " \""); lstrcat(cmdline, options[i]); lstrcat(cmdline, "\""); } ok = CreateProcess( NULL, /* Module name. */ cmdline, /* Command line. */ NULL, /* Process handle not inheritable. */ NULL, /* Thread handle not inheritable. */ TRUE, /* yes, inherit handles. */ |
︙ | ︙ | |||
429 430 431 432 433 434 435 | /* * Look for the commandline warning code in the stderr stream. */ return !(strstr(Out.buffer, "LNK1117") != NULL || strstr(Err.buffer, "LNK1117") != NULL || strstr(Out.buffer, "LNK4044") != NULL || | | > > | 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 | /* * Look for the commandline warning code in the stderr stream. */ return !(strstr(Out.buffer, "LNK1117") != NULL || strstr(Err.buffer, "LNK1117") != NULL || strstr(Out.buffer, "LNK4044") != NULL || strstr(Err.buffer, "LNK4044") != NULL || strstr(Out.buffer, "LNK4224") != NULL || strstr(Err.buffer, "LNK4224") != NULL); } static DWORD WINAPI ReadFromPipe( LPVOID args) { pipeinfo *pi = (pipeinfo *) args; |
︙ | ︙ |
Changes to win/rules.vc.
︙ | ︙ | |||
183 184 185 186 187 188 189 190 191 192 | !if [nmakehlp -c -QIA64_Bx] !message *** Compiler has 'B-stepping errata workarounds' COMPILERFLAGS = $(COMPILERFLAGS) -QIA64_Bx !else !message *** Compiler does not have 'B-stepping errata workarounds' !endif !endif !if "$(MACHINE)" == "IX86" ### test for -align:4096, when align:512 will do. | > > > > > | | | 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 | !if [nmakehlp -c -QIA64_Bx] !message *** Compiler has 'B-stepping errata workarounds' COMPILERFLAGS = $(COMPILERFLAGS) -QIA64_Bx !else !message *** Compiler does not have 'B-stepping errata workarounds' !endif !endif # Prevents "LNK1561: entry point must be defined" error compiling from VS-IDE: !ifndef LINKER_TESTFLAGS LINKER_TESTFLAGS = /DLL /NOENTRY /OUT:nmhlp-out.txt !endif !if "$(MACHINE)" == "IX86" ### test for -align:4096, when align:512 will do. !if [nmakehlp -l -opt:nowin98 $(LINKER_TESTFLAGS)] !message *** Linker has 'Win98 alignment problem' ALIGN98_HACK = 1 !else !message *** Linker does not have 'Win98 alignment problem' ALIGN98_HACK = 0 !endif !else ALIGN98_HACK = 0 !endif LINKERFLAGS = !if [nmakehlp -l -ltcg $(LINKER_TESTFLAGS)] LINKERFLAGS =-ltcg !endif #---------------------------------------------------------- # Decode the options requested. #---------------------------------------------------------- |
︙ | ︙ | |||
413 414 415 416 417 418 419 | TCL_NO_DEPRECATED = 1 !else TCL_NO_DEPRECATED = 0 !endif !if [nmakehlp -f $(CHECKS) "fullwarn"] !message *** Doing full warnings check WARNINGS = -W4 | | | | | 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 | TCL_NO_DEPRECATED = 1 !else TCL_NO_DEPRECATED = 0 !endif !if [nmakehlp -f $(CHECKS) "fullwarn"] !message *** Doing full warnings check WARNINGS = -W4 !if [nmakehlp -l -warn:3 $(LINKER_TESTFLAGS)] LINKERFLAGS = $(LINKERFLAGS) -warn:3 !endif !else WARNINGS = -W3 !endif !if [nmakehlp -f $(CHECKS) "64bit"] && [nmakehlp -c -Wp64] !message *** Doing 64bit portability warnings WARNINGS = $(WARNINGS) -Wp64 !endif !endif !if $(PGO) > 1 !if [nmakehlp -l -ltcg:pgoptimize $(LINKER_TESTFLAGS)] LINKERFLAGS = $(LINKERFLAGS:-ltcg=) -ltcg:pgoptimize !else MSG=^ This compiler does not support profile guided optimization. !error $(MSG) !endif !elseif $(PGO) > 0 !if [nmakehlp -l -ltcg:pginstrument $(LINKER_TESTFLAGS)] LINKERFLAGS = $(LINKERFLAGS:-ltcg=) -ltcg:pginstrument !else MSG=^ This compiler does not support profile guided optimization. !error $(MSG) !endif !endif |
︙ | ︙ |
Changes to win/tcl.dsp.
︙ | ︙ | |||
32 33 34 35 36 37 38 | # PROP BASE Use_MFC 0 # PROP BASE Use_Debug_Libraries 0 # PROP BASE Output_Dir "Release" # PROP BASE Intermediate_Dir "Release\tcl_Dynamic" # PROP BASE Cmd_Line "nmake -nologo -f makefile.vc OPTS=none MSVCDIR=IDE" # PROP BASE Rebuild_Opt "-a" | | | | | | | | | | 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 | # PROP BASE Use_MFC 0 # PROP BASE Use_Debug_Libraries 0 # PROP BASE Output_Dir "Release" # PROP BASE Intermediate_Dir "Release\tcl_Dynamic" # PROP BASE Cmd_Line "nmake -nologo -f makefile.vc OPTS=none MSVCDIR=IDE" # PROP BASE Rebuild_Opt "-a" # PROP BASE Target_File "Release\tclsh87.exe" # PROP BASE Bsc_Name "" # PROP BASE Target_Dir "" # PROP Use_MFC 0 # PROP Use_Debug_Libraries 0 # PROP Output_Dir "Release" # PROP Intermediate_Dir "Release\tcl_Dynamic" # PROP Cmd_Line "nmake -nologo -f makefile.vc OPTS=threads MSVCDIR=IDE" # PROP Rebuild_Opt "clean release" # PROP Target_File "Release\tclsh87t.exe" # PROP Bsc_Name "" # PROP Target_Dir "" !ELSEIF "$(CFG)" == "tcl - Win32 Debug" # PROP BASE Use_MFC 0 # PROP BASE Use_Debug_Libraries 1 # PROP BASE Output_Dir "Debug" # PROP BASE Intermediate_Dir "Debug\tcl_Dynamic" # PROP BASE Cmd_Line "nmake -nologo -f makefile.vc OPTS=symbols MSVCDIR=IDE" # PROP BASE Rebuild_Opt "-a" # PROP BASE Target_File "Debug\tclsh87g.exe" # PROP BASE Bsc_Name "" # PROP BASE Target_Dir "" # PROP Use_MFC 0 # PROP Use_Debug_Libraries 1 # PROP Output_Dir "Debug" # PROP Intermediate_Dir "Debug\tcl_Dynamic" # PROP Cmd_Line "nmake -nologo -f makefile.vc OPTS=threads,symbols MSVCDIR=IDE" # PROP Rebuild_Opt "clean release" # PROP Target_File "Debug\tclsh87tg.exe" # PROP Bsc_Name "" # PROP Target_Dir "" !ELSEIF "$(CFG)" == "tcl - Win32 Debug Static" # PROP BASE Use_MFC 0 # PROP BASE Use_Debug_Libraries 1 # PROP BASE Output_Dir "Debug" # PROP BASE Intermediate_Dir "Debug\tcl_Static" # PROP BASE Cmd_Line "nmake -nologo -f makefile.vc OPTS=symbols,static MSVCDIR=IDE" # PROP BASE Rebuild_Opt "-a" # PROP BASE Target_File "Debug\tclsh87sg.exe" # PROP BASE Bsc_Name "" # PROP BASE Target_Dir "" # PROP Use_MFC 0 # PROP Use_Debug_Libraries 1 # PROP Output_Dir "Debug" # PROP Intermediate_Dir "Debug\tcl_Static" # PROP Cmd_Line "nmake -nologo -f makefile.vc OPTS=symbols,static MSVCDIR=IDE" # PROP Rebuild_Opt "-a" # PROP Target_File "Debug\tclsh87sg.exe" # PROP Bsc_Name "" # PROP Target_Dir "" !ELSEIF "$(CFG)" == "tcl - Win32 Release Static" # PROP BASE Use_MFC 0 # PROP BASE Use_Debug_Libraries 0 # PROP BASE Output_Dir "Release" # PROP BASE Intermediate_Dir "Release\tcl_Static" # PROP BASE Cmd_Line "nmake -nologo -f makefile.vc OPTS=static MSVCDIR=IDE" # PROP BASE Rebuild_Opt "-a" # PROP BASE Target_File "Release\tclsh87s.exe" # PROP BASE Bsc_Name "" # PROP BASE Target_Dir "" # PROP Use_MFC 0 # PROP Use_Debug_Libraries 0 # PROP Output_Dir "Release" # PROP Intermediate_Dir "Release\tcl_Static" # PROP Cmd_Line "nmake -nologo -f makefile.vc OPTS=static MSVCDIR=IDE" # PROP Rebuild_Opt "-a" # PROP Target_File "Release\tclsh87s.exe" # PROP Bsc_Name "" # PROP Target_Dir "" !ENDIF # Begin Target |
︙ | ︙ | |||
1422 1423 1424 1425 1426 1427 1428 | SOURCE=.\configure # End Source File # Begin Source File SOURCE=.\configure.ac # End Source File | < < < < | 1422 1423 1424 1425 1426 1427 1428 1429 1430 1431 1432 1433 1434 1435 | SOURCE=.\configure # End Source File # Begin Source File SOURCE=.\configure.ac # End Source File # Begin Source File SOURCE=.\Makefile.in # End Source File # Begin Source File SOURCE=.\makefile.vc |
︙ | ︙ |
Changes to win/tcl.m4.
︙ | ︙ | |||
723 724 725 726 727 728 729 | LIBFLAGSUFFIX="\${DBGX}" SHLIB_SUFFIX=.dll EXTRA_CFLAGS="${extra_cflags}" CFLAGS_DEBUG=-g CFLAGS_OPTIMIZE="-O2 -fomit-frame-pointer" | | | 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 | LIBFLAGSUFFIX="\${DBGX}" SHLIB_SUFFIX=.dll EXTRA_CFLAGS="${extra_cflags}" CFLAGS_DEBUG=-g CFLAGS_OPTIMIZE="-O2 -fomit-frame-pointer" CFLAGS_WARNING="-Wall -Wwrite-strings -Wsign-compare -Wdeclaration-after-statement" LDFLAGS_DEBUG= LDFLAGS_OPTIMIZE= # Specify the CC output file names based on the target name CC_OBJNAME="-o \[$]@" CC_EXENAME="-o \[$]@" |
︙ | ︙ |
Changes to win/tclWinSock.c.
︙ | ︙ | |||
293 294 295 296 297 298 299 | static ProcessGlobalValue hostName = {0, 0, NULL, NULL, InitializeHostName, NULL, NULL}; /* * Address print debug functions */ #if 0 | > > | > > | < | > > > | > > | 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 | static ProcessGlobalValue hostName = {0, 0, NULL, NULL, InitializeHostName, NULL, NULL}; /* * Address print debug functions */ #if 0 void printaddrinfo( struct addrinfo *ai, char *prefix) { char host[NI_MAXHOST], port[NI_MAXSERV]; getnameinfo(ai->ai_addr, ai->ai_addrlen, host, sizeof(host), port, sizeof(port), NI_NUMERICHOST|NI_NUMERICSERV); } void printaddrinfolist( struct addrinfo *addrlist, char *prefix) { struct addrinfo *ai; for (ai = addrlist; ai != NULL; ai = ai->ai_next) { printaddrinfo(ai, prefix); } } #endif /* |
︙ | ︙ | |||
520 521 522 523 524 525 526 | int mode) /* The mode to set. Can be one of * TCL_MODE_BLOCKING or * TCL_MODE_NONBLOCKING. */ { TcpState *statePtr = instanceData; if (mode == TCL_MODE_NONBLOCKING) { | | | | | | | | | | | < | | | | | | | | < | | | 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 | int mode) /* The mode to set. Can be one of * TCL_MODE_BLOCKING or * TCL_MODE_NONBLOCKING. */ { TcpState *statePtr = instanceData; if (mode == TCL_MODE_NONBLOCKING) { SET_BITS(statePtr->flags, TCP_NONBLOCKING); } else { CLEAR_BITS(statePtr->flags, TCP_NONBLOCKING); } return 0; } /* *---------------------------------------------------------------------- * * WaitForConnect -- * * Check the state of an async connect process. If a connection attempt * terminated, process it, which may finalize it or may start the next * attempt. If a connect error occures, it is saved in * statePtr->connectError to be reported by 'fconfigure -error'. * * There are two modes of operation, defined by errorCodePtr: * * non-NULL: Called by explicite read/write command. Block if socket * is blocking. * May return two error codes: * * EWOULDBLOCK: if connect is still in progress * * ENOTCONN: if connect failed. This would be the error message * of a rect or sendto syscall so this is emulated here. * * Null: Called by a backround operation. Do not block and don't * return any error code. * * Results: * 0 if the connection has completed, -1 if still in progress or there is * an error. * * Side effects: * Processes socket events off the system queue. May process * asynchroneous connect. * *---------------------------------------------------------------------- */ static int WaitForConnect( TcpState *statePtr, /* State of the socket. */ int *errorCodePtr) /* Where to store errors? A passed * null-pointer activates background mode. */ { int result; int oldMode; ThreadSpecificData *tsdPtr; /* * Check if an async connect failed already and error reporting is * demanded, return the error ENOTCONN. */ if (errorCodePtr != NULL && (statePtr->flags & TCP_ASYNC_FAILED)) { *errorCodePtr = ENOTCONN; return -1; } |
︙ | ︙ | |||
599 600 601 602 603 604 605 606 | oldMode = Tcl_SetServiceMode(TCL_SERVICE_NONE); /* * Loop in the blocking case until the connect signal is present */ while (1) { | > > > < > | > > | | > > | | | > | | > | > > | | > > | > > | | > | | | > | > > | | | | 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 | oldMode = Tcl_SetServiceMode(TCL_SERVICE_NONE); /* * Loop in the blocking case until the connect signal is present */ while (1) { /* * Get the statePtr lock. */ tsdPtr = TclThreadDataKeyGet(&dataKey); WaitForSingleObject(tsdPtr->socketListLock, INFINITE); /* * Check for connect event. */ if (statePtr->readyEvents & FD_CONNECT) { /* * Consume the connect event. */ CLEAR_BITS(statePtr->readyEvents, FD_CONNECT); /* * For blocking sockets and foreground processing, disable async * connect as we continue now synchoneously. */ if (errorCodePtr != NULL && !(statePtr->flags & TCP_NONBLOCKING)) { CLEAR_BITS(statePtr->flags, TCP_ASYNC_CONNECT); } /* * Free list lock. */ SetEvent(tsdPtr->socketListLock); /* * Continue connect. If switched to synchroneous connect, the * connect is terminated. */ result = TcpConnect(NULL, statePtr); /* * Restore event service mode. */ (void) Tcl_SetServiceMode(oldMode); /* * Check for Succesfull connect or async connect restart */ if (result == TCL_OK) { /* * Check for async connect restart (not possible for * foreground blocking operation) */ if (statePtr->flags & TCP_ASYNC_PENDING) { if (errorCodePtr != NULL) { *errorCodePtr = EWOULDBLOCK; } return -1; } return 0; } /* * Connect finally failed. For foreground operation return * ENOTCONN. */ if (errorCodePtr != NULL) { *errorCodePtr = ENOTCONN; } return -1; } /* * Free list lock. */ SetEvent(tsdPtr->socketListLock); /* * Background operation returns with no action as there was no connect * event */ if (errorCodePtr == NULL) { return -1; } /* * A non blocking socket waiting for an asyncronous connect returns * directly the error EWOULDBLOCK. */ if (statePtr->flags & TCP_NONBLOCKING) { *errorCodePtr = EWOULDBLOCK; return -1; } |
︙ | ︙ | |||
766 767 768 769 770 771 772 | * read. We have to simulate blocking behavior here since we are always * using non-blocking sockets. */ while (1) { SendMessage(tsdPtr->hwnd, SOCKET_SELECT, (WPARAM) UNSELECT, (LPARAM) statePtr); | > | > > > | | | | | 791 792 793 794 795 796 797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 812 813 814 815 816 817 818 819 820 821 822 823 824 825 826 827 828 829 830 831 832 833 834 835 836 837 838 839 840 841 842 843 | * read. We have to simulate blocking behavior here since we are always * using non-blocking sockets. */ while (1) { SendMessage(tsdPtr->hwnd, SOCKET_SELECT, (WPARAM) UNSELECT, (LPARAM) statePtr); /* * Single fd operation: this proc is only called for a connected * socket. */ bytesRead = recv(statePtr->sockets->fd, buf, bufSize, 0); CLEAR_BITS(statePtr->readyEvents, FD_READ); /* * Check for end-of-file condition or successful read. */ if (bytesRead == 0) { SET_BITS(statePtr->flags, SOCKET_EOF); } if (bytesRead != SOCKET_ERROR) { break; } /* * If an error occurs after the FD_CLOSE has arrived, then ignore the * error and report an EOF. */ if (statePtr->readyEvents & FD_CLOSE) { SET_BITS(statePtr->flags, SOCKET_EOF); bytesRead = 0; break; } error = WSAGetLastError(); /* * If an RST comes, then ignore the error and report an EOF just like * on unix. */ if (error == WSAECONNRESET) { SET_BITS(statePtr->flags, SOCKET_EOF); bytesRead = 0; break; } /* * Check for error condition or underflow in non-blocking case. */ |
︙ | ︙ | |||
888 889 890 891 892 893 894 | return -1; } while (1) { SendMessage(tsdPtr->hwnd, SOCKET_SELECT, (WPARAM) UNSELECT, (LPARAM) statePtr); | > | > > > | 917 918 919 920 921 922 923 924 925 926 927 928 929 930 931 932 933 934 935 | return -1; } while (1) { SendMessage(tsdPtr->hwnd, SOCKET_SELECT, (WPARAM) UNSELECT, (LPARAM) statePtr); /* * Single fd operation: this proc is only called for a connected * socket. */ written = send(statePtr->sockets->fd, buf, toWrite, 0); if (written != SOCKET_ERROR) { /* * Since Windows won't generate a new write event until we hit an * overflow condition, we need to force the event loop to poll * until the condition changes. */ |
︙ | ︙ | |||
913 914 915 916 917 918 919 | * need to clear the FD_WRITE flag so we can detect the next writable * event. Note that Windows only sends a new writable event after a * send fails with WSAEWOULDBLOCK. */ error = WSAGetLastError(); if (error == WSAEWOULDBLOCK) { | | | 946 947 948 949 950 951 952 953 954 955 956 957 958 959 960 | * need to clear the FD_WRITE flag so we can detect the next writable * event. Note that Windows only sends a new writable event after a * send fails with WSAEWOULDBLOCK. */ error = WSAGetLastError(); if (error == WSAEWOULDBLOCK) { CLEAR_BITS(statePtr->readyEvents, FD_WRITE); if (statePtr->flags & TCP_NONBLOCKING) { *errorCodePtr = EWOULDBLOCK; written = -1; break; } } else { TclWinConvertError(error); |
︙ | ︙ | |||
937 938 939 940 941 942 943 | if (!WaitForSocketEvent(statePtr, FD_WRITE|FD_CLOSE, errorCodePtr)) { written = -1; break; } } | | > | 970 971 972 973 974 975 976 977 978 979 980 981 982 983 984 985 | if (!WaitForSocketEvent(statePtr, FD_WRITE|FD_CLOSE, errorCodePtr)) { written = -1; break; } } SendMessage(tsdPtr->hwnd, SOCKET_SELECT, (WPARAM)SELECT, (LPARAM)statePtr); return written; } /* *---------------------------------------------------------------------- * |
︙ | ︙ | |||
984 985 986 987 988 989 990 | if (SocketsEnabled()) { /* * Clean up the OS socket handle. The default Windows setting for a * socket is SO_DONTLINGER, which does a graceful shutdown in the * background. */ | | < > > > | | > > > | > > | 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 | if (SocketsEnabled()) { /* * Clean up the OS socket handle. The default Windows setting for a * socket is SO_DONTLINGER, which does a graceful shutdown in the * background. */ while (statePtr->sockets != NULL) { TcpFdList *thisfd = statePtr->sockets; statePtr->sockets = thisfd->next; if (closesocket(thisfd->fd) == SOCKET_ERROR) { TclWinConvertError((DWORD) WSAGetLastError()); errorCode = Tcl_GetErrno(); } ckfree(thisfd); } } if (statePtr->addrlist != NULL) { freeaddrinfo(statePtr->addrlist); } if (statePtr->myaddrlist != NULL) { freeaddrinfo(statePtr->myaddrlist); } /* * Clear an eventual tsd info list pointer. * * This may be called, if an async socket connect fails or is closed * between connect and thread action callback. */ if (tsdPtr->pendingTcpState != NULL && tsdPtr->pendingTcpState == statePtr) { /* * Get infoPtr lock, because this concerns the notifier thread. */ WaitForSingleObject(tsdPtr->socketListLock, INFINITE); tsdPtr->pendingTcpState = NULL; /* * Free list lock. */ SetEvent(tsdPtr->socketListLock); } /* * TIP #218. Removed the code removing the structure from the global * socket list. This is now done by the thread action callbacks, and only * there. This happens before this code is called. We can free without |
︙ | ︙ | |||
1077 1078 1079 1080 1081 1082 1083 | if (interp) { Tcl_SetObjResult(interp, Tcl_NewStringObj( "socket close2proc called bidirectionally", -1)); } return TCL_ERROR; } | > | | > > | 1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 1134 1135 1136 | if (interp) { Tcl_SetObjResult(interp, Tcl_NewStringObj( "socket close2proc called bidirectionally", -1)); } return TCL_ERROR; } /* * Single fd operation: Tcl_OpenTcpServer() does not set TCL_READABLE or * TCL_WRITABLE so this should never be called for a server socket. */ if (shutdown(statePtr->sockets->fd, sd) == SOCKET_ERROR) { TclWinConvertError((DWORD) WSAGetLastError()); errorCode = Tcl_GetErrno(); } return errorCode; } |
︙ | ︙ | |||
1130 1131 1132 1133 1134 1135 1136 | Tcl_SetObjResult(interp, Tcl_NewStringObj( "winsock is not initialized", -1)); } return TCL_ERROR; } #ifdef TCL_FEATURE_KEEPALIVE_NAGLE | | | 1174 1175 1176 1177 1178 1179 1180 1181 1182 1183 1184 1185 1186 1187 1188 | Tcl_SetObjResult(interp, Tcl_NewStringObj( "winsock is not initialized", -1)); } return TCL_ERROR; } #ifdef TCL_FEATURE_KEEPALIVE_NAGLE #error "TCL_FEATURE_KEEPALIVE_NAGLE not reviewed for whether to treat statePtr->sockets as single fd or list" sock = statePtr->sockets->fd; if (!strcasecmp(optionName, "-keepalive")) { BOOL val = FALSE; int boolVar, rtn; if (Tcl_GetBoolean(interp, value, &boolVar) != TCL_OK) { |
︙ | ︙ | |||
1239 1240 1241 1242 1243 1244 1245 | "winsock is not initialized", -1)); } return TCL_ERROR; } /* * Go one step in async connect | > | > > < | | < | | < | | | < < | | > > | | > > | > | > < > | | > | > > | 1283 1284 1285 1286 1287 1288 1289 1290 1291 1292 1293 1294 1295 1296 1297 1298 1299 1300 1301 1302 1303 1304 1305 1306 1307 1308 1309 1310 1311 1312 1313 1314 1315 1316 1317 1318 1319 1320 1321 1322 1323 1324 1325 1326 1327 1328 1329 1330 1331 1332 1333 1334 1335 1336 1337 1338 1339 1340 1341 1342 1343 1344 1345 1346 1347 1348 1349 1350 1351 1352 1353 1354 1355 1356 1357 1358 1359 1360 1361 1362 1363 1364 1365 1366 1367 1368 1369 1370 1371 1372 1373 1374 1375 1376 1377 1378 1379 1380 1381 1382 1383 1384 1385 1386 1387 1388 1389 1390 1391 1392 1393 1394 1395 1396 1397 1398 1399 1400 1401 1402 | "winsock is not initialized", -1)); } return TCL_ERROR; } /* * Go one step in async connect * * If any error is thrown save it as backround error to report eventually * below. */ WaitForConnect(statePtr, NULL); sock = statePtr->sockets->fd; if (optionName != NULL) { len = strlen(optionName); } if ((len > 1) && (optionName[1] == 'e') && (strncmp(optionName, "-error", len) == 0)) { /* * Do not return any errors if async connect is running. */ if (!(statePtr->flags & TCP_ASYNC_PENDING)) { if (statePtr->flags & TCP_ASYNC_FAILED) { /* * In case of a failed async connect, eventually report the * connect error only once. Do not report the system error, * as this comes again and again. */ if (statePtr->connectError != 0) { Tcl_DStringAppend(dsPtr, Tcl_ErrnoMsg(statePtr->connectError), -1); statePtr->connectError = 0; } } else { /* * Report an eventual last error of the socket system. */ int optlen; int ret; DWORD err; /* * Populate the err variable with a POSIX error */ optlen = sizeof(int); ret = getsockopt(sock, SOL_SOCKET, SO_ERROR, (char *)&err, &optlen); /* * The error was not returned directly but should be taken * from WSA. */ if (ret == SOCKET_ERROR) { err = WSAGetLastError(); } /* * Return error message. */ if (err) { TclWinConvertError(err); Tcl_DStringAppend(dsPtr, Tcl_ErrnoMsg(Tcl_GetErrno()), -1); } } } return TCL_OK; } if ((len > 1) && (optionName[1] == 'c') && (strncmp(optionName, "-connecting", len) == 0)) { Tcl_DStringAppend(dsPtr, (statePtr->flags & TCP_ASYNC_PENDING) ? "1" : "0", -1); return TCL_OK; } if (interp != NULL && Tcl_GetVar2(interp, SUPPRESS_RDNS_VAR, NULL, 0) != NULL) { reverseDNS = NI_NUMERICHOST; } if ((len == 0) || ((len > 1) && (optionName[1] == 'p') && (strncmp(optionName, "-peername", len) == 0))) { address peername; socklen_t size = sizeof(peername); if (statePtr->flags & TCP_ASYNC_PENDING) { /* * In async connect output an empty string */ if (len == 0) { Tcl_DStringAppendElement(dsPtr, "-peername"); Tcl_DStringAppendElement(dsPtr, ""); } else { return TCL_OK; } } else if (getpeername(sock, (LPSOCKADDR) &(peername.sa), &size) == 0) { /* * Peername fetch succeeded - output list */ if (len == 0) { Tcl_DStringAppendElement(dsPtr, "-peername"); Tcl_DStringStartSublist(dsPtr); } getnameinfo(&(peername.sa), size, host, sizeof(host), NULL, 0, NI_NUMERICHOST); |
︙ | ︙ | |||
1386 1387 1388 1389 1390 1391 1392 | socklen_t size; int found = 0; if (len == 0) { Tcl_DStringAppendElement(dsPtr, "-sockname"); Tcl_DStringStartSublist(dsPtr); } | | > | | | > > | 1437 1438 1439 1440 1441 1442 1443 1444 1445 1446 1447 1448 1449 1450 1451 1452 1453 1454 1455 1456 1457 1458 1459 1460 1461 1462 1463 1464 1465 1466 1467 1468 1469 1470 1471 1472 1473 1474 | socklen_t size; int found = 0; if (len == 0) { Tcl_DStringAppendElement(dsPtr, "-sockname"); Tcl_DStringStartSublist(dsPtr); } if (statePtr->flags & TCP_ASYNC_PENDING) { /* * In async connect output an empty string */ found = 1; } else { for (fds = statePtr->sockets; fds != NULL; fds = fds->next) { sock = fds->fd; size = sizeof(sockname); if (getsockname(sock, &(sockname.sa), &size) >= 0) { int flags = reverseDNS; found = 1; getnameinfo(&sockname.sa, size, host, sizeof(host), NULL, 0, NI_NUMERICHOST); Tcl_DStringAppendElement(dsPtr, host); /* * We don't want to resolve INADDR_ANY and sin6addr_any; * they can sometimes cause problems (and never have a * name). */ flags |= NI_NUMERICSERV; if (sockname.sa.sa_family == AF_INET) { if (sockname.sa4.sin_addr.s_addr == INADDR_ANY) { flags |= NI_NUMERICHOST; } } else if (sockname.sa.sa_family == AF_INET6) { if ((IN6_ARE_ADDR_EQUAL(&sockname.sa6.sin6_addr, |
︙ | ︙ | |||
1490 1491 1492 1493 1494 1495 1496 | #endif /*TCL_FEATURE_KEEPALIVE_NAGLE*/ if (len > 0) { #ifdef TCL_FEATURE_KEEPALIVE_NAGLE return Tcl_BadChannelOption(interp, optionName, "connecting peername sockname keepalive nagle"); #else | | > | 1544 1545 1546 1547 1548 1549 1550 1551 1552 1553 1554 1555 1556 1557 1558 1559 | #endif /*TCL_FEATURE_KEEPALIVE_NAGLE*/ if (len > 0) { #ifdef TCL_FEATURE_KEEPALIVE_NAGLE return Tcl_BadChannelOption(interp, optionName, "connecting peername sockname keepalive nagle"); #else return Tcl_BadChannelOption(interp, optionName, "connecting peername sockname"); #endif /*TCL_FEATURE_KEEPALIVE_NAGLE*/ } return TCL_OK; } /* |
︙ | ︙ | |||
1532 1533 1534 1535 1536 1537 1538 | * Update the watch events mask. Only if the socket is not a server * socket. [Bug 557878] */ if (!statePtr->acceptProc) { statePtr->watchEvents = 0; if (mask & TCL_READABLE) { | | | | 1587 1588 1589 1590 1591 1592 1593 1594 1595 1596 1597 1598 1599 1600 1601 1602 1603 1604 | * Update the watch events mask. Only if the socket is not a server * socket. [Bug 557878] */ if (!statePtr->acceptProc) { statePtr->watchEvents = 0; if (mask & TCL_READABLE) { SET_BITS(statePtr->watchEvents, FD_READ | FD_CLOSE); } if (mask & TCL_WRITABLE) { SET_BITS(statePtr->watchEvents, FD_WRITE | FD_CLOSE); } /* * If there are any conditions already set, then tell the notifier to * poll rather than block. */ |
︙ | ︙ | |||
1626 1627 1628 1629 1630 1631 1632 | static int TcpConnect( Tcl_Interp *interp, /* For error reporting; can be NULL. */ TcpState *statePtr) { DWORD error; | < > | > | < | | | | < | > | < > > | > > > | > > | > > > | > > | > | > | > > > > | > > | | > > | | > | | > > | > > < | < > | > | > > | > > > > | > > > > | > > | > > | > > | | > | | < < > > < | < > > > > | > > > > | > > | > > | > > | > > | > > > > | > > > > | | 1681 1682 1683 1684 1685 1686 1687 1688 1689 1690 1691 1692 1693 1694 1695 1696 1697 1698 1699 1700 1701 1702 1703 1704 1705 1706 1707 1708 1709 1710 1711 1712 1713 1714 1715 1716 1717 1718 1719 1720 1721 1722 1723 1724 1725 1726 1727 1728 1729 1730 1731 1732 1733 1734 1735 1736 1737 1738 1739 1740 1741 1742 1743 1744 1745 1746 1747 1748 1749 1750 1751 1752 1753 1754 1755 1756 1757 1758 1759 1760 1761 1762 1763 1764 1765 1766 1767 1768 1769 1770 1771 1772 1773 1774 1775 1776 1777 1778 1779 1780 1781 1782 1783 1784 1785 1786 1787 1788 1789 1790 1791 1792 1793 1794 1795 1796 1797 1798 1799 1800 1801 1802 1803 1804 1805 1806 1807 1808 1809 1810 1811 1812 1813 1814 1815 1816 1817 1818 1819 1820 1821 1822 1823 1824 1825 1826 1827 1828 1829 1830 1831 1832 1833 1834 1835 1836 1837 1838 1839 1840 1841 1842 1843 1844 1845 1846 1847 1848 1849 1850 1851 1852 1853 1854 1855 1856 1857 1858 1859 1860 1861 1862 1863 1864 1865 1866 1867 1868 1869 1870 1871 1872 1873 1874 1875 1876 1877 1878 1879 1880 1881 1882 1883 1884 1885 1886 1887 1888 1889 1890 1891 1892 1893 1894 1895 1896 1897 1898 1899 1900 1901 1902 1903 1904 1905 1906 1907 1908 1909 1910 1911 1912 1913 1914 1915 1916 1917 1918 1919 1920 1921 1922 1923 1924 1925 1926 1927 1928 1929 1930 1931 1932 1933 1934 1935 1936 1937 1938 1939 1940 1941 1942 1943 1944 1945 1946 1947 1948 1949 1950 1951 1952 1953 1954 1955 1956 1957 1958 1959 1960 1961 1962 1963 1964 1965 1966 1967 1968 1969 1970 1971 1972 1973 1974 1975 1976 1977 1978 1979 1980 1981 1982 1983 1984 1985 1986 1987 1988 1989 1990 1991 1992 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 | static int TcpConnect( Tcl_Interp *interp, /* For error reporting; can be NULL. */ TcpState *statePtr) { DWORD error; int async_connect = statePtr->flags & TCP_ASYNC_CONNECT; /* We are started with async connect and the * connect notification was not yet * received. */ int async_callback = statePtr->flags & TCP_ASYNC_PENDING; /* We were called by the event procedure and * continue our loop. */ ThreadSpecificData *tsdPtr = TclThreadDataKeyGet(&dataKey); if (async_callback) { goto reenter; } for (statePtr->addr = statePtr->addrlist; statePtr->addr != NULL; statePtr->addr = statePtr->addr->ai_next) { for (statePtr->myaddr = statePtr->myaddrlist; statePtr->myaddr != NULL; statePtr->myaddr = statePtr->myaddr->ai_next) { /* * No need to try combinations of local and remote addresses * of different families. */ if (statePtr->myaddr->ai_family != statePtr->addr->ai_family) { continue; } /* * Close the socket if it is still open from the last unsuccessful * iteration. */ if (statePtr->sockets->fd != INVALID_SOCKET) { closesocket(statePtr->sockets->fd); } /* * Get statePtr lock. */ WaitForSingleObject(tsdPtr->socketListLock, INFINITE); /* * Reset last error from last try */ statePtr->notifierConnectError = 0; Tcl_SetErrno(0); statePtr->sockets->fd = socket(statePtr->myaddr->ai_family, SOCK_STREAM, 0); /* * Free list lock. */ SetEvent(tsdPtr->socketListLock); /* * Continue on socket creation error. */ if (statePtr->sockets->fd == INVALID_SOCKET) { TclWinConvertError((DWORD) WSAGetLastError()); continue; } /* * Win-NT has a misfeature that sockets are inherited in child * processes by default. Turn off the inherit bit. */ SetHandleInformation((HANDLE) statePtr->sockets->fd, HANDLE_FLAG_INHERIT, 0); /* * Set kernel space buffering */ TclSockMinimumBuffers((void *) statePtr->sockets->fd, TCP_BUFFER_SIZE); /* * Try to bind to a local port. */ if (bind(statePtr->sockets->fd, statePtr->myaddr->ai_addr, statePtr->myaddr->ai_addrlen) == SOCKET_ERROR) { TclWinConvertError((DWORD) WSAGetLastError()); continue; } /* * For asyncroneous connect set the socket in nonblocking mode * and activate connect notification */ if (async_connect) { TcpState *statePtr2; int in_socket_list = 0; /* * Get statePtr lock. */ WaitForSingleObject(tsdPtr->socketListLock, INFINITE); /* * Bugfig for 336441ed59 to not ignore notifications until the * infoPtr is in the list. * Check if my statePtr is already in the tsdPtr->socketList * It is set after this call by TcpThreadActionProc and is set * on a second round. * * If not, we buffer my statePtr in the tsd memory so it is * not lost by the event procedure */ for (statePtr2 = tsdPtr->socketList; statePtr2 != NULL; statePtr2 = statePtr2->nextPtr) { if (statePtr2 == statePtr) { in_socket_list = 1; break; } } if (!in_socket_list) { tsdPtr->pendingTcpState = statePtr; } /* * Set connect mask to connect events * * This is activated by a SOCKET_SELECT message to the * notifier thread. */ SET_BITS(statePtr->selectEvents, FD_CONNECT); /* * Free list lock. */ SetEvent(tsdPtr->socketListLock); /* * Activate accept notification. */ SendMessage(tsdPtr->hwnd, SOCKET_SELECT, (WPARAM) SELECT, (LPARAM) statePtr); } /* * Attempt to connect to the remote socket. */ connect(statePtr->sockets->fd, statePtr->addr->ai_addr, statePtr->addr->ai_addrlen); error = WSAGetLastError(); TclWinConvertError(error); if (async_connect && error == WSAEWOULDBLOCK) { /* * Asynchroneous connect * * Remember that we jump back behind this next round */ SET_BITS(statePtr->flags, TCP_ASYNC_PENDING); return TCL_OK; reenter: /* * Re-entry point for async connect after connect event or * blocking operation * * Clear the reenter flag */ CLEAR_BITS(statePtr->flags, TCP_ASYNC_PENDING); /* * Get statePtr lock. */ WaitForSingleObject(tsdPtr->socketListLock, INFINITE); /* * Get signaled connect error. */ TclWinConvertError((DWORD) statePtr->notifierConnectError); /* * Clear eventual connect flag. */ CLEAR_BITS(statePtr->selectEvents, FD_CONNECT); /* * Free list lock. */ SetEvent(tsdPtr->socketListLock); } /* * Clear the tsd socket list pointer if we did not wait for the * FD_CONNECT asynchronously. */ tsdPtr->pendingTcpState = NULL; if (Tcl_GetErrno() == 0) { goto out; } } } out: /* * Socket connected or connection failed */ /* * Async connect terminated */ CLEAR_BITS(statePtr->flags, TCP_ASYNC_CONNECT); if (Tcl_GetErrno() == 0) { /* * Succesfully connected * * Set up the select mask for read/write events. */ statePtr->selectEvents = FD_READ | FD_WRITE | FD_CLOSE; /* * Register for interest in events in the select mask. Note that this * automatically places the socket into non-blocking mode. */ SendMessage(tsdPtr->hwnd, SOCKET_SELECT, (WPARAM) SELECT, (LPARAM) statePtr); } else { /* * Connect failed * * For async connect schedule a writable event to report the fail. */ if (async_callback) { /* * Set up the select mask for read/write events. */ statePtr->selectEvents = FD_WRITE|FD_READ; /* * Get statePtr lock. */ WaitForSingleObject(tsdPtr->socketListLock, INFINITE); /* * Signal ready readable and writable events. */ SET_BITS(statePtr->readyEvents, FD_WRITE | FD_READ); /* * Flag error to event routine. */ SET_BITS(statePtr->flags, TCP_ASYNC_FAILED); /* * Save connect error to be reported by 'fconfigure -error'. */ statePtr->connectError = Tcl_GetErrno(); /* * Free list lock. */ SetEvent(tsdPtr->socketListLock); } /* * Error message on syncroneous connect */ if (interp != NULL) { Tcl_SetObjResult(interp, Tcl_ObjPrintf( "couldn't open socket: %s", Tcl_PosixError(interp))); } return TCL_ERROR; } return TCL_OK; } /* *---------------------------------------------------------------------- * * Tcl_OpenTcpClient, Tcl_OpenTcpClientEx -- * * Opens a TCP client socket and creates a channel around it. * * Results: * The channel or NULL if failed. An error message is returned in the * interpreter on failure. * |
︙ | ︙ | |||
1899 1900 1901 1902 1903 1904 1905 | * connect. */ { char service[TCL_INTEGER_SPACE], myservice[TCL_INTEGER_SPACE]; TclFormatInt(service, port); TclFormatInt(myservice, myport); | | | | 2019 2020 2021 2022 2023 2024 2025 2026 2027 2028 2029 2030 2031 2032 2033 2034 2035 2036 2037 | * connect. */ { char service[TCL_INTEGER_SPACE], myservice[TCL_INTEGER_SPACE]; TclFormatInt(service, port); TclFormatInt(myservice, myport); return Tcl_OpenTcpClientEx(interp, service, host, myaddr, myservice, async!=0); } Tcl_Channel Tcl_OpenTcpClientEx( Tcl_Interp *interp, /* For error reporting; can be NULL. */ const char *service, /* Port number to open. */ const char *host, /* Host on which to open port. */ const char *myaddr, /* Client-side address */ const char *myservice, /* Client-side port */ unsigned int flags) /* If nonzero, attempt to do an asynchronous * connect. Otherwise we do a blocking |
︙ | ︙ | |||
1953 1954 1955 1956 1957 1958 1959 | return NULL; } statePtr = NewSocketInfo(INVALID_SOCKET); statePtr->addrlist = addrlist; statePtr->myaddrlist = myaddrlist; if (flags&1) { | | | 2073 2074 2075 2076 2077 2078 2079 2080 2081 2082 2083 2084 2085 2086 2087 | return NULL; } statePtr = NewSocketInfo(INVALID_SOCKET); statePtr->addrlist = addrlist; statePtr->myaddrlist = myaddrlist; if (flags&1) { SET_BITS(statePtr->flags, TCP_ASYNC_CONNECT); } /* * Create a new client socket and wrap it in a channel. */ if (TcpConnect(interp, statePtr) != TCL_OK) { TcpCloseProc(statePtr, NULL); |
︙ | ︙ | |||
2023 2024 2025 2026 2027 2028 2029 | statePtr = NewSocketInfo((SOCKET) sock); /* * Start watching for read/write events on the socket. */ statePtr->selectEvents = FD_READ | FD_CLOSE | FD_WRITE; | | > | 2143 2144 2145 2146 2147 2148 2149 2150 2151 2152 2153 2154 2155 2156 2157 2158 | statePtr = NewSocketInfo((SOCKET) sock); /* * Start watching for read/write events on the socket. */ statePtr->selectEvents = FD_READ | FD_CLOSE | FD_WRITE; SendMessage(tsdPtr->hwnd, SOCKET_SELECT, (WPARAM)SELECT, (LPARAM)statePtr); sprintf(channelName, SOCK_TEMPLATE, statePtr); statePtr->channel = Tcl_CreateChannel(&tcpChannelType, channelName, statePtr, (TCL_READABLE | TCL_WRITABLE)); Tcl_SetChannelOption(NULL, statePtr->channel, "-translation", "auto crlf"); return statePtr->channel; } |
︙ | ︙ | |||
2055 2056 2057 2058 2059 2060 2061 2062 2063 2064 2065 2066 2067 2068 | Tcl_Channel Tcl_OpenTcpServerEx( Tcl_Interp *interp, /* For error reporting - may be NULL. */ const char *service, /* Port number to open. */ const char *myHost, /* Name of local host. */ unsigned int flags, /* Flags. */ Tcl_TcpAcceptProc *acceptProc, /* Callback for accepting connections from new * clients. */ ClientData acceptProcData) /* Data for the callback. */ { SOCKET sock = INVALID_SOCKET; unsigned short chosenport = 0; | > > | 2176 2177 2178 2179 2180 2181 2182 2183 2184 2185 2186 2187 2188 2189 2190 2191 | Tcl_Channel Tcl_OpenTcpServerEx( Tcl_Interp *interp, /* For error reporting - may be NULL. */ const char *service, /* Port number to open. */ const char *myHost, /* Name of local host. */ unsigned int flags, /* Flags. */ int backlog, /* Length of OS listen backlog queue, or -1 * for default. */ Tcl_TcpAcceptProc *acceptProc, /* Callback for accepting connections from new * clients. */ ClientData acceptProcData) /* Data for the callback. */ { SOCKET sock = INVALID_SOCKET; unsigned short chosenport = 0; |
︙ | ︙ | |||
2093 2094 2095 2096 2097 2098 2099 | */ if (TclSockGetPort(interp, service, "tcp", &port) != TCL_OK) { errorMsg = "invalid port number"; goto error; } | | > | 2216 2217 2218 2219 2220 2221 2222 2223 2224 2225 2226 2227 2228 2229 2230 2231 | */ if (TclSockGetPort(interp, service, "tcp", &port) != TCL_OK) { errorMsg = "invalid port number"; goto error; } if (!TclCreateSocketAddress(interp, &addrlist, myHost, service, 1, &errorMsg)) { goto error; } for (addrPtr = addrlist; addrPtr != NULL; addrPtr = addrPtr->ai_next) { sock = socket(addrPtr->ai_family, addrPtr->ai_socktype, addrPtr->ai_protocol); if (sock == INVALID_SOCKET) { |
︙ | ︙ | |||
2132 2133 2134 2135 2136 2137 2138 | if (port == 0 && chosenport != 0) { ((struct sockaddr_in *) addrPtr->ai_addr)->sin_port = htons(chosenport); } /* | | | > | | | | 2256 2257 2258 2259 2260 2261 2262 2263 2264 2265 2266 2267 2268 2269 2270 2271 2272 2273 2274 2275 2276 2277 2278 2279 2280 2281 2282 2283 2284 2285 2286 2287 2288 2289 | if (port == 0 && chosenport != 0) { ((struct sockaddr_in *) addrPtr->ai_addr)->sin_port = htons(chosenport); } /* * The SO_REUSEADDR option on Windows behaves like SO_REUSEPORT on * unix systems. */ if (flags & TCL_TCPSERVER_REUSEPORT) { optvalue = 1; (void) setsockopt(sock, SOL_SOCKET, SO_REUSEADDR, (char *) &optvalue, sizeof(optvalue)); } /* * Bind to the specified port. * * Bind should not be affected by the socket having already been * set into nonblocking mode. If there is trouble, this is one * place to look for bugs. */ if (bind(sock, addrPtr->ai_addr, addrPtr->ai_addrlen) == SOCKET_ERROR) { TclWinConvertError((DWORD) WSAGetLastError()); closesocket(sock); continue; } if (port == 0 && chosenport == 0) { address sockname; socklen_t namelen = sizeof(sockname); |
︙ | ︙ | |||
2175 2176 2177 2178 2179 2180 2181 | /* * Set the maximum number of pending connect requests to the max * value allowed on each platform (Win32 and Win32s may be * different, and there may be differences between TCP/IP stacks). */ | > > > | > | | | 2300 2301 2302 2303 2304 2305 2306 2307 2308 2309 2310 2311 2312 2313 2314 2315 2316 2317 2318 2319 2320 2321 2322 2323 2324 2325 2326 2327 2328 2329 2330 2331 2332 2333 2334 | /* * Set the maximum number of pending connect requests to the max * value allowed on each platform (Win32 and Win32s may be * different, and there may be differences between TCP/IP stacks). */ if (backlog < 0) { backlog = SOMAXCONN; } if (listen(sock, backlog) == SOCKET_ERROR) { TclWinConvertError((DWORD) WSAGetLastError()); closesocket(sock); continue; } if (statePtr == NULL) { /* * Add this socket to the global list of sockets. */ statePtr = NewSocketInfo(sock); } else { AddSocketInfoFd(statePtr, sock); } } error: if (addrlist != NULL) { freeaddrinfo(addrlist); } if (statePtr != NULL) { ThreadSpecificData *tsdPtr = TclThreadDataKeyGet(&dataKey); |
︙ | ︙ | |||
2217 2218 2219 2220 2221 2222 2223 | /* * Register for interest in events in the select mask. Note that this * automatically places the socket into non-blocking mode. */ ioctlsocket(sock, (long) FIONBIO, &flag); SendMessage(tsdPtr->hwnd, SOCKET_SELECT, (WPARAM) SELECT, | | | 2346 2347 2348 2349 2350 2351 2352 2353 2354 2355 2356 2357 2358 2359 2360 | /* * Register for interest in events in the select mask. Note that this * automatically places the socket into non-blocking mode. */ ioctlsocket(sock, (long) FIONBIO, &flag); SendMessage(tsdPtr->hwnd, SOCKET_SELECT, (WPARAM) SELECT, (LPARAM) statePtr); if (Tcl_SetChannelOption(interp, statePtr->channel, "-eofchar", "") == TCL_ERROR) { Tcl_Close(NULL, statePtr->channel); return NULL; } return statePtr->channel; } |
︙ | ︙ | |||
2579 2580 2581 2582 2583 2584 2585 | */ WaitForSingleObject(tsdPtr->socketListLock, INFINITE); for (statePtr = tsdPtr->socketList; statePtr != NULL; statePtr = statePtr->nextPtr) { if ((statePtr->readyEvents & (statePtr->watchEvents | FD_CONNECT | FD_ACCEPT)) | | < | | 2708 2709 2710 2711 2712 2713 2714 2715 2716 2717 2718 2719 2720 2721 2722 2723 | */ WaitForSingleObject(tsdPtr->socketListLock, INFINITE); for (statePtr = tsdPtr->socketList; statePtr != NULL; statePtr = statePtr->nextPtr) { if ((statePtr->readyEvents & (statePtr->watchEvents | FD_CONNECT | FD_ACCEPT)) && !(statePtr->flags & SOCKET_PENDING)) { SET_BITS(statePtr->flags, SOCKET_PENDING); evPtr = ckalloc(sizeof(SocketEvent)); evPtr->header.proc = SocketEventProc; evPtr->socket = statePtr->sockets->fd; Tcl_QueueEvent((Tcl_Event *) evPtr, TCL_QUEUE_TAIL); } } SetEvent(tsdPtr->socketListLock); |
︙ | ︙ | |||
2656 2657 2658 2659 2660 2661 2662 | return 1; } /* * Clear flag that (this) event is pending */ | | | | < < < | > < | | < > > | | | | > > | | | > | > | | | | | > > | > | | 2784 2785 2786 2787 2788 2789 2790 2791 2792 2793 2794 2795 2796 2797 2798 2799 2800 2801 2802 2803 2804 2805 2806 2807 2808 2809 2810 2811 2812 2813 2814 2815 2816 2817 2818 2819 2820 2821 2822 2823 2824 2825 2826 2827 2828 2829 2830 2831 2832 2833 2834 2835 2836 2837 2838 2839 2840 2841 2842 2843 2844 2845 2846 2847 2848 2849 2850 2851 2852 2853 2854 2855 2856 2857 2858 2859 2860 2861 2862 2863 2864 2865 2866 2867 2868 2869 2870 2871 2872 2873 2874 2875 2876 2877 2878 2879 2880 2881 2882 2883 2884 2885 2886 2887 | return 1; } /* * Clear flag that (this) event is pending */ CLEAR_BITS(statePtr->flags, SOCKET_PENDING); /* * Continue async connect if pending and ready */ if (statePtr->readyEvents & FD_CONNECT) { if (statePtr->flags & TCP_ASYNC_PENDING) { /* * Do one step and save eventual connect error */ SetEvent(tsdPtr->socketListLock); WaitForConnect(statePtr,NULL); } else { /* * No async connect reenter pending. Just clear event. */ CLEAR_BITS(statePtr->readyEvents, FD_CONNECT); SetEvent(tsdPtr->socketListLock); } return 1; } /* * Handle connection requests directly. */ if (statePtr->readyEvents & FD_ACCEPT) { for (fds = statePtr->sockets; fds != NULL; fds = fds->next) { /* * Accept the incoming connection request. */ len = sizeof(address); newSocket = accept(fds->fd, &(addr.sa), &len); /* * On Tcl server sockets with multiple OS fds we loop over the fds * trying an accept() on each, so we expect INVALID_SOCKET. There * are also other network stack conditions that can result in * FD_ACCEPT but a subsequent failure on accept() by the time we * get around to it. * * Access to sockets (acceptEventCount, readyEvents) in socketList * is still protected by the lock (prevents reintroduction of * SF Tcl Bug 3056775. */ if (newSocket == INVALID_SOCKET) { /* int err = WSAGetLastError(); */ continue; } /* * It is possible that more than one FD_ACCEPT has been sent, so * an extra count must be kept. Decrement the count, and reset the * readyEvent bit if the count is no longer > 0. */ statePtr->acceptEventCount--; if (statePtr->acceptEventCount <= 0) { CLEAR_BITS(statePtr->readyEvents, FD_ACCEPT); } SetEvent(tsdPtr->socketListLock); /* * Caution: TcpAccept() has the side-effect of evaluating the * server accept script (via AcceptCallbackProc() in tclIOCmd.c), * which can close the server socket and invalidate statePtr and * fds. If TcpAccept() accepts a socket we must return immediately * and let SocketCheckProc queue additional FD_ACCEPT events. */ TcpAccept(fds, newSocket, addr); return 1; } /* * Loop terminated with no sockets accepted; clear the ready mask so * we can detect the next connection request. Note that connection * requests are level triggered, so if there is a request already * pending, a new event will be generated. */ statePtr->acceptEventCount = 0; CLEAR_BITS(statePtr->readyEvents, FD_ACCEPT); SetEvent(tsdPtr->socketListLock); return 1; } SetEvent(tsdPtr->socketListLock); |
︙ | ︙ | |||
2769 2770 2771 2772 2773 2774 2775 | * a redundant trip through the event loop, but it's simpler than * trying to do unwind protection. */ Tcl_Time blockTime = { 0, 0 }; Tcl_SetMaxBlockTime(&blockTime); | | | < | | 2902 2903 2904 2905 2906 2907 2908 2909 2910 2911 2912 2913 2914 2915 2916 2917 2918 2919 2920 2921 2922 2923 2924 | * a redundant trip through the event loop, but it's simpler than * trying to do unwind protection. */ Tcl_Time blockTime = { 0, 0 }; Tcl_SetMaxBlockTime(&blockTime); SET_BITS(mask, TCL_READABLE | TCL_WRITABLE); } else if (events & FD_READ) { /* * Throw the readable event if an async connect failed. */ if (statePtr->flags & TCP_ASYNC_FAILED) { SET_BITS(mask, TCL_READABLE); } else { fd_set readFds; struct timeval timeout; /* * We must check to see if data is really available, since someone |
︙ | ︙ | |||
2801 2802 2803 2804 2805 2806 2807 | FD_ZERO(&readFds); FD_SET(statePtr->sockets->fd, &readFds); timeout.tv_usec = 0; timeout.tv_sec = 0; if (select(0, &readFds, NULL, NULL, &timeout) != 0) { | | | | | 2933 2934 2935 2936 2937 2938 2939 2940 2941 2942 2943 2944 2945 2946 2947 2948 2949 2950 2951 2952 2953 2954 2955 2956 2957 2958 2959 2960 2961 | FD_ZERO(&readFds); FD_SET(statePtr->sockets->fd, &readFds); timeout.tv_usec = 0; timeout.tv_sec = 0; if (select(0, &readFds, NULL, NULL, &timeout) != 0) { SET_BITS(mask, TCL_READABLE); } else { CLEAR_BITS(statePtr->readyEvents, FD_READ); SendMessage(tsdPtr->hwnd, SOCKET_SELECT, (WPARAM) SELECT, (LPARAM) statePtr); } } } /* * writable event */ if (events & FD_WRITE) { SET_BITS(mask, TCL_WRITABLE); } /* * Call registered event procedures */ if (mask) { |
︙ | ︙ | |||
2852 2853 2854 2855 2856 2857 2858 | static void AddSocketInfoFd( TcpState *statePtr, SOCKET socket) { TcpFdList *fds = statePtr->sockets; | | > | > > > | > > | > | > > | 2984 2985 2986 2987 2988 2989 2990 2991 2992 2993 2994 2995 2996 2997 2998 2999 3000 3001 3002 3003 3004 3005 3006 3007 3008 3009 3010 3011 3012 3013 3014 3015 3016 3017 3018 3019 3020 3021 | static void AddSocketInfoFd( TcpState *statePtr, SOCKET socket) { TcpFdList *fds = statePtr->sockets; if (fds == NULL) { /* * Add the first FD. */ statePtr->sockets = ckalloc(sizeof(TcpFdList)); fds = statePtr->sockets; } else { /* * Find end of list and append FD. */ while (fds->next != NULL) { fds = fds->next; } fds->next = ckalloc(sizeof(TcpFdList)); fds = fds->next; } /* * Populate new FD. */ fds->fd = socket; fds->statePtr = statePtr; fds->next = NULL; } /* |
︙ | ︙ | |||
2936 2937 2938 2939 2940 2941 2942 2943 2944 2945 2946 2947 2948 2949 2950 2951 2952 2953 2954 2955 2956 2957 2958 2959 2960 | * FD_READ or FD_WRITE. */ int *errorCodePtr) /* Where to store errors? */ { int result = 1; int oldMode; ThreadSpecificData *tsdPtr = TclThreadDataKeyGet(&dataKey); /* * Be sure to disable event servicing so we are truly modal. */ oldMode = Tcl_SetServiceMode(TCL_SERVICE_NONE); /* * Reset WSAAsyncSelect so we have a fresh set of events pending. */ SendMessage(tsdPtr->hwnd, SOCKET_SELECT, (WPARAM) UNSELECT, (LPARAM) statePtr); SendMessage(tsdPtr->hwnd, SOCKET_SELECT, (WPARAM) SELECT, (LPARAM) statePtr); while (1) { int event_found; | > > | > > > | > > > | > > > | > > > | > > | 3077 3078 3079 3080 3081 3082 3083 3084 3085 3086 3087 3088 3089 3090 3091 3092 3093 3094 3095 3096 3097 3098 3099 3100 3101 3102 3103 3104 3105 3106 3107 3108 3109 3110 3111 3112 3113 3114 3115 3116 3117 3118 3119 3120 3121 3122 3123 3124 3125 3126 3127 3128 3129 3130 3131 3132 3133 3134 3135 3136 3137 3138 3139 | * FD_READ or FD_WRITE. */ int *errorCodePtr) /* Where to store errors? */ { int result = 1; int oldMode; ThreadSpecificData *tsdPtr = TclThreadDataKeyGet(&dataKey); /* * Be sure to disable event servicing so we are truly modal. */ oldMode = Tcl_SetServiceMode(TCL_SERVICE_NONE); /* * Reset WSAAsyncSelect so we have a fresh set of events pending. */ SendMessage(tsdPtr->hwnd, SOCKET_SELECT, (WPARAM) UNSELECT, (LPARAM) statePtr); SendMessage(tsdPtr->hwnd, SOCKET_SELECT, (WPARAM) SELECT, (LPARAM) statePtr); while (1) { int event_found; /* * Get statePtr lock. */ WaitForSingleObject(tsdPtr->socketListLock, INFINITE); /* * Check if event occured. */ event_found = (statePtr->readyEvents & events); /* * Free list lock. */ SetEvent(tsdPtr->socketListLock); /* * Exit loop if event occured. */ if (event_found) { break; } /* * Exit loop if event did not occur but this is a non-blocking channel */ if (statePtr->flags & TCP_NONBLOCKING) { *errorCodePtr = EWOULDBLOCK; result = 0; break; } /* |
︙ | ︙ | |||
3125 3126 3127 3128 3129 3130 3131 | /* * Find the specified socket on the socket list and update its * eventState flag. */ for (statePtr = tsdPtr->socketList; statePtr != NULL; statePtr = statePtr->nextPtr) { | | > | < > | | < | | | > > > | > | 3282 3283 3284 3285 3286 3287 3288 3289 3290 3291 3292 3293 3294 3295 3296 3297 3298 3299 3300 3301 3302 3303 3304 3305 3306 3307 3308 3309 3310 3311 3312 3313 3314 3315 3316 3317 3318 3319 3320 3321 3322 3323 3324 3325 3326 3327 3328 3329 3330 3331 3332 3333 3334 3335 3336 3337 3338 3339 3340 3341 3342 3343 3344 3345 3346 3347 3348 | /* * Find the specified socket on the socket list and update its * eventState flag. */ for (statePtr = tsdPtr->socketList; statePtr != NULL; statePtr = statePtr->nextPtr) { if (FindFDInList(statePtr, socket)) { info_found = 1; break; } } /* * Check if there is a pending info structure not jet in the list. */ if (!info_found && tsdPtr->pendingTcpState != NULL && FindFDInList(tsdPtr->pendingTcpState, socket)) { statePtr = tsdPtr->pendingTcpState; info_found = 1; } if (info_found) { /* * Update the socket state. * * A count of FD_ACCEPTS is stored, so if an FD_CLOSE event * happens, then clear the FD_ACCEPT count. Otherwise, increment * the count if the current event is an FD_ACCEPT. */ if (event & FD_CLOSE) { statePtr->acceptEventCount = 0; CLEAR_BITS(statePtr->readyEvents, FD_WRITE | FD_ACCEPT); } else if (event & FD_ACCEPT) { statePtr->acceptEventCount++; } if (event & FD_CONNECT) { /* * Remember any error that occurred so we can report * connection failures. */ if (error != ERROR_SUCCESS) { statePtr->notifierConnectError = error; } } /* * Inform main thread about signaled events */ SET_BITS(statePtr->readyEvents, event); /* * Wake up the Main Thread. */ SetEvent(tsdPtr->readyEvent); Tcl_ThreadAlert(tsdPtr->threadId); } SetEvent(tsdPtr->socketListLock); break; case SOCKET_SELECT: |
︙ | ︙ | |||
3254 3255 3256 3257 3258 3259 3260 3261 3262 3263 3264 3265 3266 3267 | * * Side effects: * As defined for each function. * *---------------------------------------------------------------------- */ #undef TclWinGetSockOpt int TclWinGetSockOpt( SOCKET s, int level, int optname, char *optval, | > | 3415 3416 3417 3418 3419 3420 3421 3422 3423 3424 3425 3426 3427 3428 3429 | * * Side effects: * As defined for each function. * *---------------------------------------------------------------------- */ #ifndef TCL_NO_DEPRECATED #undef TclWinGetSockOpt int TclWinGetSockOpt( SOCKET s, int level, int optname, char *optval, |
︙ | ︙ | |||
3293 3294 3295 3296 3297 3298 3299 3300 3301 3302 3303 3304 3305 3306 | struct servent * TclWinGetServByName( const char *name, const char *proto) { return getservbyname(name, proto); } /* *---------------------------------------------------------------------- * * TcpThreadActionProc -- * * Insert or remove any thread local refs to this channel. | > | 3455 3456 3457 3458 3459 3460 3461 3462 3463 3464 3465 3466 3467 3468 3469 | struct servent * TclWinGetServByName( const char *name, const char *proto) { return getservbyname(name, proto); } #endif /* TCL_NO_DEPRECATED */ /* *---------------------------------------------------------------------- * * TcpThreadActionProc -- * * Insert or remove any thread local refs to this channel. |
︙ | ︙ |
Changes to win/tclWinTime.c.
︙ | ︙ | |||
23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 | #define SAMPLES 64 /* * The following arrays contain the day of year for the last day of each * month, where index 1 is January. */ static const int normalDays[] = { -1, 30, 58, 89, 119, 150, 180, 211, 242, 272, 303, 333, 364 }; static const int leapDays[] = { -1, 30, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334, 365 }; typedef struct { char tzName[64]; /* Time zone name */ struct tm tm; /* time information */ } ThreadSpecificData; static Tcl_ThreadDataKey dataKey; /* * Data for managing high-resolution timers. */ typedef struct { CRITICAL_SECTION cs; /* Mutex guarding this structure. */ | > > | 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 | #define SAMPLES 64 /* * The following arrays contain the day of year for the last day of each * month, where index 1 is January. */ #ifndef TCL_NO_DEPRECATED static const int normalDays[] = { -1, 30, 58, 89, 119, 150, 180, 211, 242, 272, 303, 333, 364 }; static const int leapDays[] = { -1, 30, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334, 365 }; typedef struct { char tzName[64]; /* Time zone name */ struct tm tm; /* time information */ } ThreadSpecificData; static Tcl_ThreadDataKey dataKey; #endif /* TCL_NO_DEPRECATED */ /* * Data for managing high-resolution timers. */ typedef struct { CRITICAL_SECTION cs; /* Mutex guarding this structure. */ |
︙ | ︙ | |||
109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 | 0 }; /* * Declarations for functions defined later in this file. */ static struct tm * ComputeGMT(const time_t *tp); static void StopCalibration(ClientData clientData); static DWORD WINAPI CalibrationThread(LPVOID arg); static void UpdateTimeEachSecond(void); static void ResetCounterSamples(Tcl_WideUInt fileTime, Tcl_WideInt perfCounter, Tcl_WideInt perfFreq); static Tcl_WideInt AccumulateSample(Tcl_WideInt perfCounter, Tcl_WideUInt fileTime); | > > | 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 | 0 }; /* * Declarations for functions defined later in this file. */ #ifndef TCL_NO_DEPRECATED static struct tm * ComputeGMT(const time_t *tp); #endif /* TCL_NO_DEPRECATED */ static void StopCalibration(ClientData clientData); static DWORD WINAPI CalibrationThread(LPVOID arg); static void UpdateTimeEachSecond(void); static void ResetCounterSamples(Tcl_WideUInt fileTime, Tcl_WideInt perfCounter, Tcl_WideInt perfFreq); static Tcl_WideInt AccumulateSample(Tcl_WideInt perfCounter, Tcl_WideUInt fileTime); |
︙ | ︙ | |||
518 519 520 521 522 523 524 525 526 527 528 529 530 531 | * * Side effects: * None. * *---------------------------------------------------------------------- */ struct tm * TclpGetDate( const time_t *t, int useGMT) { struct tm *tmPtr; time_t time; | > | 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 | * * Side effects: * None. * *---------------------------------------------------------------------- */ #ifndef TCL_NO_DEPRECATED struct tm * TclpGetDate( const time_t *t, int useGMT) { struct tm *tmPtr; time_t time; |
︙ | ︙ | |||
720 721 722 723 724 725 726 727 728 729 730 731 732 733 | tmPtr->tm_wday %= 7; if (tmPtr->tm_wday < 0) { tmPtr->tm_wday += 7; } return tmPtr; } /* *---------------------------------------------------------------------- * * CalibrationThread -- * * Thread that manages calibration of the hi-resolution time derived from | > | 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 | tmPtr->tm_wday %= 7; if (tmPtr->tm_wday < 0) { tmPtr->tm_wday += 7; } return tmPtr; } #endif /* TCL_NO_DEPRECATED */ /* *---------------------------------------------------------------------- * * CalibrationThread -- * * Thread that manages calibration of the hi-resolution time derived from |
︙ | ︙ | |||
1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 | * * Side effects: * Invokes gmtime or gmtime_r as appropriate. * *---------------------------------------------------------------------- */ struct tm * TclpGmtime( const time_t *timePtr) /* Pointer to the number of seconds since the * local system's epoch */ { /* * The MS implementation of gmtime is thread safe because it returns the | > | 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 | * * Side effects: * Invokes gmtime or gmtime_r as appropriate. * *---------------------------------------------------------------------- */ #ifndef TCL_NO_DEPRECATED struct tm * TclpGmtime( const time_t *timePtr) /* Pointer to the number of seconds since the * local system's epoch */ { /* * The MS implementation of gmtime is thread safe because it returns the |
︙ | ︙ | |||
1108 1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 | * The MS implementation of localtime is thread safe because it returns * the time in a block of thread-local storage, and Windows does not * provide a Posix localtime_r function. */ return localtime(timePtr); } /* *---------------------------------------------------------------------- * * Tcl_SetTimeProc -- * * TIP #233 (Virtualized Time): Registers two handlers for the | > | 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 | * The MS implementation of localtime is thread safe because it returns * the time in a block of thread-local storage, and Windows does not * provide a Posix localtime_r function. */ return localtime(timePtr); } #endif /* TCL_NO_DEPRECATED */ /* *---------------------------------------------------------------------- * * Tcl_SetTimeProc -- * * TIP #233 (Virtualized Time): Registers two handlers for the |
︙ | ︙ |