Compare commits
129
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
d249a8af5d | ||
|
|
e8d057ad67 | ||
|
|
967856b8f8 | ||
|
|
0f54d7701d | ||
|
|
bd81f35273 | ||
|
|
deaa520c80 | ||
|
|
acdb6bc384 | ||
|
|
6be68f173f | ||
|
|
0ae5b5b3c1 | ||
|
|
0dd03dfef9 | ||
|
|
2e3d1fac48 | ||
|
|
fdf990faf5 | ||
|
|
58f3361635 | ||
|
|
282b159f3b | ||
|
|
e403d82b18 | ||
|
|
c489e47329 | ||
|
|
a32cc9b49b | ||
|
|
e3a528bc44 | ||
|
|
12d28d084d | ||
|
|
fc49271c0a | ||
|
|
8c1c07d4bf | ||
|
|
4240cb00f0 | ||
|
|
1a30606518 | ||
|
|
99cc729bd2 | ||
|
|
9d64916f18 | ||
|
|
c9e70a3901 | ||
|
|
c11a7a6b08 | ||
|
|
6135265f5c | ||
|
|
1913208e18 | ||
|
|
73deb43f4f | ||
|
|
205345779a | ||
|
|
92ce12cc43 | ||
|
|
1754a9a311 | ||
|
|
91d8b69074 | ||
|
|
d3e04b3a76 | ||
|
|
3b743160f6 | ||
|
|
09d67aff95 | ||
|
|
227d96bf13 | ||
|
|
fd9d40cb5b | ||
|
|
f108505a5b | ||
|
|
90b9288358 | ||
|
|
5ecd3fa2b6 | ||
|
|
a46cd743dd | ||
|
|
ae445193f4 | ||
|
|
459a48dc5c | ||
|
|
1590eb50c5 | ||
|
|
c3f11e7741 | ||
|
|
9f710e45a9 | ||
|
|
c472223773 | ||
|
|
7f030a6b44 | ||
|
|
de7a370d58 | ||
|
|
63f824a7e9 | ||
|
|
805cd597f9 | ||
|
|
1f2fb4cf5b | ||
|
|
3d5869fb4b | ||
|
|
6d6afda39d | ||
|
|
7fc61f369b | ||
|
|
c6e6569dfe | ||
|
|
bc7e4c5d68 | ||
|
|
cd70770139 | ||
|
|
63e0947392 | ||
|
|
4ed03a1f4b | ||
|
|
ee626d5909 | ||
|
|
d4166a6b3a | ||
|
|
e325a4742e | ||
|
|
2cc11d4918 | ||
|
|
7dbf5ed0b0 | ||
|
|
1292a0d927 | ||
|
|
6003e823bf | ||
|
|
50426ba9c5 | ||
|
|
f399206c21 | ||
|
|
b2c41c81e4 | ||
|
|
0e5a1e2642 | ||
|
|
74708147ba | ||
|
|
b199b80ba8 | ||
|
|
226278b0ac | ||
|
|
2c4d707b8f | ||
|
|
544df0c1b8 | ||
|
|
8c7378b541 | ||
|
|
4f07b18244 | ||
|
|
f396811dd5 | ||
|
|
83f6249875 | ||
|
|
27503d10cd | ||
|
|
761a093174 | ||
|
|
97739f4d09 | ||
|
|
f14d6cb130 | ||
|
|
07bc28e627 | ||
|
|
4a22756b41 | ||
|
|
94f2309f51 | ||
|
|
dfc57be3b1 | ||
|
|
ec9c80bba9 | ||
|
|
7e79080ed7 | ||
|
|
75e1a82785 | ||
|
|
434f351abc | ||
|
|
8104f5f53d | ||
|
|
b3e2027137 | ||
|
|
28fe834bc3 | ||
|
|
2919fd5221 | ||
|
|
e4089d79b3 | ||
|
|
87e36a4aa9 | ||
|
|
6d6598bbcb | ||
|
|
bb005f26e4 | ||
|
|
b8674e42d2 | ||
|
|
48650316e3 | ||
|
|
b1ad5d16a7 | ||
|
|
d90a15ace1 | ||
|
|
fc506f9ca9 | ||
|
|
48bab372b9 | ||
|
|
f6b7fa43d6 | ||
|
|
4214c7a3a9 | ||
|
|
02cc7437b2 | ||
|
|
9d3e75eb7a | ||
|
|
4d7ebbdc94 | ||
|
|
22ce6aeb4b | ||
|
|
2fabe1cead | ||
|
|
4b3f548c27 | ||
|
|
3f9555d4c2 | ||
|
|
8acaf40209 | ||
|
|
8ee4bdf94d | ||
|
|
579463bcec | ||
|
|
2f36a2d349 | ||
|
|
6a233e935b | ||
|
|
4d5ff6cd13 | ||
|
|
acad581479 | ||
|
|
52d37c087d | ||
|
|
5e6453d592 | ||
|
|
f16ec6e776 | ||
|
|
42c1a1e15a | ||
|
|
5cd16427f7 |
@@ -1,5 +1,5 @@
|
||||
README: Tcl
|
||||
This is the Tcl 8.6.3 source distribution.
|
||||
This is the Tcl 8.6.4 source distribution.
|
||||
http://sourceforge.net/projects/tcl/files/Tcl/
|
||||
You can get any source release of Tcl from the URL above.
|
||||
|
||||
|
||||
@@ -8492,4 +8492,38 @@ include ::oo::class (fellows)
|
||||
|
||||
--- Released 8.6.3, November 12, 2014 --- http://core.tcl.tk/tcl/ for details
|
||||
|
||||
2014-11-21 (bug)[743338] Win: socket error encoding (ladayaroslav,nijtmans)
|
||||
|
||||
2014-12-01 (bug) restore tbcload/tclcompiler support (kupries)
|
||||
|
||||
2014-12-03 (bug)[0c043a] Fix compiled [set var($) val] (porter)
|
||||
|
||||
2014-12-04 (bug)[d2ffcc] Limit $... and bareword parsing to ASCII (ladayaroslav,porter)
|
||||
*** POTENTIAL INCOMPATIBILITY ***
|
||||
|
||||
2014-12-06 (bug)[c6cd4a] Win: hang in async socket connection (shults,nadkarni)
|
||||
|
||||
2014-12-10 tzdata updated to Olson's tzdata2014j (venkat)
|
||||
|
||||
2014-12-13 fix header files installation on OS X (houben)
|
||||
|
||||
2014-12-17 (TIP 427) [fconfigure $h -connecting, -peername, -sockname] (oehlmann,rmax)
|
||||
|
||||
2014-12-18 (bug)[af08c8] Crash in full finalize encoding teardown (porter)
|
||||
|
||||
2014-12-18 (bug)[7c187a] [chan copy] crash (io-53.17) (benno,porter)
|
||||
|
||||
2015-01-26 (bug)[df0848] Trouble with INFINITY macro (dower,nijtmans)
|
||||
|
||||
2015-01-29 (bug) Stop crashes when extension var resolvers misbehave (porter)
|
||||
|
||||
2015-01-29 (bug)[088727] [read] past EOF (io-73.4) (fenugrec,porter)
|
||||
|
||||
2015-02-11 tzdata updated to Olson's tzdata2015a (venkat)
|
||||
|
||||
2015-02-20 (bug)[32b615] Fix compiled [lreplace] (lreplace-4.[345]) (aspect)
|
||||
|
||||
2015-03-10 (enhancement) Revise OS X notifier for better Cocoa (walzer)
|
||||
*** POTENTIAL INCOMPATIBILITY ***
|
||||
|
||||
--- Released 8.6.4, March 12, 2015 --- http://core.tcl.tk/tcl/ for details
|
||||
|
||||
@@ -1,22 +0,0 @@
|
||||
/*
|
||||
* limits.h --
|
||||
*
|
||||
* This is a dummy header file to #include in Tcl when there
|
||||
* is no limits.h in /usr/include. There are only a few
|
||||
* definitions here; also see tclPort.h, which already
|
||||
* #defines some of the things here if they're not arleady
|
||||
* defined.
|
||||
*
|
||||
* Copyright (c) 1991 The Regents of the University of California.
|
||||
* Copyright (c) 1994 Sun Microsystems, Inc.
|
||||
*
|
||||
* See the file "license.terms" for information on usage and redistribution
|
||||
* of this file, and for a DISCLAIMER OF ALL WARRANTIES.
|
||||
*/
|
||||
|
||||
#define LONG_MIN 0x80000000
|
||||
#define LONG_MAX 0x7fffffff
|
||||
#define INT_MIN 0x80000000
|
||||
#define INT_MAX 0x7fffffff
|
||||
#define SHRT_MIN 0x8000
|
||||
#define SHRT_MAX 0x7fff
|
||||
+1
-1
@@ -336,7 +336,7 @@ typedef struct Tcl_ChannelType {
|
||||
It is not necessary to provide implementations for all channel
|
||||
operations. Those which are not necessary may be set to NULL in the
|
||||
struct: \fIblockModeProc\fR, \fIseekProc\fR, \fIsetOptionProc\fR,
|
||||
\fIgetOptionProc\fR, and \fIclose2Proc\fR, in addition to
|
||||
\fIgetOptionProc\fR, \fIgetHandleProc\fR, and \fIclose2Proc\fR, in addition to
|
||||
\fIflushProc\fR, \fIhandlerProc\fR, \fIthreadActionProc\fR, and
|
||||
\fItruncateProc\fR. Other functions that cannot be implemented in a
|
||||
meaningful way should return \fBEINVAL\fR when called, to indicate
|
||||
|
||||
+7
-41
@@ -257,47 +257,13 @@ is filled with the corresponding number of bytes that were stored in
|
||||
.PP
|
||||
\fBTcl_WinUtfToTChar\fR and \fBTcl_WinTCharToUtf\fR are
|
||||
Windows-only convenience
|
||||
functions for converting between UTF-8 and Windows strings. On Windows 95
|
||||
(as with the Unix operating system),
|
||||
all strings exchanged between Tcl and the operating system are
|
||||
.QW "char"
|
||||
based. On Windows NT, some strings exchanged between Tcl and the
|
||||
operating system are
|
||||
.QW "char"
|
||||
oriented while others are in Unicode. By
|
||||
convention, in Windows a TCHAR is a character in the ANSI code page
|
||||
on Windows 95 and a Unicode character on Windows NT.
|
||||
.PP
|
||||
If you planned to use the same
|
||||
.QW "char"
|
||||
based interfaces on both Windows
|
||||
95 and Windows NT, you could use \fBTcl_UtfToExternal\fR and
|
||||
\fBTcl_ExternalToUtf\fR (or their \fBTcl_DString\fR equivalents) with an
|
||||
encoding of NULL (the current system encoding). On the other hand,
|
||||
if you planned to use the Unicode interface when running on Windows NT
|
||||
and the
|
||||
.QW "char"
|
||||
interfaces when running on Windows 95, you would have
|
||||
to perform the following type of test over and over in your program
|
||||
(as represented in pseudo-code):
|
||||
.PP
|
||||
.CS
|
||||
if (running NT) {
|
||||
encoding <- Tcl_GetEncoding("unicode");
|
||||
nativeBuffer <- Tcl_UtfToExternal(encoding, utfBuffer);
|
||||
Tcl_FreeEncoding(encoding);
|
||||
} else {
|
||||
nativeBuffer <- Tcl_UtfToExternal(NULL, utfBuffer);
|
||||
}
|
||||
.CE
|
||||
.PP
|
||||
\fBTcl_WinUtfToTChar\fR and \fBTcl_WinTCharToUtf\fR automatically
|
||||
handle this test and use the proper encoding based on the current
|
||||
operating system. \fBTcl_WinUtfToTChar\fR returns a pointer to
|
||||
a TCHAR string, and \fBTcl_WinTCharToUtf\fR expects a TCHAR string
|
||||
pointer as the \fIsrc\fR string. Otherwise, these functions
|
||||
behave identically to \fBTcl_UtfToExternalDString\fR and
|
||||
\fBTcl_ExternalToUtfDString\fR.
|
||||
functions for converting between UTF-8 and Windows strings
|
||||
based on the TCHAR type which is by convention
|
||||
a Unicode character on Windows NT.
|
||||
These functions are essentially wrappers around
|
||||
\fBTcl_UtfToExternalDString\fR and
|
||||
\fBTcl_ExternalToUtfDString\fR that convert to and from the
|
||||
Unicode encoding.
|
||||
.PP
|
||||
\fBTcl_GetEncodingName\fR is roughly the inverse of \fBTcl_GetEncoding\fR.
|
||||
Given an \fIencoding\fR, the return value is the \fIname\fR argument that
|
||||
|
||||
+14
-6
@@ -9,7 +9,7 @@
|
||||
.so man.macros
|
||||
.BS
|
||||
.SH NAME
|
||||
Tcl_ConditionNotify, Tcl_ConditionWait, Tcl_ConditionFinalize, Tcl_GetThreadData, Tcl_MutexLock, Tcl_MutexUnlock, Tcl_MutexFinalize, Tcl_CreateThread, Tcl_JoinThread \- Tcl thread support
|
||||
Tcl_ConditionNotify, Tcl_ConditionWait, Tcl_ConditionFinalize, Tcl_GetThreadData, Tcl_MutexLock, Tcl_MutexUnlock, Tcl_MutexFinalize, Tcl_MutexUnlockAndFinalize, Tcl_CreateThread, Tcl_JoinThread \- Tcl thread support
|
||||
.SH SYNOPSIS
|
||||
.nf
|
||||
\fB#include <tcl.h>\fR
|
||||
@@ -35,6 +35,9 @@ void
|
||||
void
|
||||
\fBTcl_MutexFinalize\fR(\fImutexPtr\fR)
|
||||
.sp
|
||||
void
|
||||
\fBTcl_MutexUnlockAndFinalize\fR(\fImutexPtr\fR)
|
||||
.sp
|
||||
int
|
||||
\fBTcl_CreateThread\fR(\fIidPtr, proc, clientData, stackSize, flags\fR)
|
||||
.sp
|
||||
@@ -138,11 +141,16 @@ A mutex is a lock that is used to serialize all threads through a piece
|
||||
of code by calling \fBTcl_MutexLock\fR and \fBTcl_MutexUnlock\fR.
|
||||
If one thread holds a mutex, any other thread calling \fBTcl_MutexLock\fR will
|
||||
block until \fBTcl_MutexUnlock\fR is called.
|
||||
A mutex can be destroyed after its use by calling \fBTcl_MutexFinalize\fR.
|
||||
A mutex can be destroyed after its use by calling \fBTcl_MutexFinalize\fR or
|
||||
\fBTcl_MutexUnlockAndFinalize\fR. The \fBTcl_MutexFinalize\fR function may
|
||||
only be used on unlocked mutexes; otherwise, its behavior is undefined. The
|
||||
\fBTcl_MutexUnlockAndFinalize\fR function may only be used on locked mutexes;
|
||||
otherwise, its behavior is undefined.
|
||||
The result of locking a mutex twice from the same thread is undefined.
|
||||
On some platforms it will result in a deadlock.
|
||||
The \fBTcl_MutexLock\fR, \fBTcl_MutexUnlock\fR and \fBTcl_MutexFinalize\fR
|
||||
procedures are defined as empty macros if not compiling with threads enabled.
|
||||
The \fBTcl_MutexLock\fR, \fBTcl_MutexUnlock\fR, \fBTcl_MutexFinalize\fR, and
|
||||
\fBTcl_MutexUnlockAndFinalize\fR procedures are defined as empty macros if
|
||||
not compiling with threads enabled.
|
||||
For declaration of mutexes the \fBTCL_DECLARE_MUTEX\fR macro should be used.
|
||||
This macro assures correct mutex handling even when the core is compiled
|
||||
without threads enabled.
|
||||
@@ -176,8 +184,8 @@ They are implemented as opaque pointers that should be NULL
|
||||
upon first use.
|
||||
The mutexes and condition variables are
|
||||
either cleaned up by process exit handlers (if living that long) or
|
||||
explicitly by calls to \fBTcl_MutexFinalize\fR or
|
||||
\fBTcl_ConditionFinalize\fR.
|
||||
explicitly by calls to \fBTcl_MutexFinalize\fR (or
|
||||
\fBTcl_MutexUnlockAndFinalize\fR) and \fBTcl_ConditionFinalize\fR.
|
||||
Thread local storage is reclaimed during \fBTcl_FinalizeThread\fR.
|
||||
.SH "SCRIPT-LEVEL ACCESS TO THREADS"
|
||||
.PP
|
||||
|
||||
+1
-66
@@ -269,17 +269,13 @@ present, as is done when launching applications under wish. It is desirable
|
||||
to have console applications hidden and detached. This is a designed-in
|
||||
limitation as \fBexec\fR wants to communicate over pipes. The Expect
|
||||
extension addresses this issue when communicating with a TUI application.
|
||||
.RE
|
||||
.TP
|
||||
\fBWindows NT\fR
|
||||
.
|
||||
.PP
|
||||
When attempting to execute an application, \fBexec\fR first searches for
|
||||
the name as it was specified. Then, in order, \fB.com\fR, \fB.exe\fR, and
|
||||
\fB.bat\fR are appended to the end of the specified name and it searches
|
||||
for the longer name. If a directory name was not specified as part of the
|
||||
application name, the following directories are automatically searched in
|
||||
order when attempting to locate the application:
|
||||
.RS
|
||||
.IP \(bu 3
|
||||
The directory from which the Tcl executable was loaded.
|
||||
.IP \(bu 3
|
||||
@@ -299,67 +295,6 @@ the caller must prepend the desired command with
|
||||
because built-in commands are not implemented using executables.
|
||||
.RE
|
||||
.TP
|
||||
\fBWindows 9x\fR
|
||||
.
|
||||
When attempting to execute an application, \fBexec\fR first searches for
|
||||
the name as it was specified. Then, in order, \fB.com\fR, \fB.exe\fR, and
|
||||
\fB.bat\fR are appended to the end of the specified name and it searches
|
||||
for the longer name. If a directory name was not specified as part of the
|
||||
application name, the following directories are automatically searched in
|
||||
order when attempting to locate the application:
|
||||
.RS
|
||||
.IP \(bu 3
|
||||
The directory from which the Tcl executable was loaded.
|
||||
.IP \(bu 3
|
||||
The current directory.
|
||||
.IP \(bu 3
|
||||
The Windows 9x system directory.
|
||||
.IP \(bu 3
|
||||
The Windows 9x home directory.
|
||||
.IP \(bu 3
|
||||
The directories listed in the path.
|
||||
.RE
|
||||
.RS
|
||||
.PP
|
||||
In order to execute shell built-in commands like \fBdir\fR and \fBcopy\fR,
|
||||
the caller must prepend the desired command with
|
||||
.QW "\fBcommand.com /c\0\fR"
|
||||
because built-in commands are not implemented using executables.
|
||||
.PP
|
||||
Once a 16-bit DOS application has read standard input from a console and
|
||||
then quit, all subsequently run 16-bit DOS applications will see the
|
||||
standard input as already closed. 32-bit applications do not have this
|
||||
problem and will run correctly, even after a 16-bit DOS application thinks
|
||||
that standard input is closed. There is no known workaround for this bug
|
||||
at this time.
|
||||
.PP
|
||||
Redirection between the \fBNUL:\fR device and a 16-bit application does not
|
||||
always work. When redirecting from \fBNUL:\fR, some applications may hang,
|
||||
others will get an infinite stream of
|
||||
.QW 0x01
|
||||
bytes, and some will actually
|
||||
correctly get an immediate end-of-file; the behavior seems to depend upon
|
||||
something compiled into the application itself. When redirecting greater than
|
||||
4K or so to \fBNUL:\fR, some applications will hang. The above problems do not
|
||||
happen with 32-bit applications.
|
||||
.PP
|
||||
All DOS 16-bit applications are run synchronously. All standard input from
|
||||
a pipe to a 16-bit DOS application is collected into a temporary file; the
|
||||
other end of the pipe must be closed before the 16-bit DOS application
|
||||
begins executing. All standard output or error from a 16-bit DOS
|
||||
application to a pipe is collected into temporary files; the application
|
||||
must terminate before the temporary files are redirected to the next stage
|
||||
of the pipeline. This is due to a workaround for a Windows 95 bug in the
|
||||
implementation of pipes, and is how the standard Windows 95 DOS shell
|
||||
handles pipes itself.
|
||||
.PP
|
||||
Certain applications, such as \fBcommand.com\fR, should not be executed
|
||||
interactively. Applications which directly access the console window,
|
||||
rather than reading from their standard input and writing to their standard
|
||||
output may fail, hang Tcl, or even hang the system if their own private
|
||||
console window is not available to them.
|
||||
.RE
|
||||
.TP
|
||||
\fBUnix\fR (including Mac OS X)
|
||||
.
|
||||
The \fBexec\fR command is fully functional and works as described.
|
||||
|
||||
+3
-5
@@ -241,11 +241,9 @@ as relative to the cwd). Furthermore,
|
||||
paths are always expanded
|
||||
to absolute form. When creating links on filesystems that either do not
|
||||
support any links, or do not support the specific type requested, an
|
||||
error message will be returned. In particular Windows 95, 98 and ME do
|
||||
not support any links at present, but most Unix platforms support both
|
||||
symbolic and hard links (the latter for files only) and Windows
|
||||
NT/2000/XP (on NTFS drives) support symbolic
|
||||
directory links and hard file links.
|
||||
error message will be returned. Most Unix platforms support both
|
||||
symbolic and hard links (the latter for files only). Windows
|
||||
supports symbolic directory links and hard file links on NTFS drives.
|
||||
.RE
|
||||
.TP
|
||||
\fBfile lstat \fIname varName\fR
|
||||
|
||||
+1
-7
@@ -204,13 +204,7 @@ of the form
|
||||
it refers to the home
|
||||
directory of the user whose account information resides on the specified NT
|
||||
domain server. Otherwise, user account information is obtained from
|
||||
the local computer. On Windows 95 and 98, \fBglob\fR accepted patterns
|
||||
like
|
||||
.QW .../
|
||||
and
|
||||
.QW ..../
|
||||
for successively higher up parent directories, but later versions of
|
||||
Windows do not accept these forms.
|
||||
the local computer.
|
||||
.PP
|
||||
Since the backslash character has a special meaning to the glob
|
||||
command, glob patterns containing Windows style path separators need
|
||||
|
||||
+5
-3
@@ -96,9 +96,11 @@ forward to the proper implementation of the method (which it does by invoking
|
||||
the \fBnext\fR command as filters are inserted into the front of the method
|
||||
call chain) and is responsible for returning the result of \fBnext\fR.
|
||||
.PP
|
||||
Filters are not invoked when processing an invocation of the \fBunknown\fR
|
||||
method because of a failure to locate a method implementation, or when
|
||||
invoking either constructors or destructors.
|
||||
Filters are invoked when processing an invokation of the \fBunknown\fR
|
||||
method because of a failure to locate a method implementation, but \fInot\fR
|
||||
when invoking either constructors or destructors. (Note however that the
|
||||
\fBdestroy\fR method is a conventional method, and filters are invoked as
|
||||
normal when it is called.)
|
||||
.SH EXAMPLES
|
||||
.PP
|
||||
This example demonstrates how to use the \fBnext\fR command to call the
|
||||
|
||||
+2
-2
@@ -370,9 +370,8 @@ works for serial ports from 1 to 9. An attempt to open a serial port that
|
||||
does not exist or has a number greater than 9 will fail. An alternate
|
||||
form of opening serial ports is to use the filename \fB//./comX\fR,
|
||||
where X is any number that corresponds to a serial port.
|
||||
.RS
|
||||
.PP
|
||||
.
|
||||
.RS
|
||||
When running Tcl interactively, there may be some strange interactions
|
||||
between the real console, if one is present, and a command pipeline that uses
|
||||
standard input or output. If a command pipeline is opened for reading, some
|
||||
@@ -384,6 +383,7 @@ application are competing for the console at the same time. If the command
|
||||
pipeline is started from a script, so that Tcl is not accessing the console,
|
||||
or if the command pipeline does not use standard input or output, but is
|
||||
redirected from or to a file, then the above problems do not occur.
|
||||
.RE
|
||||
.TP
|
||||
\fBUnix\fR\0\0\0\0\0\0\0
|
||||
.
|
||||
|
||||
+25
-1
@@ -683,9 +683,33 @@ earlier in the RE taking priority over ones starting later. Note that
|
||||
outer subexpressions thus take priority over their component
|
||||
subexpressions.
|
||||
.PP
|
||||
Note that the quantifiers \fB{1,1}\fR and \fB{1,1}?\fR can be used to
|
||||
The quantifiers \fB{1,1}\fR and \fB{1,1}?\fR can be used to
|
||||
force longest and shortest preference, respectively, on a
|
||||
subexpression or a whole RE.
|
||||
.RS
|
||||
.PP
|
||||
\fBNOTE:\fR This means that you can usually make a RE be non-greedy overall by
|
||||
putting \fB{1,1}?\fR after one of the first non-constraint atoms or
|
||||
parenthesized sub-expressions in it. \fIIt pays to experiment\fR with the
|
||||
placing of this non-greediness override on a suitable range of input texts
|
||||
when you are writing a RE if you are using this level of complexity.
|
||||
.PP
|
||||
For example, this regular expression is non-greedy, and will match the
|
||||
shortest substring possible given that
|
||||
.QW \fBabc\fR
|
||||
will be matched as early as possible (the quantifier does not change that):
|
||||
.PP
|
||||
.CS
|
||||
ab{1,1}?c.*x.*cba
|
||||
.CE
|
||||
.PP
|
||||
The atom
|
||||
.QW \fBa\fR
|
||||
has no greediness preference, we explicitly give one for
|
||||
.QW \fBb\fR ,
|
||||
and the remaining quantifiers are overridden to be non-greedy by the preceding
|
||||
non-greedy quantifier.
|
||||
.RE
|
||||
.PP
|
||||
Match lengths are measured in characters, not collating elements. An
|
||||
empty string is considered longer than no match at all. For example,
|
||||
|
||||
@@ -190,7 +190,6 @@ sockets, this option returns a list of three elements; these are the
|
||||
address, the host name and the port to which the peer socket is connected
|
||||
or bound. If the host name cannot be computed, the second element of the
|
||||
list is identical to the address, its first element.
|
||||
.RE
|
||||
.TP
|
||||
\fB\-connecting\fR
|
||||
.
|
||||
|
||||
@@ -642,14 +642,6 @@ This test can only be run on any Windows platform.
|
||||
.
|
||||
This test can only be run on any Windows NT platform.
|
||||
.TP
|
||||
\fI95\fR
|
||||
.
|
||||
This test can only be run on any Windows 95 platform.
|
||||
.TP
|
||||
\fI98\fR
|
||||
.
|
||||
This test can only be run on any Windows 98 platform.
|
||||
.TP
|
||||
\fImac\fR
|
||||
.
|
||||
This test can only be run on any Mac platform.
|
||||
|
||||
+2
-7
@@ -308,18 +308,13 @@ is the value returned by \fBuname -m\fR.
|
||||
\fBos\fR
|
||||
.
|
||||
The name of the operating system running on this machine,
|
||||
such as \fBWindows 95\fR, \fBWindows NT\fR, or \fBSunOS\fR.
|
||||
such as \fBWindows NT\fR or \fBSunOS\fR.
|
||||
On UNIX machines, this is the value returned by \fBuname -s\fR.
|
||||
On Windows 95 and Windows 98, the value returned will be \fBWindows
|
||||
95\fR to provide better backwards compatibility to Windows 95; to
|
||||
distinguish between the two, check the \fBosVersion\fR.
|
||||
.TP
|
||||
\fBosVersion\fR
|
||||
.
|
||||
The version number for the operating system running on this machine.
|
||||
On UNIX machines, this is the value returned by \fBuname -r\fR. On
|
||||
Windows 95, the version will be 4.0; on Windows 98, the version will
|
||||
be 4.10.
|
||||
On UNIX machines, this is the value returned by \fBuname -r\fR.
|
||||
.TP
|
||||
\fBpathSeparator\fR
|
||||
.VS 8.6
|
||||
|
||||
+7
-7
@@ -996,13 +996,13 @@ parseqatom(
|
||||
switch (v->nexttype) {
|
||||
case '*':
|
||||
m = 0;
|
||||
n = INFINITY;
|
||||
n = DUPINF;
|
||||
qprefer = (v->nextvalue) ? LONGER : SHORTER;
|
||||
NEXT();
|
||||
break;
|
||||
case '+':
|
||||
m = 1;
|
||||
n = INFINITY;
|
||||
n = DUPINF;
|
||||
qprefer = (v->nextvalue) ? LONGER : SHORTER;
|
||||
NEXT();
|
||||
break;
|
||||
@@ -1019,7 +1019,7 @@ parseqatom(
|
||||
if (SEE(DIGIT)) {
|
||||
n = scannum(v);
|
||||
} else {
|
||||
n = INFINITY;
|
||||
n = DUPINF;
|
||||
}
|
||||
if (m > n) {
|
||||
ERR(REG_BADBR);
|
||||
@@ -1217,8 +1217,8 @@ parseqatom(
|
||||
*/
|
||||
|
||||
dupnfa(v->nfa, atom->begin, atom->end, s, atom->begin);
|
||||
assert(m >= 1 && m != INFINITY && n >= 1);
|
||||
repeat(v, s, atom->begin, m-1, (n == INFINITY) ? n : n-1);
|
||||
assert(m >= 1 && m != DUPINF && n >= 1);
|
||||
repeat(v, s, atom->begin, m-1, (n == DUPINF) ? n : n-1);
|
||||
f = COMBINE(qprefer, atom->flags);
|
||||
t = subre(v, '.', f, s, atom->end); /* prefix and atom */
|
||||
NOERR();
|
||||
@@ -1323,7 +1323,7 @@ repeat(
|
||||
#define SOME 2
|
||||
#define INF 3
|
||||
#define PAIR(x, y) ((x)*4 + (y))
|
||||
#define REDUCE(x) ( ((x) == INFINITY) ? INF : (((x) > 1) ? SOME : (x)) )
|
||||
#define REDUCE(x) ( ((x) == DUPINF) ? INF : (((x) > 1) ? SOME : (x)) )
|
||||
const int rm = REDUCE(m);
|
||||
const int rn = REDUCE(n);
|
||||
struct state *s, *s2;
|
||||
@@ -2108,7 +2108,7 @@ stdump(
|
||||
}
|
||||
if (t->min != 1 || t->max != 1) {
|
||||
fprintf(f, " {%d,", t->min);
|
||||
if (t->max != INFINITY) {
|
||||
if (t->max != DUPINF) {
|
||||
fprintf(f, "%d", t->max);
|
||||
}
|
||||
fprintf(f, "}");
|
||||
|
||||
+2
-2
@@ -1122,7 +1122,7 @@ complicatedBackrefDissect(
|
||||
*/
|
||||
|
||||
i = 0;
|
||||
for (p = begin; p <= stop && (i < max || max == INFINITY); p += len) {
|
||||
for (p = begin; p <= stop && (i < max || max == DUPINF); p += len) {
|
||||
if (v->g->compare(paren, p, len) != 0) {
|
||||
break;
|
||||
}
|
||||
@@ -1137,7 +1137,7 @@ complicatedBackrefDissect(
|
||||
if (p != end) { /* didn't consume all of it */
|
||||
return REG_NOMATCH;
|
||||
}
|
||||
if (min <= i && (i <= max || max == INFINITY)) {
|
||||
if (min <= i && (i <= max || max == DUPINF)) {
|
||||
return REG_OKAY;
|
||||
}
|
||||
return REG_NOMATCH; /* out of range */
|
||||
|
||||
+1
-1
@@ -99,7 +99,7 @@
|
||||
#define xxx 1
|
||||
|
||||
#define DUPMAX _POSIX2_RE_DUP_MAX
|
||||
#define INFINITY (DUPMAX+1)
|
||||
#define DUPINF (DUPMAX+1)
|
||||
|
||||
#define REMAGIC 0xfed7 /* magic number for main struct */
|
||||
|
||||
|
||||
@@ -2326,6 +2326,11 @@ declare 630 {
|
||||
|
||||
# ----- BASELINE -- FOR -- 8.6.0 ----- #
|
||||
|
||||
# TIP #435
|
||||
declare 631 {
|
||||
void Tcl_MutexUnlockAndFinalize(Tcl_Mutex *mutex)
|
||||
}
|
||||
|
||||
##############################################################################
|
||||
|
||||
# Define the platform specific public Tcl interface. These functions are only
|
||||
|
||||
+10
-24
@@ -56,10 +56,10 @@ extern "C" {
|
||||
#define TCL_MAJOR_VERSION 8
|
||||
#define TCL_MINOR_VERSION 6
|
||||
#define TCL_RELEASE_LEVEL TCL_FINAL_RELEASE
|
||||
#define TCL_RELEASE_SERIAL 3
|
||||
#define TCL_RELEASE_SERIAL 4
|
||||
|
||||
#define TCL_VERSION "8.6"
|
||||
#define TCL_PATCH_LEVEL "8.6.3"
|
||||
#define TCL_PATCH_LEVEL "8.6.4"
|
||||
|
||||
/*
|
||||
*----------------------------------------------------------------------------
|
||||
@@ -76,16 +76,6 @@ extern "C" {
|
||||
# endif
|
||||
#endif
|
||||
|
||||
/*
|
||||
* STRICT: See MSDN Article Q83456
|
||||
*/
|
||||
|
||||
#ifdef _WIN32
|
||||
# ifndef STRICT
|
||||
# define STRICT
|
||||
# endif
|
||||
#endif /* _WIN32 */
|
||||
|
||||
/*
|
||||
* Utility macros: STRINGIFY takes an argument and wraps it in "" (double
|
||||
* quotation marks), JOIN joins two arguments.
|
||||
@@ -402,16 +392,12 @@ typedef long LONG;
|
||||
* Don't know what platform it is and configure hasn't discovered what is
|
||||
* going on for us. Try to guess...
|
||||
*/
|
||||
# ifdef NO_LIMITS_H
|
||||
# error please define either TCL_WIDE_INT_TYPE or TCL_WIDE_INT_IS_LONG
|
||||
# else /* !NO_LIMITS_H */
|
||||
# include <limits.h>
|
||||
# if (INT_MAX < LONG_MAX)
|
||||
# define TCL_WIDE_INT_IS_LONG 1
|
||||
# else
|
||||
# define TCL_WIDE_INT_TYPE long long
|
||||
# endif
|
||||
# endif /* NO_LIMITS_H */
|
||||
# include <limits.h>
|
||||
# if (INT_MAX < LONG_MAX)
|
||||
# define TCL_WIDE_INT_IS_LONG 1
|
||||
# else
|
||||
# define TCL_WIDE_INT_TYPE long long
|
||||
# endif
|
||||
# endif /* _WIN32 */
|
||||
#endif /* !TCL_WIDE_INT_TYPE & !TCL_WIDE_INT_IS_LONG */
|
||||
#ifdef TCL_WIDE_INT_IS_LONG
|
||||
@@ -2436,9 +2422,7 @@ EXTERN void Tcl_MainEx(int argc, char **argv,
|
||||
Tcl_AppInitProc *appInitProc, Tcl_Interp *interp);
|
||||
EXTERN const char * Tcl_PkgInitStubsCheck(Tcl_Interp *interp,
|
||||
const char *version, int exact);
|
||||
#if defined(TCL_THREADS) && defined(USE_THREAD_ALLOC)
|
||||
EXTERN void Tcl_GetMemoryInfo(Tcl_DString *dsPtr);
|
||||
#endif
|
||||
|
||||
/*
|
||||
*----------------------------------------------------------------------------
|
||||
@@ -2608,6 +2592,8 @@ EXTERN void Tcl_GetMemoryInfo(Tcl_DString *dsPtr);
|
||||
#define Tcl_MutexLock(mutexPtr)
|
||||
#undef Tcl_MutexUnlock
|
||||
#define Tcl_MutexUnlock(mutexPtr)
|
||||
#undef Tcl_MutexUnlockAndFinalize
|
||||
#define Tcl_MutexUnlockAndFinalize(mutexPtr)
|
||||
#undef Tcl_MutexFinalize
|
||||
#define Tcl_MutexFinalize(mutexPtr)
|
||||
#undef Tcl_ConditionNotify
|
||||
|
||||
+69
-25
@@ -4142,8 +4142,9 @@ TclNREvalObjv(
|
||||
|
||||
/*
|
||||
* data[1] stores a marker for use by tailcalls; it will be set to 1 by
|
||||
* command redirectors (imports, alias, ensembles) so that tailcalls
|
||||
* finishes the source command and not just the target.
|
||||
* command redirectors (imports, alias, ensembles) so that tailcall skips
|
||||
* this callback (that marks the end of the target command) and goes back
|
||||
* to the end of the source command.
|
||||
*/
|
||||
|
||||
if (iPtr->deferredCallbacks) {
|
||||
@@ -4406,7 +4407,7 @@ NRCommand(
|
||||
iPtr->numLevels--;
|
||||
|
||||
/*
|
||||
* If there is a tailcall, schedule it
|
||||
* If there is a tailcall, schedule it next
|
||||
*/
|
||||
|
||||
if (data[1] && (data[1] != INT2PTR(1))) {
|
||||
@@ -8170,27 +8171,31 @@ Tcl_NRCmdSwap(
|
||||
}
|
||||
|
||||
/*****************************************************************************
|
||||
* Stuff for tailcalls
|
||||
* Tailcall related code
|
||||
*****************************************************************************
|
||||
*
|
||||
* Just to show that IT CAN BE DONE! The precise semantics are not simple,
|
||||
* require more thought. Possibly need a new Tcl return code to do it right?
|
||||
* Questions include:
|
||||
* (1) How is the objc/objv tailcall to be run? My current thinking is that
|
||||
* it should essentially be
|
||||
* [tailcall a b c] <=> [uplevel 1 [list a b c]]
|
||||
* with two caveats
|
||||
* (a) the current frame is dropped first, after running all pending
|
||||
* cleanup tasks and saving its namespace
|
||||
* (b) 'a' is looked up in the returning frame's namespace, but the
|
||||
* command is run in the context to which we are returning
|
||||
* Current implementation does this if [tailcall] is called from within
|
||||
* a proc, errors otherwise.
|
||||
* (2) Should a tailcall bypass [catch] in the returning frame? Current
|
||||
* implementation does not (or does it? Changed, test!) - it causes an
|
||||
* error.
|
||||
* The steps of the tailcall dance are as follows:
|
||||
*
|
||||
* FIXME NRE!
|
||||
* 1. when [tailcall] is invoked, it stores the corresponding callback in
|
||||
* the current CallFrame and returns TCL_RETURN
|
||||
* 2. when the CallFrame is popped, it calls TclSetTailcall to store the
|
||||
* callback in the proper NRCommand callback - the spot where the command
|
||||
* that pushed the CallFrame is completely cleaned up
|
||||
* 3. when the NRCommand callback runs, it schedules the tailcall callback
|
||||
* to run immediately after it returns
|
||||
*
|
||||
* One delicate point is to properly define the NRCommand where the tailcall
|
||||
* will execute. There are functions whose purpose is to help define the
|
||||
* precise spot:
|
||||
* TclMarkTailcall: if the NEXT command to be pushed tailcalls, execution
|
||||
* should continue right here
|
||||
* TclSkipTailcall: if the NEXT command to be pushed tailcalls, execution
|
||||
* should continue after the CURRENT command is fully returned ("skip
|
||||
* the next command: we are redirecting to it, tailcalls should run
|
||||
* after WE return")
|
||||
* TclPushTailcallPoint: the search for a tailcalling spot cannot traverse
|
||||
* this point. This is special for OO, as some of the oo constructs
|
||||
* that behave like commands may not push an NRCommand callback.
|
||||
*/
|
||||
|
||||
void
|
||||
@@ -8224,6 +8229,18 @@ TclPushTailcallPoint(
|
||||
((Interp *) interp)->numLevels++;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
*----------------------------------------------------------------------
|
||||
*
|
||||
* TclSetTailcall --
|
||||
*
|
||||
* Splice a tailcall command in the proper spot of the NRE callback
|
||||
* stack, so that it runs at the right time.
|
||||
*
|
||||
*----------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
void
|
||||
TclSetTailcall(
|
||||
Tcl_Interp *interp,
|
||||
@@ -8248,6 +8265,23 @@ TclSetTailcall(
|
||||
runPtr->data[1] = listPtr;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
*----------------------------------------------------------------------
|
||||
*
|
||||
* TclNRTailcallObjCmd --
|
||||
*
|
||||
* Prepare the tailcall as a list and store it in the current
|
||||
* varFrame. When the frame is later popped the tailcall will be spliced
|
||||
* at the proper place.
|
||||
*
|
||||
* Results:
|
||||
* The first NRCommand callback that is not marked to be skipped is
|
||||
* updated so that its data[1] field contains the tailcall list.
|
||||
*
|
||||
*----------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
int
|
||||
TclNRTailcallObjCmd(
|
||||
ClientData clientData,
|
||||
@@ -8262,9 +8296,9 @@ TclNRTailcallObjCmd(
|
||||
return TCL_ERROR;
|
||||
}
|
||||
|
||||
if (!(iPtr->varFramePtr->isProcCallFrame & 1)) { /* or is upleveled */
|
||||
if (!(iPtr->varFramePtr->isProcCallFrame & 1)) {
|
||||
Tcl_SetObjResult(interp, Tcl_NewStringObj(
|
||||
"tailcall can only be called from a proc or lambda", -1));
|
||||
"tailcall can only be called from a proc, lambda or method", -1));
|
||||
Tcl_SetErrorCode(interp, "TCL", "TAILCALL", "ILLEGAL", NULL);
|
||||
return TCL_ERROR;
|
||||
}
|
||||
@@ -8282,8 +8316,7 @@ TclNRTailcallObjCmd(
|
||||
/*
|
||||
* Create the callback to actually evaluate the tailcalled
|
||||
* command, then set it in the varFrame so that PopCallFrame can use it
|
||||
* at the proper time. Being lazy: exploit the TclNRAddCallBack macro to
|
||||
* build the callback.
|
||||
* at the proper time.
|
||||
*/
|
||||
|
||||
if (objc > 1) {
|
||||
@@ -8308,6 +8341,17 @@ TclNRTailcallObjCmd(
|
||||
return TCL_RETURN;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
*----------------------------------------------------------------------
|
||||
*
|
||||
* TclNRTailcallEval --
|
||||
*
|
||||
* This NREcallback actually causes the tailcall to be evaluated.
|
||||
*
|
||||
*----------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
int
|
||||
TclNRTailcallEval(
|
||||
ClientData data[],
|
||||
|
||||
+5
-14
@@ -1210,20 +1210,7 @@ TclCompileListCmd(
|
||||
valueTokenPtr = TokenAfter(valueTokenPtr);
|
||||
}
|
||||
if (listObj != NULL) {
|
||||
int len;
|
||||
const char *bytes = Tcl_GetStringFromObj(listObj, &len);
|
||||
|
||||
PushLiteral(envPtr, bytes, len);
|
||||
Tcl_DecrRefCount(listObj);
|
||||
if (len > 0) {
|
||||
/*
|
||||
* Force list interpretation!
|
||||
*/
|
||||
|
||||
TclEmitOpcode( INST_DUP, envPtr);
|
||||
TclEmitOpcode( INST_LIST_LENGTH, envPtr);
|
||||
TclEmitOpcode( INST_POP, envPtr);
|
||||
}
|
||||
TclEmitPush(TclAddLiteralObj(envPtr, listObj, NULL), envPtr);
|
||||
return TCL_OK;
|
||||
}
|
||||
|
||||
@@ -1501,6 +1488,10 @@ TclCompileLreplaceCmd(
|
||||
return TCL_ERROR;
|
||||
}
|
||||
|
||||
if(idx2 != INDEX_END && idx2 < idx1) {
|
||||
idx2 = idx1-1;
|
||||
}
|
||||
|
||||
/*
|
||||
* Work out what this [lreplace] is actually doing.
|
||||
*/
|
||||
|
||||
@@ -1815,6 +1815,8 @@ EXTERN int Tcl_FSUnloadFile(Tcl_Interp *interp,
|
||||
EXTERN void Tcl_ZlibStreamSetCompressionDictionary(
|
||||
Tcl_ZlibStream zhandle,
|
||||
Tcl_Obj *compressionDictionaryObj);
|
||||
/* 631 */
|
||||
EXTERN void Tcl_MutexUnlockAndFinalize(Tcl_Mutex *mutex);
|
||||
|
||||
typedef struct {
|
||||
const struct TclPlatStubs *tclPlatStubs;
|
||||
@@ -2481,6 +2483,7 @@ typedef struct TclStubs {
|
||||
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 */
|
||||
void (*tcl_MutexUnlockAndFinalize) (Tcl_Mutex *mutex); /* 631 */
|
||||
} TclStubs;
|
||||
|
||||
extern const TclStubs *tclStubsPtr;
|
||||
@@ -3773,6 +3776,8 @@ extern const TclStubs *tclStubsPtr;
|
||||
(tclStubsPtr->tcl_FSUnloadFile) /* 629 */
|
||||
#define Tcl_ZlibStreamSetCompressionDictionary \
|
||||
(tclStubsPtr->tcl_ZlibStreamSetCompressionDictionary) /* 630 */
|
||||
#define Tcl_MutexUnlockAndFinalize \
|
||||
(tclStubsPtr->tcl_MutexUnlockAndFinalize) /* 631 */
|
||||
|
||||
#endif /* defined(USE_TCL_STUBS) */
|
||||
|
||||
|
||||
@@ -2334,7 +2334,7 @@ UtfToUtfProc(
|
||||
|
||||
*dst++ = *src++;
|
||||
} else if (pureNullMode == 1 && UCHAR(*src) == 0xc0 &&
|
||||
UCHAR(*(src+1)) == 0x80) {
|
||||
(src + 1 < srcEnd) && UCHAR(*(src+1)) == 0x80) {
|
||||
/*
|
||||
* Convert 0xc080 to real nulls when we are in output mode.
|
||||
*/
|
||||
|
||||
@@ -3185,8 +3185,8 @@ TEBCresume(
|
||||
pc += 6;
|
||||
TEBC_YIELD();
|
||||
|
||||
TclMarkTailcall(interp);
|
||||
TclNRAddCallback(interp, TclClearRootEnsemble, NULL,NULL,NULL,NULL);
|
||||
TclSkipTailcall(interp);
|
||||
return TclNREvalObjEx(interp, objPtr, TCL_EVAL_INVOKE, NULL, INT_MIN);
|
||||
|
||||
/*
|
||||
@@ -4946,6 +4946,7 @@ TEBCresume(
|
||||
pc += pcAdjustment;
|
||||
TEBC_YIELD();
|
||||
|
||||
TclPushTailcallPoint(interp);
|
||||
oPtr = contextPtr->oPtr;
|
||||
if (oPtr->flags & FILTER_HANDLING) {
|
||||
TclNRAddCallback(interp, FinalizeOONextFilter,
|
||||
@@ -5591,7 +5592,7 @@ TEBCresume(
|
||||
TclNewObj(objResultPtr);
|
||||
} else if (TclIsPureByteArray(valuePtr)) {
|
||||
objResultPtr = Tcl_NewByteArrayObj(
|
||||
Tcl_GetByteArrayFromObj(valuePtr, &length)+index, 1);
|
||||
Tcl_GetByteArrayFromObj(valuePtr, NULL)+index, 1);
|
||||
} else if (valuePtr->bytes && length == valuePtr->length) {
|
||||
objResultPtr = Tcl_NewStringObj((const char *)
|
||||
valuePtr->bytes+index, 1);
|
||||
|
||||
+76
-11
@@ -421,7 +421,11 @@ ChanRead(
|
||||
* Each read op must set the blocked and eof states anew, not let
|
||||
* the effect of prior reads leak through.
|
||||
*/
|
||||
if (GotFlag(chanPtr->state, CHANNEL_EOF)) {
|
||||
chanPtr->state->inputEncodingFlags |= TCL_ENCODING_START;
|
||||
}
|
||||
ResetFlag(chanPtr->state, CHANNEL_BLOCKED | CHANNEL_EOF);
|
||||
chanPtr->state->inputEncodingFlags &= ~TCL_ENCODING_END;
|
||||
if (WillRead(chanPtr) < 0) {
|
||||
return -1;
|
||||
}
|
||||
@@ -430,7 +434,11 @@ ChanRead(
|
||||
dst, dstSize, &result);
|
||||
|
||||
/* Stop any flag leakage through stacked channel levels */
|
||||
if (GotFlag(chanPtr->state, CHANNEL_EOF)) {
|
||||
chanPtr->state->inputEncodingFlags |= TCL_ENCODING_START;
|
||||
}
|
||||
ResetFlag(chanPtr->state, CHANNEL_BLOCKED | CHANNEL_EOF);
|
||||
chanPtr->state->inputEncodingFlags &= ~TCL_ENCODING_END;
|
||||
if (bytesRead > 0) {
|
||||
/*
|
||||
* If we get a short read, signal up that we may be BLOCKED.
|
||||
@@ -1548,6 +1556,22 @@ Tcl_CreateChannel(
|
||||
*/
|
||||
|
||||
assert(sizeof(Tcl_ChannelTypeVersion) == sizeof(Tcl_DriverBlockModeProc *));
|
||||
assert(typePtr->typeName != NULL);
|
||||
if (NULL == typePtr->closeProc) {
|
||||
Tcl_Panic("channel type %s must define closeProc", typePtr->typeName);
|
||||
}
|
||||
if ((TCL_READABLE & mask) && (NULL == typePtr->inputProc)) {
|
||||
Tcl_Panic("channel type %s must define inputProc when used for reader channel", typePtr->typeName);
|
||||
}
|
||||
if ((TCL_WRITABLE & mask) && (NULL == typePtr->outputProc)) {
|
||||
Tcl_Panic("channel type %s must define outputProc when used for writer channel", typePtr->typeName);
|
||||
}
|
||||
if (NULL == typePtr->watchProc) {
|
||||
Tcl_Panic("channel type %s must define watchProc", typePtr->typeName);
|
||||
}
|
||||
if ((NULL!=typePtr->wideSeekProc) && (NULL == typePtr->seekProc)) {
|
||||
Tcl_Panic("channel type %s must define seekProc if defining wideSeekProc", typePtr->typeName);
|
||||
}
|
||||
|
||||
/*
|
||||
* JH: We could subsequently memset these to 0 to avoid the numerous
|
||||
@@ -2633,6 +2657,8 @@ FlushChannel(
|
||||
* the post-condition that on a successful return to caller we've
|
||||
* left space in the current output buffer for more writing (the flush
|
||||
* call was to make new room).
|
||||
* If the channel is blocking, then yes, so we guarantee that
|
||||
* blocking flushes actually flush all pending data.
|
||||
* Otherwise, no. Keep the current output buffer where it is so more
|
||||
* can be written to it, possibly filling it, to promote more efficient
|
||||
* buffer usage.
|
||||
@@ -2640,7 +2666,8 @@ FlushChannel(
|
||||
|
||||
bufPtr = statePtr->curOutPtr;
|
||||
if (bufPtr && BytesLeft(bufPtr) && /* Keep empties off queue */
|
||||
(statePtr->outQueueHead == NULL || IsBufferFull(bufPtr))) {
|
||||
(statePtr->outQueueHead == NULL || IsBufferFull(bufPtr)
|
||||
|| !GotFlag(statePtr, CHANNEL_NONBLOCKING))) {
|
||||
if (statePtr->outQueueHead == NULL) {
|
||||
statePtr->outQueueHead = bufPtr;
|
||||
} else {
|
||||
@@ -5723,7 +5750,11 @@ DoReadChars(
|
||||
|
||||
/* Special handling for zero-char read request. */
|
||||
if (toRead == 0) {
|
||||
if (GotFlag(statePtr, CHANNEL_EOF)) {
|
||||
statePtr->inputEncodingFlags |= TCL_ENCODING_START;
|
||||
}
|
||||
ResetFlag(statePtr, CHANNEL_BLOCKED|CHANNEL_EOF);
|
||||
statePtr->inputEncodingFlags &= ~TCL_ENCODING_END;
|
||||
UpdateInterest(chanPtr);
|
||||
return 0;
|
||||
}
|
||||
@@ -5735,8 +5766,12 @@ DoReadChars(
|
||||
chanPtr = statePtr->topChanPtr;
|
||||
TclChannelPreserve((Tcl_Channel)chanPtr);
|
||||
|
||||
/* Must clear the BLOCKED flag here since we check before reading */
|
||||
ResetFlag(statePtr, CHANNEL_BLOCKED);
|
||||
/* Must clear the BLOCKED|EOF flags here since we check before reading */
|
||||
if (GotFlag(statePtr, CHANNEL_EOF)) {
|
||||
statePtr->inputEncodingFlags |= TCL_ENCODING_START;
|
||||
}
|
||||
ResetFlag(statePtr, CHANNEL_BLOCKED|CHANNEL_EOF);
|
||||
statePtr->inputEncodingFlags &= ~TCL_ENCODING_END;
|
||||
for (copied = 0; (unsigned) toRead > 0; ) {
|
||||
copiedNow = -1;
|
||||
if (statePtr->inQueueHead != NULL) {
|
||||
@@ -5988,12 +6023,24 @@ ReadChars(
|
||||
/*
|
||||
* Perform the encoding transformation. Read no more than
|
||||
* srcLen bytes, write no more than dstLimit bytes.
|
||||
*
|
||||
* Some trickiness with encoding flags here. We do not want
|
||||
* the end of a buffer to be treated as the end of all input
|
||||
* when the presence of bytes in a next buffer are already
|
||||
* known to exist. This is checked with an assert() because
|
||||
* so far no test case causing the assertion to be false has
|
||||
* been created. The normal operations of channel reading
|
||||
* appear to cause EOF and TCL_ENCODING_END setting to appear
|
||||
* only in situations where there are no further bytes in
|
||||
* any buffers.
|
||||
*/
|
||||
|
||||
assert(bufPtr->nextPtr == NULL || BytesLeft(bufPtr->nextPtr) == 0
|
||||
|| (statePtr->inputEncodingFlags & TCL_ENCODING_END) == 0);
|
||||
|
||||
code = Tcl_ExternalToUtf(NULL, encoding, src, srcLen,
|
||||
flags & (bufPtr->nextPtr ? ~0 : ~TCL_ENCODING_END),
|
||||
&statePtr->inputEncodingState, dst, dstLimit, &srcRead,
|
||||
&dstDecoded, &numChars);
|
||||
flags, &statePtr->inputEncodingState,
|
||||
dst, dstLimit, &srcRead, &dstDecoded, &numChars);
|
||||
|
||||
/*
|
||||
* Perform the translation transformation in place. Read no more
|
||||
@@ -6110,9 +6157,12 @@ ReadChars(
|
||||
statePtr->inputEncodingFlags = savedIEFlags;
|
||||
statePtr->inputEncodingState = savedState;
|
||||
|
||||
assert(bufPtr->nextPtr == NULL
|
||||
|| BytesLeft(bufPtr->nextPtr) == 0 || 0 ==
|
||||
(statePtr->inputEncodingFlags & TCL_ENCODING_END));
|
||||
|
||||
Tcl_ExternalToUtf(NULL, encoding, src, srcLen,
|
||||
(statePtr->inputEncodingFlags | TCL_ENCODING_NO_TERMINATE)
|
||||
& (bufPtr->nextPtr ? ~0 : ~TCL_ENCODING_END),
|
||||
(statePtr->inputEncodingFlags | TCL_ENCODING_NO_TERMINATE),
|
||||
&statePtr->inputEncodingState, buffer, TCL_UTF_MAX + 1,
|
||||
&read, &decoded, &count);
|
||||
|
||||
@@ -6198,9 +6248,8 @@ ReadChars(
|
||||
* empty string.
|
||||
*/
|
||||
|
||||
if (dst[0] == '\n') {
|
||||
if (dstRead == 1 && dst[0] == '\n') {
|
||||
assert(statePtr->inputTranslation == TCL_TRANSLATE_AUTO);
|
||||
assert(dstRead == 1);
|
||||
|
||||
goto consume;
|
||||
}
|
||||
@@ -6488,9 +6537,13 @@ Tcl_Ungets(
|
||||
/*
|
||||
* Clear the EOF flags, and clear the BLOCKED bit.
|
||||
*/
|
||||
|
||||
|
||||
if (GotFlag(statePtr, CHANNEL_EOF)) {
|
||||
statePtr->inputEncodingFlags |= TCL_ENCODING_START;
|
||||
}
|
||||
ResetFlag(statePtr,
|
||||
CHANNEL_BLOCKED | CHANNEL_STICKY_EOF | CHANNEL_EOF | INPUT_SAW_CR);
|
||||
statePtr->inputEncodingFlags &= ~TCL_ENCODING_END;
|
||||
|
||||
bufPtr = AllocChannelBuffer(len);
|
||||
memcpy(InsertPoint(bufPtr), str, (size_t) len);
|
||||
@@ -6860,8 +6913,12 @@ Tcl_Seek(
|
||||
* point. Also clear CR related flags.
|
||||
*/
|
||||
|
||||
if (GotFlag(statePtr, CHANNEL_EOF)) {
|
||||
statePtr->inputEncodingFlags |= TCL_ENCODING_START;
|
||||
}
|
||||
ResetFlag(statePtr, CHANNEL_EOF | CHANNEL_STICKY_EOF | CHANNEL_BLOCKED |
|
||||
INPUT_SAW_CR);
|
||||
statePtr->inputEncodingFlags &= ~TCL_ENCODING_END;
|
||||
|
||||
/*
|
||||
* If the channel is in asynchronous output mode, switch it back to
|
||||
@@ -7955,7 +8012,11 @@ Tcl_SetChannelOption(
|
||||
* ahead'. Ditto for blocked.
|
||||
*/
|
||||
|
||||
if (GotFlag(statePtr, CHANNEL_EOF)) {
|
||||
statePtr->inputEncodingFlags |= TCL_ENCODING_START;
|
||||
}
|
||||
ResetFlag(statePtr, CHANNEL_EOF|CHANNEL_STICKY_EOF|CHANNEL_BLOCKED);
|
||||
statePtr->inputEncodingFlags &= ~TCL_ENCODING_END;
|
||||
return TCL_OK;
|
||||
} else if (HaveOpt(1, "-translation")) {
|
||||
const char *readMode, *writeMode;
|
||||
@@ -9651,7 +9712,11 @@ DoRead(
|
||||
|
||||
/* Special handling for zero-char read request. */
|
||||
if (bytesToRead == 0) {
|
||||
if (GotFlag(statePtr, CHANNEL_EOF)) {
|
||||
statePtr->inputEncodingFlags |= TCL_ENCODING_START;
|
||||
}
|
||||
ResetFlag(statePtr, CHANNEL_BLOCKED|CHANNEL_EOF);
|
||||
statePtr->inputEncodingFlags &= ~TCL_ENCODING_END;
|
||||
UpdateInterest(chanPtr);
|
||||
return 0;
|
||||
}
|
||||
|
||||
+4
-1
@@ -3059,6 +3059,8 @@ MODULE_SCOPE void TclpInitUnlock(void);
|
||||
MODULE_SCOPE Tcl_Obj * TclpObjListVolumes(void);
|
||||
MODULE_SCOPE void TclpMasterLock(void);
|
||||
MODULE_SCOPE void TclpMasterUnlock(void);
|
||||
MODULE_SCOPE void TclpMutexLock(void);
|
||||
MODULE_SCOPE void TclpMutexUnlock(void);
|
||||
MODULE_SCOPE int TclpMatchFiles(Tcl_Interp *interp, char *separators,
|
||||
Tcl_DString *dirPtr, char *pattern, char *tail);
|
||||
MODULE_SCOPE int TclpObjNormalizePath(Tcl_Interp *interp,
|
||||
@@ -4116,7 +4118,8 @@ MODULE_SCOPE void TclpFreeAllocCache(void *);
|
||||
AllocCache *cachePtr; \
|
||||
if (((interp) == NULL) || \
|
||||
((cachePtr = ((Interp *)(interp))->allocCache), \
|
||||
(cachePtr->numObjects >= ALLOC_NOBJHIGH))) { \
|
||||
((cachePtr->numObjects == 0) || \
|
||||
(cachePtr->numObjects >= ALLOC_NOBJHIGH)))) { \
|
||||
TclThreadFreeObj(objPtr); \
|
||||
} else { \
|
||||
(objPtr)->internalRep.twoPtrValue.ptr1 = cachePtr->firstObjPtr; \
|
||||
|
||||
+7
-2
@@ -1675,10 +1675,13 @@ Tcl_NewObjectInstance(
|
||||
|
||||
/*
|
||||
* Take care to not delete a deleted object; that would be
|
||||
* bad. [Bug 2903011]
|
||||
* bad. [Bug 2903011] Also take care to make sure that we have
|
||||
* the name of the command before we delete it. [Bug
|
||||
* 9dd1bd7a74]
|
||||
*/
|
||||
|
||||
if (!Deleted(oPtr)) {
|
||||
(void) TclOOObjectName(interp, oPtr);
|
||||
Tcl_DeleteCommandFromToken(interp, oPtr->command);
|
||||
}
|
||||
return NULL;
|
||||
@@ -1821,10 +1824,12 @@ FinalizeAlloc(
|
||||
|
||||
/*
|
||||
* Take care to not delete a deleted object; that would be bad. [Bug
|
||||
* 2903011]
|
||||
* 2903011] Also take care to make sure that we have the name of the
|
||||
* command before we delete it. [Bug 9dd1bd7a74]
|
||||
*/
|
||||
|
||||
if (!Deleted(oPtr)) {
|
||||
(void) TclOOObjectName(interp, oPtr);
|
||||
Tcl_DeleteCommandFromToken(interp, oPtr->command);
|
||||
}
|
||||
DelRef(oPtr);
|
||||
|
||||
@@ -1412,6 +1412,7 @@ const TclStubs tclStubs = {
|
||||
Tcl_FindSymbol, /* 628 */
|
||||
Tcl_FSUnloadFile, /* 629 */
|
||||
Tcl_ZlibStreamSetCompressionDictionary, /* 630 */
|
||||
Tcl_MutexUnlockAndFinalize, /* 631 */
|
||||
};
|
||||
|
||||
/* !END!: Do not edit above this line. */
|
||||
|
||||
@@ -50,6 +50,7 @@ static void RememberSyncObject(void *objPtr,
|
||||
#undef Tcl_MutexLock
|
||||
#undef Tcl_MutexUnlock
|
||||
#undef Tcl_MutexFinalize
|
||||
#undef Tcl_MutexUnlockAndFinalize
|
||||
#undef Tcl_ConditionNotify
|
||||
#undef Tcl_ConditionWait
|
||||
#undef Tcl_ConditionFinalize
|
||||
@@ -281,6 +282,43 @@ Tcl_MutexFinalize(
|
||||
TclpMasterUnlock();
|
||||
}
|
||||
|
||||
/*
|
||||
*----------------------------------------------------------------------
|
||||
*
|
||||
* Tcl_MutexUnlockAndFinalize --
|
||||
*
|
||||
* This procedure is invoked to unlock and then finalize a mutex.
|
||||
* The mutex must have been locked by Tcl_MutexLock. It is also
|
||||
* removed from the list of remembered objects. The mutex can no
|
||||
* longer be used after calling this procedure.
|
||||
*
|
||||
* Results:
|
||||
* None.
|
||||
*
|
||||
* Side effects:
|
||||
* Remove the mutex from the list.
|
||||
*
|
||||
*----------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
void
|
||||
Tcl_MutexUnlockAndFinalize(
|
||||
Tcl_Mutex *mutexPtr)
|
||||
{
|
||||
Tcl_Mutex mutex;
|
||||
TclpMasterLock();
|
||||
TclpMutexLock();
|
||||
#ifdef TCL_THREADS
|
||||
mutex = *mutexPtr;
|
||||
*mutexPtr = NULL; /* Force it to be created again. */
|
||||
Tcl_MutexUnlock(&mutex);
|
||||
TclpFinalizeMutex(&mutex);
|
||||
#endif
|
||||
ForgetSyncObject(mutexPtr, &mutexRecord);
|
||||
TclpMutexUnlock();
|
||||
TclpMasterUnlock();
|
||||
}
|
||||
|
||||
/*
|
||||
*----------------------------------------------------------------------
|
||||
*
|
||||
|
||||
+98
-21
@@ -84,6 +84,7 @@ typedef union Block {
|
||||
|
||||
typedef struct Bucket {
|
||||
Block *firstPtr; /* First block available */
|
||||
Block *lastPtr; /* End of block list */
|
||||
long numFree; /* Number of blocks available */
|
||||
|
||||
/* All fields below for accounting only */
|
||||
@@ -107,6 +108,7 @@ typedef struct Cache {
|
||||
Tcl_ThreadId owner; /* Which thread's cache is this? */
|
||||
Tcl_Obj *firstObjPtr; /* List of free objects for thread */
|
||||
int numObjects; /* Number of objects for thread */
|
||||
Tcl_Obj *lastPtr; /* Last object in this cache */
|
||||
int totalAssigned; /* Total space assigned to thread */
|
||||
Bucket buckets[NBUCKETS]; /* The buckets for this thread */
|
||||
} Cache;
|
||||
@@ -135,6 +137,7 @@ static int GetBlocks(Cache *cachePtr, int bucket);
|
||||
static Block * Ptr2Block(char *ptr);
|
||||
static char * Block2Ptr(Block *blockPtr, int bucket, unsigned int reqSize);
|
||||
static void MoveObjs(Cache *fromPtr, Cache *toPtr, int numMove);
|
||||
static void PutObjs(Cache *fromPtr, int numMove);
|
||||
|
||||
/*
|
||||
* Local variables defined in this file and initialized at startup.
|
||||
@@ -271,9 +274,7 @@ TclFreeAllocCache(
|
||||
*/
|
||||
|
||||
if (cachePtr->numObjects > 0) {
|
||||
Tcl_MutexLock(objLockPtr);
|
||||
MoveObjs(cachePtr, sharedPtr, cachePtr->numObjects);
|
||||
Tcl_MutexUnlock(objLockPtr);
|
||||
PutObjs(cachePtr, cachePtr->numObjects);
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -415,6 +416,9 @@ TclpFree(
|
||||
cachePtr->buckets[bucket].totalAssigned -= blockPtr->blockReqSize;
|
||||
blockPtr->nextBlock = cachePtr->buckets[bucket].firstPtr;
|
||||
cachePtr->buckets[bucket].firstPtr = blockPtr;
|
||||
if (cachePtr->buckets[bucket].numFree == 0) {
|
||||
cachePtr->buckets[bucket].lastPtr = blockPtr;
|
||||
}
|
||||
cachePtr->buckets[bucket].numFree++;
|
||||
cachePtr->buckets[bucket].numInserts++;
|
||||
|
||||
@@ -572,11 +576,13 @@ TclThreadAllocObj(void)
|
||||
if (newObjsPtr == NULL) {
|
||||
Tcl_Panic("alloc: could not allocate %d new objects", numMove);
|
||||
}
|
||||
cachePtr->lastPtr = newObjsPtr + numMove - 1;
|
||||
objPtr = cachePtr->firstObjPtr; /* NULL */
|
||||
while (--numMove >= 0) {
|
||||
objPtr = &newObjsPtr[numMove];
|
||||
objPtr->internalRep.twoPtrValue.ptr1 = cachePtr->firstObjPtr;
|
||||
cachePtr->firstObjPtr = objPtr;
|
||||
newObjsPtr[numMove].internalRep.twoPtrValue.ptr1 = objPtr;
|
||||
objPtr = newObjsPtr + numMove;
|
||||
}
|
||||
cachePtr->firstObjPtr = newObjsPtr;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -624,6 +630,9 @@ TclThreadFreeObj(
|
||||
|
||||
objPtr->internalRep.twoPtrValue.ptr1 = cachePtr->firstObjPtr;
|
||||
cachePtr->firstObjPtr = objPtr;
|
||||
if (cachePtr->numObjects == 0) {
|
||||
cachePtr->lastPtr = objPtr;
|
||||
}
|
||||
cachePtr->numObjects++;
|
||||
|
||||
/*
|
||||
@@ -632,9 +641,7 @@ TclThreadFreeObj(
|
||||
*/
|
||||
|
||||
if (cachePtr->numObjects > NOBJHIGH) {
|
||||
Tcl_MutexLock(objLockPtr);
|
||||
MoveObjs(cachePtr, sharedPtr, NOBJALLOC);
|
||||
Tcl_MutexUnlock(objLockPtr);
|
||||
PutObjs(cachePtr, NOBJALLOC);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -732,10 +739,64 @@ MoveObjs(
|
||||
* just have to update the first and last.
|
||||
*/
|
||||
|
||||
objPtr->internalRep.twoPtrValue.ptr1 = toPtr->firstObjPtr;
|
||||
toPtr->lastPtr = objPtr;
|
||||
objPtr->internalRep.twoPtrValue.ptr1 = toPtr->firstObjPtr; /* NULL */
|
||||
toPtr->firstObjPtr = fromFirstObjPtr;
|
||||
}
|
||||
|
||||
/*
|
||||
*----------------------------------------------------------------------
|
||||
*
|
||||
* PutObjs --
|
||||
*
|
||||
* Move Tcl_Obj's from thread cache to shared cache.
|
||||
*
|
||||
* Results:
|
||||
* None.
|
||||
*
|
||||
* Side effects:
|
||||
* None.
|
||||
*
|
||||
*----------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
static void
|
||||
PutObjs(
|
||||
Cache *fromPtr,
|
||||
int numMove)
|
||||
{
|
||||
int keep = fromPtr->numObjects - numMove;
|
||||
Tcl_Obj *firstPtr, *lastPtr = NULL;
|
||||
|
||||
fromPtr->numObjects = keep;
|
||||
firstPtr = fromPtr->firstObjPtr;
|
||||
if (keep == 0) {
|
||||
fromPtr->firstObjPtr = NULL;
|
||||
} else {
|
||||
do {
|
||||
lastPtr = firstPtr;
|
||||
firstPtr = firstPtr->internalRep.twoPtrValue.ptr1;
|
||||
} while (--keep > 0);
|
||||
lastPtr->internalRep.twoPtrValue.ptr1 = NULL;
|
||||
}
|
||||
|
||||
/*
|
||||
* Move all objects as a block - they are already linked to each other, we
|
||||
* just have to update the first and last.
|
||||
*/
|
||||
|
||||
Tcl_MutexLock(objLockPtr);
|
||||
fromPtr->lastPtr->internalRep.twoPtrValue.ptr1 = sharedPtr->firstObjPtr;
|
||||
sharedPtr->firstObjPtr = firstPtr;
|
||||
if (sharedPtr->numObjects == 0) {
|
||||
sharedPtr->lastPtr = fromPtr->lastPtr;
|
||||
}
|
||||
sharedPtr->numObjects += numMove;
|
||||
Tcl_MutexUnlock(objLockPtr);
|
||||
|
||||
fromPtr->lastPtr = lastPtr;
|
||||
}
|
||||
|
||||
/*
|
||||
*----------------------------------------------------------------------
|
||||
*
|
||||
@@ -848,20 +909,25 @@ PutBlocks(
|
||||
int bucket,
|
||||
int numMove)
|
||||
{
|
||||
register Block *lastPtr, *firstPtr;
|
||||
register int n = numMove;
|
||||
|
||||
/*
|
||||
* Before acquiring the lock, walk the block list to find the last block
|
||||
* to be moved.
|
||||
* We have numFree. Want to shed numMove. So compute how many
|
||||
* Blocks to keep.
|
||||
*/
|
||||
|
||||
firstPtr = lastPtr = cachePtr->buckets[bucket].firstPtr;
|
||||
while (--n > 0) {
|
||||
lastPtr = lastPtr->nextBlock;
|
||||
int keep = cachePtr->buckets[bucket].numFree - numMove;
|
||||
Block *lastPtr = NULL, *firstPtr;
|
||||
|
||||
cachePtr->buckets[bucket].numFree = keep;
|
||||
firstPtr = cachePtr->buckets[bucket].firstPtr;
|
||||
if (keep == 0) {
|
||||
cachePtr->buckets[bucket].firstPtr = NULL;
|
||||
} else {
|
||||
do {
|
||||
lastPtr = firstPtr;
|
||||
firstPtr = firstPtr->nextBlock;
|
||||
} while (--keep > 0);
|
||||
lastPtr->nextBlock = NULL;
|
||||
}
|
||||
cachePtr->buckets[bucket].firstPtr = lastPtr->nextBlock;
|
||||
cachePtr->buckets[bucket].numFree -= numMove;
|
||||
|
||||
/*
|
||||
* Aquire the lock and place the list of blocks at the front of the shared
|
||||
@@ -869,10 +935,17 @@ PutBlocks(
|
||||
*/
|
||||
|
||||
LockBucket(cachePtr, bucket);
|
||||
lastPtr->nextBlock = sharedPtr->buckets[bucket].firstPtr;
|
||||
cachePtr->buckets[bucket].lastPtr->nextBlock
|
||||
= sharedPtr->buckets[bucket].firstPtr;
|
||||
sharedPtr->buckets[bucket].firstPtr = firstPtr;
|
||||
if (sharedPtr->buckets[bucket].numFree == 0) {
|
||||
sharedPtr->buckets[bucket].lastPtr
|
||||
= cachePtr->buckets[bucket].lastPtr;
|
||||
}
|
||||
sharedPtr->buckets[bucket].numFree += numMove;
|
||||
UnlockBucket(cachePtr, bucket);
|
||||
|
||||
cachePtr->buckets[bucket].lastPtr = lastPtr;
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -919,6 +992,8 @@ GetBlocks(
|
||||
if (n >= sharedPtr->buckets[bucket].numFree) {
|
||||
cachePtr->buckets[bucket].firstPtr =
|
||||
sharedPtr->buckets[bucket].firstPtr;
|
||||
cachePtr->buckets[bucket].lastPtr =
|
||||
sharedPtr->buckets[bucket].lastPtr;
|
||||
cachePtr->buckets[bucket].numFree =
|
||||
sharedPtr->buckets[bucket].numFree;
|
||||
sharedPtr->buckets[bucket].firstPtr = NULL;
|
||||
@@ -932,6 +1007,7 @@ GetBlocks(
|
||||
blockPtr = blockPtr->nextBlock;
|
||||
}
|
||||
sharedPtr->buckets[bucket].firstPtr = blockPtr->nextBlock;
|
||||
cachePtr->buckets[bucket].lastPtr = blockPtr;
|
||||
blockPtr->nextBlock = NULL;
|
||||
}
|
||||
}
|
||||
@@ -983,6 +1059,7 @@ GetBlocks(
|
||||
((char *) blockPtr + bucketInfo[bucket].blockSize);
|
||||
blockPtr = blockPtr->nextBlock;
|
||||
}
|
||||
cachePtr->buckets[bucket].lastPtr = blockPtr;
|
||||
blockPtr->nextBlock = NULL;
|
||||
}
|
||||
return 1;
|
||||
|
||||
+1
-1
@@ -4746,7 +4746,7 @@ Tcl_GetVariableFullName(
|
||||
} else if (iPtr->varFramePtr->procPtr) {
|
||||
int index = varPtr - iPtr->varFramePtr->compiledLocals;
|
||||
|
||||
if (index < iPtr->varFramePtr->numCompiledLocals) {
|
||||
if (index >= 0 && index < iPtr->varFramePtr->numCompiledLocals) {
|
||||
namePtr = localName(iPtr->varFramePtr, index);
|
||||
Tcl_AppendObjToObj(objPtr, namePtr);
|
||||
}
|
||||
|
||||
+34
-13
@@ -11,7 +11,7 @@
|
||||
package require Tcl 8.6
|
||||
# Keep this in sync with pkgIndex.tcl and with the install directories in
|
||||
# Makefiles
|
||||
package provide http 2.8.8
|
||||
package provide http 2.8.9
|
||||
|
||||
namespace eval http {
|
||||
# Allow resourcing to not clobber existing data
|
||||
@@ -566,6 +566,10 @@ proc http::geturl {url args} {
|
||||
# Proxy connections aren't shared among different hosts.
|
||||
set state(socketinfo) $host:$port
|
||||
|
||||
# Save the accept types at this point to prevent a race condition. [Bug
|
||||
# c11a51c482]
|
||||
set state(accept-types) $http(-accept)
|
||||
|
||||
# See if we are supposed to use a previously opened channel.
|
||||
if {$state(-keepalive)} {
|
||||
variable socketmap
|
||||
@@ -637,8 +641,20 @@ proc http::geturl {url args} {
|
||||
return $token
|
||||
}
|
||||
|
||||
# http::Connected --
|
||||
#
|
||||
# Callback used when the connection to the HTTP server is actually
|
||||
# established.
|
||||
#
|
||||
# Arguments:
|
||||
# token State token.
|
||||
# proto What protocol (http, https, etc.) was used to connect.
|
||||
# phost Are we using keep-alive? Non-empty if yes.
|
||||
# srvurl Service-local URL that we're requesting
|
||||
# Results:
|
||||
# None.
|
||||
|
||||
proc http::Connected { token proto phost srvurl} {
|
||||
proc http::Connected {token proto phost srvurl} {
|
||||
variable http
|
||||
variable urlTypes
|
||||
|
||||
@@ -691,13 +707,12 @@ proc http::Connected { token proto phost srvurl} {
|
||||
if {[info exists state(-handler)]} {
|
||||
set state(-protocol) 1.0
|
||||
}
|
||||
set accept_types_seen 0
|
||||
if {[catch {
|
||||
puts $sock "$how $srvurl HTTP/$state(-protocol)"
|
||||
puts $sock "Accept: $http(-accept)"
|
||||
array set hdrs $state(-headers)
|
||||
if {[info exists hdrs(Host)]} {
|
||||
if {[dict exists $state(-headers) Host]} {
|
||||
# Allow Host spoofing. [Bug 928154]
|
||||
puts $sock "Host: $hdrs(Host)"
|
||||
puts $sock "Host: [dict get $state(-headers) Host]"
|
||||
} elseif {$port == $defport} {
|
||||
# Don't add port in this case, to handle broken servers. [Bug
|
||||
# #504508]
|
||||
@@ -705,7 +720,6 @@ proc http::Connected { token proto phost srvurl} {
|
||||
} else {
|
||||
puts $sock "Host: $host:$port"
|
||||
}
|
||||
unset hdrs
|
||||
puts $sock "User-Agent: $http(-useragent)"
|
||||
if {$state(-protocol) == 1.0 && $state(-keepalive)} {
|
||||
puts $sock "Connection: keep-alive"
|
||||
@@ -718,18 +732,21 @@ proc http::Connected { token proto phost srvurl} {
|
||||
}
|
||||
set accept_encoding_seen 0
|
||||
set content_type_seen 0
|
||||
foreach {key value} $state(-headers) {
|
||||
dict for {key value} $state(-headers) {
|
||||
set value [string map [list \n "" \r ""] $value]
|
||||
set key [string map {" " -} [string trim $key]]
|
||||
if {[string equal -nocase $key "host"]} {
|
||||
continue
|
||||
}
|
||||
if {[string equal -nocase $key "accept-encoding"]} {
|
||||
set accept_encoding_seen 1
|
||||
}
|
||||
if {[string equal -nocase $key "accept"]} {
|
||||
set accept_types_seen 1
|
||||
}
|
||||
if {[string equal -nocase $key "content-type"]} {
|
||||
set content_type_seen 1
|
||||
}
|
||||
set value [string map [list \n "" \r ""] $value]
|
||||
set key [string trim $key]
|
||||
if {[string equal -nocase $key "content-length"]} {
|
||||
set contDone 1
|
||||
set state(querylength) $value
|
||||
@@ -738,8 +755,13 @@ proc http::Connected { token proto phost srvurl} {
|
||||
puts $sock "$key: $value"
|
||||
}
|
||||
}
|
||||
# Allow overriding the Accept header on a per-connection basis. Useful
|
||||
# for working with REST services. [Bug c11a51c482]
|
||||
if {!$accept_types_seen} {
|
||||
puts $sock "Accept: $state(accept-types)"
|
||||
}
|
||||
if {!$accept_encoding_seen && ![info exists state(-handler)]} {
|
||||
puts $sock "Accept-Encoding: deflate,gzip,compress"
|
||||
puts $sock "Accept-Encoding: gzip,deflate,compress"
|
||||
}
|
||||
if {$isQueryChannel && $state(querylength) == 0} {
|
||||
# Try to determine size of data in channel. If we cannot seek, the
|
||||
@@ -795,7 +817,6 @@ proc http::Connected { token proto phost srvurl} {
|
||||
Finish $token $err
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
# Data access functions:
|
||||
@@ -1299,7 +1320,7 @@ proc http::Eof {token {force 0}} {
|
||||
set state(body) [zlib $coding $state(body)]
|
||||
}
|
||||
} err]} {
|
||||
Log "error doing $coding '$state(body)'"
|
||||
Log "error doing decompression: $err"
|
||||
return [Finish $token $err]
|
||||
}
|
||||
|
||||
|
||||
@@ -1,2 +1,2 @@
|
||||
if {![package vsatisfies [package provide Tcl] 8.6]} {return}
|
||||
package ifneeded http 2.8.8 [list tclPkgSetup $dir http 2.8.8 {{http.tcl source {::http::config ::http::formatQuery ::http::geturl ::http::reset ::http::wait ::http::register ::http::unregister ::http::mapReply}}}]
|
||||
package ifneeded http 2.8.9 [list tclPkgSetup $dir http 2.8.9 {{http.tcl source {::http::config ::http::formatQuery ::http::geturl ::http::reset ::http::wait ::http::register ::http::unregister ::http::mapReply}}}]
|
||||
|
||||
+1
-1
@@ -16,7 +16,7 @@
|
||||
if {[info commands package] == ""} {
|
||||
error "version mismatch: library\nscripts expect Tcl version 7.5b1 or later but the loaded version is\nonly [info patchlevel]"
|
||||
}
|
||||
package require -exact Tcl 8.6.3
|
||||
package require -exact Tcl 8.6.4
|
||||
|
||||
# Compute the auto path to use in this interpreter.
|
||||
# The values on the path come from several locations:
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
# created by tools/tclZIC.tcl - do not edit
|
||||
if {![info exists TZData(Africa/Asmara)]} {
|
||||
LoadTimeZoneFile Africa/Asmara
|
||||
if {![info exists TZData(Africa/Nairobi)]} {
|
||||
LoadTimeZoneFile Africa/Nairobi
|
||||
}
|
||||
set TZData(:Africa/Asmera) $TZData(:Africa/Asmara)
|
||||
set TZData(:Africa/Asmera) $TZData(:Africa/Nairobi)
|
||||
|
||||
@@ -129,184 +129,4 @@ set TZData(:Africa/Cairo) {
|
||||
{1403816400 7200 0 EET}
|
||||
{1406844000 10800 1 EEST}
|
||||
{1411678800 7200 0 EET}
|
||||
{1429826400 10800 1 EEST}
|
||||
{1434056400 7200 0 EET}
|
||||
{1437688800 10800 1 EEST}
|
||||
{1443128400 7200 0 EET}
|
||||
{1461880800 10800 1 EEST}
|
||||
{1464901200 7200 0 EET}
|
||||
{1467928800 10800 1 EEST}
|
||||
{1475182800 7200 0 EET}
|
||||
{1493330400 10800 1 EEST}
|
||||
{1495746000 7200 0 EET}
|
||||
{1498773600 10800 1 EEST}
|
||||
{1506632400 7200 0 EET}
|
||||
{1524780000 10800 1 EEST}
|
||||
{1525986000 7200 0 EET}
|
||||
{1529013600 10800 1 EEST}
|
||||
{1538082000 7200 0 EET}
|
||||
{1556229600 10800 1 EEST}
|
||||
{1556830800 7200 0 EET}
|
||||
{1559858400 10800 1 EEST}
|
||||
{1569531600 7200 0 EET}
|
||||
{1590703200 10800 1 EEST}
|
||||
{1600981200 7200 0 EET}
|
||||
{1620943200 10800 1 EEST}
|
||||
{1633035600 7200 0 EET}
|
||||
{1651788000 10800 1 EEST}
|
||||
{1664485200 7200 0 EET}
|
||||
{1682632800 10800 1 EEST}
|
||||
{1695934800 7200 0 EET}
|
||||
{1714082400 10800 1 EEST}
|
||||
{1727384400 7200 0 EET}
|
||||
{1745532000 10800 1 EEST}
|
||||
{1758834000 7200 0 EET}
|
||||
{1776981600 10800 1 EEST}
|
||||
{1790283600 7200 0 EET}
|
||||
{1809036000 10800 1 EEST}
|
||||
{1822338000 7200 0 EET}
|
||||
{1840485600 10800 1 EEST}
|
||||
{1853787600 7200 0 EET}
|
||||
{1871935200 10800 1 EEST}
|
||||
{1885237200 7200 0 EET}
|
||||
{1903384800 10800 1 EEST}
|
||||
{1916686800 7200 0 EET}
|
||||
{1934834400 10800 1 EEST}
|
||||
{1948136400 7200 0 EET}
|
||||
{1966888800 10800 1 EEST}
|
||||
{1980190800 7200 0 EET}
|
||||
{1998338400 10800 1 EEST}
|
||||
{2011640400 7200 0 EET}
|
||||
{2029788000 10800 1 EEST}
|
||||
{2043090000 7200 0 EET}
|
||||
{2061237600 10800 1 EEST}
|
||||
{2074539600 7200 0 EET}
|
||||
{2092687200 10800 1 EEST}
|
||||
{2105989200 7200 0 EET}
|
||||
{2124136800 10800 1 EEST}
|
||||
{2137438800 7200 0 EET}
|
||||
{2156191200 10800 1 EEST}
|
||||
{2169493200 7200 0 EET}
|
||||
{2187640800 10800 1 EEST}
|
||||
{2200942800 7200 0 EET}
|
||||
{2219090400 10800 1 EEST}
|
||||
{2232392400 7200 0 EET}
|
||||
{2250540000 10800 1 EEST}
|
||||
{2263842000 7200 0 EET}
|
||||
{2281989600 10800 1 EEST}
|
||||
{2295291600 7200 0 EET}
|
||||
{2313439200 10800 1 EEST}
|
||||
{2326741200 7200 0 EET}
|
||||
{2345493600 10800 1 EEST}
|
||||
{2358795600 7200 0 EET}
|
||||
{2376943200 10800 1 EEST}
|
||||
{2390245200 7200 0 EET}
|
||||
{2408392800 10800 1 EEST}
|
||||
{2421694800 7200 0 EET}
|
||||
{2439842400 10800 1 EEST}
|
||||
{2453144400 7200 0 EET}
|
||||
{2471292000 10800 1 EEST}
|
||||
{2484594000 7200 0 EET}
|
||||
{2503346400 10800 1 EEST}
|
||||
{2516648400 7200 0 EET}
|
||||
{2534796000 10800 1 EEST}
|
||||
{2548098000 7200 0 EET}
|
||||
{2566245600 10800 1 EEST}
|
||||
{2579547600 7200 0 EET}
|
||||
{2597695200 10800 1 EEST}
|
||||
{2610997200 7200 0 EET}
|
||||
{2629144800 10800 1 EEST}
|
||||
{2642446800 7200 0 EET}
|
||||
{2660594400 10800 1 EEST}
|
||||
{2673896400 7200 0 EET}
|
||||
{2692648800 10800 1 EEST}
|
||||
{2705950800 7200 0 EET}
|
||||
{2724098400 10800 1 EEST}
|
||||
{2737400400 7200 0 EET}
|
||||
{2755548000 10800 1 EEST}
|
||||
{2768850000 7200 0 EET}
|
||||
{2786997600 10800 1 EEST}
|
||||
{2800299600 7200 0 EET}
|
||||
{2818447200 10800 1 EEST}
|
||||
{2831749200 7200 0 EET}
|
||||
{2850501600 10800 1 EEST}
|
||||
{2863803600 7200 0 EET}
|
||||
{2881951200 10800 1 EEST}
|
||||
{2895253200 7200 0 EET}
|
||||
{2913400800 10800 1 EEST}
|
||||
{2926702800 7200 0 EET}
|
||||
{2944850400 10800 1 EEST}
|
||||
{2958152400 7200 0 EET}
|
||||
{2976300000 10800 1 EEST}
|
||||
{2989602000 7200 0 EET}
|
||||
{3007749600 10800 1 EEST}
|
||||
{3021051600 7200 0 EET}
|
||||
{3039804000 10800 1 EEST}
|
||||
{3053106000 7200 0 EET}
|
||||
{3071253600 10800 1 EEST}
|
||||
{3084555600 7200 0 EET}
|
||||
{3102703200 10800 1 EEST}
|
||||
{3116005200 7200 0 EET}
|
||||
{3134152800 10800 1 EEST}
|
||||
{3147454800 7200 0 EET}
|
||||
{3165602400 10800 1 EEST}
|
||||
{3178904400 7200 0 EET}
|
||||
{3197052000 10800 1 EEST}
|
||||
{3210354000 7200 0 EET}
|
||||
{3229106400 10800 1 EEST}
|
||||
{3242408400 7200 0 EET}
|
||||
{3260556000 10800 1 EEST}
|
||||
{3273858000 7200 0 EET}
|
||||
{3292005600 10800 1 EEST}
|
||||
{3305307600 7200 0 EET}
|
||||
{3323455200 10800 1 EEST}
|
||||
{3336757200 7200 0 EET}
|
||||
{3354904800 10800 1 EEST}
|
||||
{3368206800 7200 0 EET}
|
||||
{3386959200 10800 1 EEST}
|
||||
{3400261200 7200 0 EET}
|
||||
{3418408800 10800 1 EEST}
|
||||
{3431710800 7200 0 EET}
|
||||
{3449858400 10800 1 EEST}
|
||||
{3463160400 7200 0 EET}
|
||||
{3481308000 10800 1 EEST}
|
||||
{3494610000 7200 0 EET}
|
||||
{3512757600 10800 1 EEST}
|
||||
{3526059600 7200 0 EET}
|
||||
{3544207200 10800 1 EEST}
|
||||
{3557509200 7200 0 EET}
|
||||
{3576261600 10800 1 EEST}
|
||||
{3589563600 7200 0 EET}
|
||||
{3607711200 10800 1 EEST}
|
||||
{3621013200 7200 0 EET}
|
||||
{3639160800 10800 1 EEST}
|
||||
{3652462800 7200 0 EET}
|
||||
{3670610400 10800 1 EEST}
|
||||
{3683912400 7200 0 EET}
|
||||
{3702060000 10800 1 EEST}
|
||||
{3715362000 7200 0 EET}
|
||||
{3734114400 10800 1 EEST}
|
||||
{3747416400 7200 0 EET}
|
||||
{3765564000 10800 1 EEST}
|
||||
{3778866000 7200 0 EET}
|
||||
{3797013600 10800 1 EEST}
|
||||
{3810315600 7200 0 EET}
|
||||
{3828463200 10800 1 EEST}
|
||||
{3841765200 7200 0 EET}
|
||||
{3859912800 10800 1 EEST}
|
||||
{3873214800 7200 0 EET}
|
||||
{3891362400 10800 1 EEST}
|
||||
{3904664400 7200 0 EET}
|
||||
{3923416800 10800 1 EEST}
|
||||
{3936718800 7200 0 EET}
|
||||
{3954866400 10800 1 EEST}
|
||||
{3968168400 7200 0 EET}
|
||||
{3986316000 10800 1 EEST}
|
||||
{3999618000 7200 0 EET}
|
||||
{4017765600 10800 1 EEST}
|
||||
{4031067600 7200 0 EET}
|
||||
{4049215200 10800 1 EEST}
|
||||
{4062517200 7200 0 EET}
|
||||
{4080664800 10800 1 EEST}
|
||||
{4093966800 7200 0 EET}
|
||||
}
|
||||
|
||||
+233
-233
@@ -40,237 +40,237 @@ set TZData(:America/Adak) {
|
||||
{388587600 -36000 1 BDT}
|
||||
{404913600 -39600 0 BST}
|
||||
{420037200 -36000 1 BDT}
|
||||
{439034400 -36000 0 HAST}
|
||||
{452088000 -32400 1 HADT}
|
||||
{467809200 -36000 0 HAST}
|
||||
{483537600 -32400 1 HADT}
|
||||
{499258800 -36000 0 HAST}
|
||||
{514987200 -32400 1 HADT}
|
||||
{530708400 -36000 0 HAST}
|
||||
{544622400 -32400 1 HADT}
|
||||
{562158000 -36000 0 HAST}
|
||||
{576072000 -32400 1 HADT}
|
||||
{594212400 -36000 0 HAST}
|
||||
{607521600 -32400 1 HADT}
|
||||
{625662000 -36000 0 HAST}
|
||||
{638971200 -32400 1 HADT}
|
||||
{657111600 -36000 0 HAST}
|
||||
{671025600 -32400 1 HADT}
|
||||
{688561200 -36000 0 HAST}
|
||||
{702475200 -32400 1 HADT}
|
||||
{720010800 -36000 0 HAST}
|
||||
{733924800 -32400 1 HADT}
|
||||
{752065200 -36000 0 HAST}
|
||||
{765374400 -32400 1 HADT}
|
||||
{783514800 -36000 0 HAST}
|
||||
{796824000 -32400 1 HADT}
|
||||
{814964400 -36000 0 HAST}
|
||||
{828878400 -32400 1 HADT}
|
||||
{846414000 -36000 0 HAST}
|
||||
{860328000 -32400 1 HADT}
|
||||
{877863600 -36000 0 HAST}
|
||||
{891777600 -32400 1 HADT}
|
||||
{909313200 -36000 0 HAST}
|
||||
{923227200 -32400 1 HADT}
|
||||
{941367600 -36000 0 HAST}
|
||||
{954676800 -32400 1 HADT}
|
||||
{972817200 -36000 0 HAST}
|
||||
{986126400 -32400 1 HADT}
|
||||
{1004266800 -36000 0 HAST}
|
||||
{1018180800 -32400 1 HADT}
|
||||
{1035716400 -36000 0 HAST}
|
||||
{1049630400 -32400 1 HADT}
|
||||
{1067166000 -36000 0 HAST}
|
||||
{1081080000 -32400 1 HADT}
|
||||
{1099220400 -36000 0 HAST}
|
||||
{1112529600 -32400 1 HADT}
|
||||
{1130670000 -36000 0 HAST}
|
||||
{1143979200 -32400 1 HADT}
|
||||
{1162119600 -36000 0 HAST}
|
||||
{1173614400 -32400 1 HADT}
|
||||
{1194174000 -36000 0 HAST}
|
||||
{1205064000 -32400 1 HADT}
|
||||
{1225623600 -36000 0 HAST}
|
||||
{1236513600 -32400 1 HADT}
|
||||
{1257073200 -36000 0 HAST}
|
||||
{1268568000 -32400 1 HADT}
|
||||
{1289127600 -36000 0 HAST}
|
||||
{1300017600 -32400 1 HADT}
|
||||
{1320577200 -36000 0 HAST}
|
||||
{1331467200 -32400 1 HADT}
|
||||
{1352026800 -36000 0 HAST}
|
||||
{1362916800 -32400 1 HADT}
|
||||
{1383476400 -36000 0 HAST}
|
||||
{1394366400 -32400 1 HADT}
|
||||
{1414926000 -36000 0 HAST}
|
||||
{1425816000 -32400 1 HADT}
|
||||
{1446375600 -36000 0 HAST}
|
||||
{1457870400 -32400 1 HADT}
|
||||
{1478430000 -36000 0 HAST}
|
||||
{1489320000 -32400 1 HADT}
|
||||
{1509879600 -36000 0 HAST}
|
||||
{1520769600 -32400 1 HADT}
|
||||
{1541329200 -36000 0 HAST}
|
||||
{1552219200 -32400 1 HADT}
|
||||
{1572778800 -36000 0 HAST}
|
||||
{1583668800 -32400 1 HADT}
|
||||
{1604228400 -36000 0 HAST}
|
||||
{1615723200 -32400 1 HADT}
|
||||
{1636282800 -36000 0 HAST}
|
||||
{1647172800 -32400 1 HADT}
|
||||
{1667732400 -36000 0 HAST}
|
||||
{1678622400 -32400 1 HADT}
|
||||
{1699182000 -36000 0 HAST}
|
||||
{1710072000 -32400 1 HADT}
|
||||
{1730631600 -36000 0 HAST}
|
||||
{1741521600 -32400 1 HADT}
|
||||
{1762081200 -36000 0 HAST}
|
||||
{1772971200 -32400 1 HADT}
|
||||
{1793530800 -36000 0 HAST}
|
||||
{1805025600 -32400 1 HADT}
|
||||
{1825585200 -36000 0 HAST}
|
||||
{1836475200 -32400 1 HADT}
|
||||
{1857034800 -36000 0 HAST}
|
||||
{1867924800 -32400 1 HADT}
|
||||
{1888484400 -36000 0 HAST}
|
||||
{1899374400 -32400 1 HADT}
|
||||
{1919934000 -36000 0 HAST}
|
||||
{1930824000 -32400 1 HADT}
|
||||
{1951383600 -36000 0 HAST}
|
||||
{1962878400 -32400 1 HADT}
|
||||
{1983438000 -36000 0 HAST}
|
||||
{1994328000 -32400 1 HADT}
|
||||
{2014887600 -36000 0 HAST}
|
||||
{2025777600 -32400 1 HADT}
|
||||
{2046337200 -36000 0 HAST}
|
||||
{2057227200 -32400 1 HADT}
|
||||
{2077786800 -36000 0 HAST}
|
||||
{2088676800 -32400 1 HADT}
|
||||
{2109236400 -36000 0 HAST}
|
||||
{2120126400 -32400 1 HADT}
|
||||
{2140686000 -36000 0 HAST}
|
||||
{2152180800 -32400 1 HADT}
|
||||
{2172740400 -36000 0 HAST}
|
||||
{2183630400 -32400 1 HADT}
|
||||
{2204190000 -36000 0 HAST}
|
||||
{2215080000 -32400 1 HADT}
|
||||
{2235639600 -36000 0 HAST}
|
||||
{2246529600 -32400 1 HADT}
|
||||
{2267089200 -36000 0 HAST}
|
||||
{2277979200 -32400 1 HADT}
|
||||
{2298538800 -36000 0 HAST}
|
||||
{2309428800 -32400 1 HADT}
|
||||
{2329988400 -36000 0 HAST}
|
||||
{2341483200 -32400 1 HADT}
|
||||
{2362042800 -36000 0 HAST}
|
||||
{2372932800 -32400 1 HADT}
|
||||
{2393492400 -36000 0 HAST}
|
||||
{2404382400 -32400 1 HADT}
|
||||
{2424942000 -36000 0 HAST}
|
||||
{2435832000 -32400 1 HADT}
|
||||
{2456391600 -36000 0 HAST}
|
||||
{2467281600 -32400 1 HADT}
|
||||
{2487841200 -36000 0 HAST}
|
||||
{2499336000 -32400 1 HADT}
|
||||
{2519895600 -36000 0 HAST}
|
||||
{2530785600 -32400 1 HADT}
|
||||
{2551345200 -36000 0 HAST}
|
||||
{2562235200 -32400 1 HADT}
|
||||
{2582794800 -36000 0 HAST}
|
||||
{2593684800 -32400 1 HADT}
|
||||
{2614244400 -36000 0 HAST}
|
||||
{2625134400 -32400 1 HADT}
|
||||
{2645694000 -36000 0 HAST}
|
||||
{2656584000 -32400 1 HADT}
|
||||
{2677143600 -36000 0 HAST}
|
||||
{2688638400 -32400 1 HADT}
|
||||
{2709198000 -36000 0 HAST}
|
||||
{2720088000 -32400 1 HADT}
|
||||
{2740647600 -36000 0 HAST}
|
||||
{2751537600 -32400 1 HADT}
|
||||
{2772097200 -36000 0 HAST}
|
||||
{2782987200 -32400 1 HADT}
|
||||
{2803546800 -36000 0 HAST}
|
||||
{2814436800 -32400 1 HADT}
|
||||
{2834996400 -36000 0 HAST}
|
||||
{2846491200 -32400 1 HADT}
|
||||
{2867050800 -36000 0 HAST}
|
||||
{2877940800 -32400 1 HADT}
|
||||
{2898500400 -36000 0 HAST}
|
||||
{2909390400 -32400 1 HADT}
|
||||
{2929950000 -36000 0 HAST}
|
||||
{2940840000 -32400 1 HADT}
|
||||
{2961399600 -36000 0 HAST}
|
||||
{2972289600 -32400 1 HADT}
|
||||
{2992849200 -36000 0 HAST}
|
||||
{3003739200 -32400 1 HADT}
|
||||
{3024298800 -36000 0 HAST}
|
||||
{3035793600 -32400 1 HADT}
|
||||
{3056353200 -36000 0 HAST}
|
||||
{3067243200 -32400 1 HADT}
|
||||
{3087802800 -36000 0 HAST}
|
||||
{3098692800 -32400 1 HADT}
|
||||
{3119252400 -36000 0 HAST}
|
||||
{3130142400 -32400 1 HADT}
|
||||
{3150702000 -36000 0 HAST}
|
||||
{3161592000 -32400 1 HADT}
|
||||
{3182151600 -36000 0 HAST}
|
||||
{3193041600 -32400 1 HADT}
|
||||
{3213601200 -36000 0 HAST}
|
||||
{3225096000 -32400 1 HADT}
|
||||
{3245655600 -36000 0 HAST}
|
||||
{3256545600 -32400 1 HADT}
|
||||
{3277105200 -36000 0 HAST}
|
||||
{3287995200 -32400 1 HADT}
|
||||
{3308554800 -36000 0 HAST}
|
||||
{3319444800 -32400 1 HADT}
|
||||
{3340004400 -36000 0 HAST}
|
||||
{3350894400 -32400 1 HADT}
|
||||
{3371454000 -36000 0 HAST}
|
||||
{3382948800 -32400 1 HADT}
|
||||
{3403508400 -36000 0 HAST}
|
||||
{3414398400 -32400 1 HADT}
|
||||
{3434958000 -36000 0 HAST}
|
||||
{3445848000 -32400 1 HADT}
|
||||
{3466407600 -36000 0 HAST}
|
||||
{3477297600 -32400 1 HADT}
|
||||
{3497857200 -36000 0 HAST}
|
||||
{3508747200 -32400 1 HADT}
|
||||
{3529306800 -36000 0 HAST}
|
||||
{3540196800 -32400 1 HADT}
|
||||
{3560756400 -36000 0 HAST}
|
||||
{3572251200 -32400 1 HADT}
|
||||
{3592810800 -36000 0 HAST}
|
||||
{3603700800 -32400 1 HADT}
|
||||
{3624260400 -36000 0 HAST}
|
||||
{3635150400 -32400 1 HADT}
|
||||
{3655710000 -36000 0 HAST}
|
||||
{3666600000 -32400 1 HADT}
|
||||
{3687159600 -36000 0 HAST}
|
||||
{3698049600 -32400 1 HADT}
|
||||
{3718609200 -36000 0 HAST}
|
||||
{3730104000 -32400 1 HADT}
|
||||
{3750663600 -36000 0 HAST}
|
||||
{3761553600 -32400 1 HADT}
|
||||
{3782113200 -36000 0 HAST}
|
||||
{3793003200 -32400 1 HADT}
|
||||
{3813562800 -36000 0 HAST}
|
||||
{3824452800 -32400 1 HADT}
|
||||
{3845012400 -36000 0 HAST}
|
||||
{3855902400 -32400 1 HADT}
|
||||
{3876462000 -36000 0 HAST}
|
||||
{3887352000 -32400 1 HADT}
|
||||
{3907911600 -36000 0 HAST}
|
||||
{3919406400 -32400 1 HADT}
|
||||
{3939966000 -36000 0 HAST}
|
||||
{3950856000 -32400 1 HADT}
|
||||
{3971415600 -36000 0 HAST}
|
||||
{3982305600 -32400 1 HADT}
|
||||
{4002865200 -36000 0 HAST}
|
||||
{4013755200 -32400 1 HADT}
|
||||
{4034314800 -36000 0 HAST}
|
||||
{4045204800 -32400 1 HADT}
|
||||
{4065764400 -36000 0 HAST}
|
||||
{4076654400 -32400 1 HADT}
|
||||
{4097214000 -36000 0 HAST}
|
||||
{439034400 -36000 0 HST}
|
||||
{452088000 -32400 1 HDT}
|
||||
{467809200 -36000 0 HST}
|
||||
{483537600 -32400 1 HDT}
|
||||
{499258800 -36000 0 HST}
|
||||
{514987200 -32400 1 HDT}
|
||||
{530708400 -36000 0 HST}
|
||||
{544622400 -32400 1 HDT}
|
||||
{562158000 -36000 0 HST}
|
||||
{576072000 -32400 1 HDT}
|
||||
{594212400 -36000 0 HST}
|
||||
{607521600 -32400 1 HDT}
|
||||
{625662000 -36000 0 HST}
|
||||
{638971200 -32400 1 HDT}
|
||||
{657111600 -36000 0 HST}
|
||||
{671025600 -32400 1 HDT}
|
||||
{688561200 -36000 0 HST}
|
||||
{702475200 -32400 1 HDT}
|
||||
{720010800 -36000 0 HST}
|
||||
{733924800 -32400 1 HDT}
|
||||
{752065200 -36000 0 HST}
|
||||
{765374400 -32400 1 HDT}
|
||||
{783514800 -36000 0 HST}
|
||||
{796824000 -32400 1 HDT}
|
||||
{814964400 -36000 0 HST}
|
||||
{828878400 -32400 1 HDT}
|
||||
{846414000 -36000 0 HST}
|
||||
{860328000 -32400 1 HDT}
|
||||
{877863600 -36000 0 HST}
|
||||
{891777600 -32400 1 HDT}
|
||||
{909313200 -36000 0 HST}
|
||||
{923227200 -32400 1 HDT}
|
||||
{941367600 -36000 0 HST}
|
||||
{954676800 -32400 1 HDT}
|
||||
{972817200 -36000 0 HST}
|
||||
{986126400 -32400 1 HDT}
|
||||
{1004266800 -36000 0 HST}
|
||||
{1018180800 -32400 1 HDT}
|
||||
{1035716400 -36000 0 HST}
|
||||
{1049630400 -32400 1 HDT}
|
||||
{1067166000 -36000 0 HST}
|
||||
{1081080000 -32400 1 HDT}
|
||||
{1099220400 -36000 0 HST}
|
||||
{1112529600 -32400 1 HDT}
|
||||
{1130670000 -36000 0 HST}
|
||||
{1143979200 -32400 1 HDT}
|
||||
{1162119600 -36000 0 HST}
|
||||
{1173614400 -32400 1 HDT}
|
||||
{1194174000 -36000 0 HST}
|
||||
{1205064000 -32400 1 HDT}
|
||||
{1225623600 -36000 0 HST}
|
||||
{1236513600 -32400 1 HDT}
|
||||
{1257073200 -36000 0 HST}
|
||||
{1268568000 -32400 1 HDT}
|
||||
{1289127600 -36000 0 HST}
|
||||
{1300017600 -32400 1 HDT}
|
||||
{1320577200 -36000 0 HST}
|
||||
{1331467200 -32400 1 HDT}
|
||||
{1352026800 -36000 0 HST}
|
||||
{1362916800 -32400 1 HDT}
|
||||
{1383476400 -36000 0 HST}
|
||||
{1394366400 -32400 1 HDT}
|
||||
{1414926000 -36000 0 HST}
|
||||
{1425816000 -32400 1 HDT}
|
||||
{1446375600 -36000 0 HST}
|
||||
{1457870400 -32400 1 HDT}
|
||||
{1478430000 -36000 0 HST}
|
||||
{1489320000 -32400 1 HDT}
|
||||
{1509879600 -36000 0 HST}
|
||||
{1520769600 -32400 1 HDT}
|
||||
{1541329200 -36000 0 HST}
|
||||
{1552219200 -32400 1 HDT}
|
||||
{1572778800 -36000 0 HST}
|
||||
{1583668800 -32400 1 HDT}
|
||||
{1604228400 -36000 0 HST}
|
||||
{1615723200 -32400 1 HDT}
|
||||
{1636282800 -36000 0 HST}
|
||||
{1647172800 -32400 1 HDT}
|
||||
{1667732400 -36000 0 HST}
|
||||
{1678622400 -32400 1 HDT}
|
||||
{1699182000 -36000 0 HST}
|
||||
{1710072000 -32400 1 HDT}
|
||||
{1730631600 -36000 0 HST}
|
||||
{1741521600 -32400 1 HDT}
|
||||
{1762081200 -36000 0 HST}
|
||||
{1772971200 -32400 1 HDT}
|
||||
{1793530800 -36000 0 HST}
|
||||
{1805025600 -32400 1 HDT}
|
||||
{1825585200 -36000 0 HST}
|
||||
{1836475200 -32400 1 HDT}
|
||||
{1857034800 -36000 0 HST}
|
||||
{1867924800 -32400 1 HDT}
|
||||
{1888484400 -36000 0 HST}
|
||||
{1899374400 -32400 1 HDT}
|
||||
{1919934000 -36000 0 HST}
|
||||
{1930824000 -32400 1 HDT}
|
||||
{1951383600 -36000 0 HST}
|
||||
{1962878400 -32400 1 HDT}
|
||||
{1983438000 -36000 0 HST}
|
||||
{1994328000 -32400 1 HDT}
|
||||
{2014887600 -36000 0 HST}
|
||||
{2025777600 -32400 1 HDT}
|
||||
{2046337200 -36000 0 HST}
|
||||
{2057227200 -32400 1 HDT}
|
||||
{2077786800 -36000 0 HST}
|
||||
{2088676800 -32400 1 HDT}
|
||||
{2109236400 -36000 0 HST}
|
||||
{2120126400 -32400 1 HDT}
|
||||
{2140686000 -36000 0 HST}
|
||||
{2152180800 -32400 1 HDT}
|
||||
{2172740400 -36000 0 HST}
|
||||
{2183630400 -32400 1 HDT}
|
||||
{2204190000 -36000 0 HST}
|
||||
{2215080000 -32400 1 HDT}
|
||||
{2235639600 -36000 0 HST}
|
||||
{2246529600 -32400 1 HDT}
|
||||
{2267089200 -36000 0 HST}
|
||||
{2277979200 -32400 1 HDT}
|
||||
{2298538800 -36000 0 HST}
|
||||
{2309428800 -32400 1 HDT}
|
||||
{2329988400 -36000 0 HST}
|
||||
{2341483200 -32400 1 HDT}
|
||||
{2362042800 -36000 0 HST}
|
||||
{2372932800 -32400 1 HDT}
|
||||
{2393492400 -36000 0 HST}
|
||||
{2404382400 -32400 1 HDT}
|
||||
{2424942000 -36000 0 HST}
|
||||
{2435832000 -32400 1 HDT}
|
||||
{2456391600 -36000 0 HST}
|
||||
{2467281600 -32400 1 HDT}
|
||||
{2487841200 -36000 0 HST}
|
||||
{2499336000 -32400 1 HDT}
|
||||
{2519895600 -36000 0 HST}
|
||||
{2530785600 -32400 1 HDT}
|
||||
{2551345200 -36000 0 HST}
|
||||
{2562235200 -32400 1 HDT}
|
||||
{2582794800 -36000 0 HST}
|
||||
{2593684800 -32400 1 HDT}
|
||||
{2614244400 -36000 0 HST}
|
||||
{2625134400 -32400 1 HDT}
|
||||
{2645694000 -36000 0 HST}
|
||||
{2656584000 -32400 1 HDT}
|
||||
{2677143600 -36000 0 HST}
|
||||
{2688638400 -32400 1 HDT}
|
||||
{2709198000 -36000 0 HST}
|
||||
{2720088000 -32400 1 HDT}
|
||||
{2740647600 -36000 0 HST}
|
||||
{2751537600 -32400 1 HDT}
|
||||
{2772097200 -36000 0 HST}
|
||||
{2782987200 -32400 1 HDT}
|
||||
{2803546800 -36000 0 HST}
|
||||
{2814436800 -32400 1 HDT}
|
||||
{2834996400 -36000 0 HST}
|
||||
{2846491200 -32400 1 HDT}
|
||||
{2867050800 -36000 0 HST}
|
||||
{2877940800 -32400 1 HDT}
|
||||
{2898500400 -36000 0 HST}
|
||||
{2909390400 -32400 1 HDT}
|
||||
{2929950000 -36000 0 HST}
|
||||
{2940840000 -32400 1 HDT}
|
||||
{2961399600 -36000 0 HST}
|
||||
{2972289600 -32400 1 HDT}
|
||||
{2992849200 -36000 0 HST}
|
||||
{3003739200 -32400 1 HDT}
|
||||
{3024298800 -36000 0 HST}
|
||||
{3035793600 -32400 1 HDT}
|
||||
{3056353200 -36000 0 HST}
|
||||
{3067243200 -32400 1 HDT}
|
||||
{3087802800 -36000 0 HST}
|
||||
{3098692800 -32400 1 HDT}
|
||||
{3119252400 -36000 0 HST}
|
||||
{3130142400 -32400 1 HDT}
|
||||
{3150702000 -36000 0 HST}
|
||||
{3161592000 -32400 1 HDT}
|
||||
{3182151600 -36000 0 HST}
|
||||
{3193041600 -32400 1 HDT}
|
||||
{3213601200 -36000 0 HST}
|
||||
{3225096000 -32400 1 HDT}
|
||||
{3245655600 -36000 0 HST}
|
||||
{3256545600 -32400 1 HDT}
|
||||
{3277105200 -36000 0 HST}
|
||||
{3287995200 -32400 1 HDT}
|
||||
{3308554800 -36000 0 HST}
|
||||
{3319444800 -32400 1 HDT}
|
||||
{3340004400 -36000 0 HST}
|
||||
{3350894400 -32400 1 HDT}
|
||||
{3371454000 -36000 0 HST}
|
||||
{3382948800 -32400 1 HDT}
|
||||
{3403508400 -36000 0 HST}
|
||||
{3414398400 -32400 1 HDT}
|
||||
{3434958000 -36000 0 HST}
|
||||
{3445848000 -32400 1 HDT}
|
||||
{3466407600 -36000 0 HST}
|
||||
{3477297600 -32400 1 HDT}
|
||||
{3497857200 -36000 0 HST}
|
||||
{3508747200 -32400 1 HDT}
|
||||
{3529306800 -36000 0 HST}
|
||||
{3540196800 -32400 1 HDT}
|
||||
{3560756400 -36000 0 HST}
|
||||
{3572251200 -32400 1 HDT}
|
||||
{3592810800 -36000 0 HST}
|
||||
{3603700800 -32400 1 HDT}
|
||||
{3624260400 -36000 0 HST}
|
||||
{3635150400 -32400 1 HDT}
|
||||
{3655710000 -36000 0 HST}
|
||||
{3666600000 -32400 1 HDT}
|
||||
{3687159600 -36000 0 HST}
|
||||
{3698049600 -32400 1 HDT}
|
||||
{3718609200 -36000 0 HST}
|
||||
{3730104000 -32400 1 HDT}
|
||||
{3750663600 -36000 0 HST}
|
||||
{3761553600 -32400 1 HDT}
|
||||
{3782113200 -36000 0 HST}
|
||||
{3793003200 -32400 1 HDT}
|
||||
{3813562800 -36000 0 HST}
|
||||
{3824452800 -32400 1 HDT}
|
||||
{3845012400 -36000 0 HST}
|
||||
{3855902400 -32400 1 HDT}
|
||||
{3876462000 -36000 0 HST}
|
||||
{3887352000 -32400 1 HDT}
|
||||
{3907911600 -36000 0 HST}
|
||||
{3919406400 -32400 1 HDT}
|
||||
{3939966000 -36000 0 HST}
|
||||
{3950856000 -32400 1 HDT}
|
||||
{3971415600 -36000 0 HST}
|
||||
{3982305600 -32400 1 HDT}
|
||||
{4002865200 -36000 0 HST}
|
||||
{4013755200 -32400 1 HDT}
|
||||
{4034314800 -36000 0 HST}
|
||||
{4045204800 -32400 1 HDT}
|
||||
{4065764400 -36000 0 HST}
|
||||
{4076654400 -32400 1 HDT}
|
||||
{4097214000 -36000 0 HST}
|
||||
}
|
||||
|
||||
@@ -1,7 +1,5 @@
|
||||
# created by tools/tclZIC.tcl - do not edit
|
||||
|
||||
set TZData(:America/Antigua) {
|
||||
{-9223372036854775808 -14832 0 LMT}
|
||||
{-1825098768 -18000 0 EST}
|
||||
{-599598000 -14400 0 AST}
|
||||
if {![info exists TZData(America/Port_of_Spain)]} {
|
||||
LoadTimeZoneFile America/Port_of_Spain
|
||||
}
|
||||
set TZData(:America/Antigua) $TZData(:America/Port_of_Spain)
|
||||
|
||||
@@ -43,174 +43,5 @@ set TZData(:America/Cancun) {
|
||||
{1382857200 -21600 0 CST}
|
||||
{1396771200 -18000 1 CDT}
|
||||
{1414306800 -21600 0 CST}
|
||||
{1428220800 -18000 1 CDT}
|
||||
{1445756400 -21600 0 CST}
|
||||
{1459670400 -18000 1 CDT}
|
||||
{1477810800 -21600 0 CST}
|
||||
{1491120000 -18000 1 CDT}
|
||||
{1509260400 -21600 0 CST}
|
||||
{1522569600 -18000 1 CDT}
|
||||
{1540710000 -21600 0 CST}
|
||||
{1554624000 -18000 1 CDT}
|
||||
{1572159600 -21600 0 CST}
|
||||
{1586073600 -18000 1 CDT}
|
||||
{1603609200 -21600 0 CST}
|
||||
{1617523200 -18000 1 CDT}
|
||||
{1635663600 -21600 0 CST}
|
||||
{1648972800 -18000 1 CDT}
|
||||
{1667113200 -21600 0 CST}
|
||||
{1680422400 -18000 1 CDT}
|
||||
{1698562800 -21600 0 CST}
|
||||
{1712476800 -18000 1 CDT}
|
||||
{1730012400 -21600 0 CST}
|
||||
{1743926400 -18000 1 CDT}
|
||||
{1761462000 -21600 0 CST}
|
||||
{1775376000 -18000 1 CDT}
|
||||
{1792911600 -21600 0 CST}
|
||||
{1806825600 -18000 1 CDT}
|
||||
{1824966000 -21600 0 CST}
|
||||
{1838275200 -18000 1 CDT}
|
||||
{1856415600 -21600 0 CST}
|
||||
{1869724800 -18000 1 CDT}
|
||||
{1887865200 -21600 0 CST}
|
||||
{1901779200 -18000 1 CDT}
|
||||
{1919314800 -21600 0 CST}
|
||||
{1933228800 -18000 1 CDT}
|
||||
{1950764400 -21600 0 CST}
|
||||
{1964678400 -18000 1 CDT}
|
||||
{1982818800 -21600 0 CST}
|
||||
{1996128000 -18000 1 CDT}
|
||||
{2014268400 -21600 0 CST}
|
||||
{2027577600 -18000 1 CDT}
|
||||
{2045718000 -21600 0 CST}
|
||||
{2059027200 -18000 1 CDT}
|
||||
{2077167600 -21600 0 CST}
|
||||
{2091081600 -18000 1 CDT}
|
||||
{2108617200 -21600 0 CST}
|
||||
{2122531200 -18000 1 CDT}
|
||||
{2140066800 -21600 0 CST}
|
||||
{2153980800 -18000 1 CDT}
|
||||
{2172121200 -21600 0 CST}
|
||||
{2185430400 -18000 1 CDT}
|
||||
{2203570800 -21600 0 CST}
|
||||
{2216880000 -18000 1 CDT}
|
||||
{2235020400 -21600 0 CST}
|
||||
{2248934400 -18000 1 CDT}
|
||||
{2266470000 -21600 0 CST}
|
||||
{2280384000 -18000 1 CDT}
|
||||
{2297919600 -21600 0 CST}
|
||||
{2311833600 -18000 1 CDT}
|
||||
{2329369200 -21600 0 CST}
|
||||
{2343283200 -18000 1 CDT}
|
||||
{2361423600 -21600 0 CST}
|
||||
{2374732800 -18000 1 CDT}
|
||||
{2392873200 -21600 0 CST}
|
||||
{2406182400 -18000 1 CDT}
|
||||
{2424322800 -21600 0 CST}
|
||||
{2438236800 -18000 1 CDT}
|
||||
{2455772400 -21600 0 CST}
|
||||
{2469686400 -18000 1 CDT}
|
||||
{2487222000 -21600 0 CST}
|
||||
{2501136000 -18000 1 CDT}
|
||||
{2519276400 -21600 0 CST}
|
||||
{2532585600 -18000 1 CDT}
|
||||
{2550726000 -21600 0 CST}
|
||||
{2564035200 -18000 1 CDT}
|
||||
{2582175600 -21600 0 CST}
|
||||
{2596089600 -18000 1 CDT}
|
||||
{2613625200 -21600 0 CST}
|
||||
{2627539200 -18000 1 CDT}
|
||||
{2645074800 -21600 0 CST}
|
||||
{2658988800 -18000 1 CDT}
|
||||
{2676524400 -21600 0 CST}
|
||||
{2690438400 -18000 1 CDT}
|
||||
{2708578800 -21600 0 CST}
|
||||
{2721888000 -18000 1 CDT}
|
||||
{2740028400 -21600 0 CST}
|
||||
{2753337600 -18000 1 CDT}
|
||||
{2771478000 -21600 0 CST}
|
||||
{2785392000 -18000 1 CDT}
|
||||
{2802927600 -21600 0 CST}
|
||||
{2816841600 -18000 1 CDT}
|
||||
{2834377200 -21600 0 CST}
|
||||
{2848291200 -18000 1 CDT}
|
||||
{2866431600 -21600 0 CST}
|
||||
{2879740800 -18000 1 CDT}
|
||||
{2897881200 -21600 0 CST}
|
||||
{2911190400 -18000 1 CDT}
|
||||
{2929330800 -21600 0 CST}
|
||||
{2942640000 -18000 1 CDT}
|
||||
{2960780400 -21600 0 CST}
|
||||
{2974694400 -18000 1 CDT}
|
||||
{2992230000 -21600 0 CST}
|
||||
{3006144000 -18000 1 CDT}
|
||||
{3023679600 -21600 0 CST}
|
||||
{3037593600 -18000 1 CDT}
|
||||
{3055734000 -21600 0 CST}
|
||||
{3069043200 -18000 1 CDT}
|
||||
{3087183600 -21600 0 CST}
|
||||
{3100492800 -18000 1 CDT}
|
||||
{3118633200 -21600 0 CST}
|
||||
{3132547200 -18000 1 CDT}
|
||||
{3150082800 -21600 0 CST}
|
||||
{3163996800 -18000 1 CDT}
|
||||
{3181532400 -21600 0 CST}
|
||||
{3195446400 -18000 1 CDT}
|
||||
{3212982000 -21600 0 CST}
|
||||
{3226896000 -18000 1 CDT}
|
||||
{3245036400 -21600 0 CST}
|
||||
{3258345600 -18000 1 CDT}
|
||||
{3276486000 -21600 0 CST}
|
||||
{3289795200 -18000 1 CDT}
|
||||
{3307935600 -21600 0 CST}
|
||||
{3321849600 -18000 1 CDT}
|
||||
{3339385200 -21600 0 CST}
|
||||
{3353299200 -18000 1 CDT}
|
||||
{3370834800 -21600 0 CST}
|
||||
{3384748800 -18000 1 CDT}
|
||||
{3402889200 -21600 0 CST}
|
||||
{3416198400 -18000 1 CDT}
|
||||
{3434338800 -21600 0 CST}
|
||||
{3447648000 -18000 1 CDT}
|
||||
{3465788400 -21600 0 CST}
|
||||
{3479702400 -18000 1 CDT}
|
||||
{3497238000 -21600 0 CST}
|
||||
{3511152000 -18000 1 CDT}
|
||||
{3528687600 -21600 0 CST}
|
||||
{3542601600 -18000 1 CDT}
|
||||
{3560137200 -21600 0 CST}
|
||||
{3574051200 -18000 1 CDT}
|
||||
{3592191600 -21600 0 CST}
|
||||
{3605500800 -18000 1 CDT}
|
||||
{3623641200 -21600 0 CST}
|
||||
{3636950400 -18000 1 CDT}
|
||||
{3655090800 -21600 0 CST}
|
||||
{3669004800 -18000 1 CDT}
|
||||
{3686540400 -21600 0 CST}
|
||||
{3700454400 -18000 1 CDT}
|
||||
{3717990000 -21600 0 CST}
|
||||
{3731904000 -18000 1 CDT}
|
||||
{3750044400 -21600 0 CST}
|
||||
{3763353600 -18000 1 CDT}
|
||||
{3781494000 -21600 0 CST}
|
||||
{3794803200 -18000 1 CDT}
|
||||
{3812943600 -21600 0 CST}
|
||||
{3826252800 -18000 1 CDT}
|
||||
{3844393200 -21600 0 CST}
|
||||
{3858307200 -18000 1 CDT}
|
||||
{3875842800 -21600 0 CST}
|
||||
{3889756800 -18000 1 CDT}
|
||||
{3907292400 -21600 0 CST}
|
||||
{3921206400 -18000 1 CDT}
|
||||
{3939346800 -21600 0 CST}
|
||||
{3952656000 -18000 1 CDT}
|
||||
{3970796400 -21600 0 CST}
|
||||
{3984105600 -18000 1 CDT}
|
||||
{4002246000 -21600 0 CST}
|
||||
{4016160000 -18000 1 CDT}
|
||||
{4033695600 -21600 0 CST}
|
||||
{4047609600 -18000 1 CDT}
|
||||
{4065145200 -21600 0 CST}
|
||||
{4079059200 -18000 1 CDT}
|
||||
{4096594800 -21600 0 CST}
|
||||
{1422777600 -18000 0 EST}
|
||||
}
|
||||
|
||||
@@ -1,7 +1,5 @@
|
||||
# created by tools/tclZIC.tcl - do not edit
|
||||
|
||||
set TZData(:America/Cayman) {
|
||||
{-9223372036854775808 -19532 0 LMT}
|
||||
{-2524502068 -18431 0 KMT}
|
||||
{-1827687169 -18000 0 EST}
|
||||
if {![info exists TZData(America/Panama)]} {
|
||||
LoadTimeZoneFile America/Panama
|
||||
}
|
||||
set TZData(:America/Cayman) $TZData(:America/Panama)
|
||||
|
||||
@@ -1,366 +1,5 @@
|
||||
# created by tools/tclZIC.tcl - do not edit
|
||||
|
||||
set TZData(:America/Montreal) {
|
||||
{-9223372036854775808 -17656 0 LMT}
|
||||
{-2713892744 -18000 0 EST}
|
||||
{-1665334800 -14400 1 EDT}
|
||||
{-1662753600 -18000 0 EST}
|
||||
{-1640977200 -18000 0 EST}
|
||||
{-1632070800 -14400 1 EDT}
|
||||
{-1615140000 -18000 0 EST}
|
||||
{-1609441200 -18000 0 EST}
|
||||
{-1601742600 -14400 1 EDT}
|
||||
{-1583775000 -18000 0 EST}
|
||||
{-1567355400 -14400 1 EDT}
|
||||
{-1554053400 -18000 0 EST}
|
||||
{-1535907600 -14400 1 EDT}
|
||||
{-1522603800 -18000 0 EST}
|
||||
{-1504458000 -14400 1 EDT}
|
||||
{-1491154200 -18000 0 EST}
|
||||
{-1439830800 -14400 1 EDT}
|
||||
{-1428255000 -18000 0 EST}
|
||||
{-1409504400 -14400 1 EDT}
|
||||
{-1396805400 -18000 0 EST}
|
||||
{-1378054800 -14400 1 EDT}
|
||||
{-1365355800 -18000 0 EST}
|
||||
{-1346612400 -14400 1 EDT}
|
||||
{-1333915200 -18000 0 EST}
|
||||
{-1315162800 -14400 1 EDT}
|
||||
{-1301860800 -18000 0 EST}
|
||||
{-1283713200 -14400 1 EDT}
|
||||
{-1270411200 -18000 0 EST}
|
||||
{-1252263600 -14400 1 EDT}
|
||||
{-1238961600 -18000 0 EST}
|
||||
{-1220814000 -14400 1 EDT}
|
||||
{-1207512000 -18000 0 EST}
|
||||
{-1188759600 -14400 1 EDT}
|
||||
{-1176062400 -18000 0 EST}
|
||||
{-1157310000 -14400 1 EDT}
|
||||
{-1144008000 -18000 0 EST}
|
||||
{-1125860400 -14400 1 EDT}
|
||||
{-1112558400 -18000 0 EST}
|
||||
{-1094410800 -14400 1 EDT}
|
||||
{-1081108800 -18000 0 EST}
|
||||
{-1062961200 -14400 1 EDT}
|
||||
{-1049659200 -18000 0 EST}
|
||||
{-1031511600 -14400 1 EDT}
|
||||
{-1018209600 -18000 0 EST}
|
||||
{-1000062000 -14400 1 EDT}
|
||||
{-986760000 -18000 0 EST}
|
||||
{-968007600 -14400 1 EDT}
|
||||
{-955310400 -18000 0 EST}
|
||||
{-936558000 -14400 1 EDT}
|
||||
{-880218000 -14400 0 EWT}
|
||||
{-769395600 -14400 1 EPT}
|
||||
{-765396000 -18000 0 EST}
|
||||
{-757364400 -18000 0 EST}
|
||||
{-747248400 -14400 1 EDT}
|
||||
{-733946400 -18000 0 EST}
|
||||
{-715798800 -14400 1 EDT}
|
||||
{-702496800 -18000 0 EST}
|
||||
{-684349200 -14400 1 EDT}
|
||||
{-671047200 -18000 0 EST}
|
||||
{-652899600 -14400 1 EDT}
|
||||
{-636573600 -18000 0 EST}
|
||||
{-620845200 -14400 1 EDT}
|
||||
{-605124000 -18000 0 EST}
|
||||
{-589395600 -14400 1 EDT}
|
||||
{-576093600 -18000 0 EST}
|
||||
{-557946000 -14400 1 EDT}
|
||||
{-544644000 -18000 0 EST}
|
||||
{-526496400 -14400 1 EDT}
|
||||
{-513194400 -18000 0 EST}
|
||||
{-495046800 -14400 1 EDT}
|
||||
{-481744800 -18000 0 EST}
|
||||
{-463597200 -14400 1 EDT}
|
||||
{-450295200 -18000 0 EST}
|
||||
{-431542800 -14400 1 EDT}
|
||||
{-418240800 -18000 0 EST}
|
||||
{-400093200 -14400 1 EDT}
|
||||
{-384372000 -18000 0 EST}
|
||||
{-368643600 -14400 1 EDT}
|
||||
{-352922400 -18000 0 EST}
|
||||
{-337194000 -14400 1 EDT}
|
||||
{-321472800 -18000 0 EST}
|
||||
{-305744400 -14400 1 EDT}
|
||||
{-289418400 -18000 0 EST}
|
||||
{-273690000 -14400 1 EDT}
|
||||
{-257968800 -18000 0 EST}
|
||||
{-242240400 -14400 1 EDT}
|
||||
{-226519200 -18000 0 EST}
|
||||
{-210790800 -14400 1 EDT}
|
||||
{-195069600 -18000 0 EST}
|
||||
{-179341200 -14400 1 EDT}
|
||||
{-163620000 -18000 0 EST}
|
||||
{-147891600 -14400 1 EDT}
|
||||
{-131565600 -18000 0 EST}
|
||||
{-116442000 -14400 1 EDT}
|
||||
{-100116000 -18000 0 EST}
|
||||
{-84387600 -14400 1 EDT}
|
||||
{-68666400 -18000 0 EST}
|
||||
{-52938000 -14400 1 EDT}
|
||||
{-37216800 -18000 0 EST}
|
||||
{-21488400 -14400 1 EDT}
|
||||
{-5767200 -18000 0 EST}
|
||||
{9961200 -14400 1 EDT}
|
||||
{25682400 -18000 0 EST}
|
||||
{41410800 -14400 1 EDT}
|
||||
{57736800 -18000 0 EST}
|
||||
{73465200 -14400 1 EDT}
|
||||
{89186400 -18000 0 EST}
|
||||
{104914800 -14400 1 EDT}
|
||||
{120636000 -18000 0 EST}
|
||||
{126248400 -18000 0 EST}
|
||||
{136364400 -14400 1 EDT}
|
||||
{152085600 -18000 0 EST}
|
||||
{167814000 -14400 1 EDT}
|
||||
{183535200 -18000 0 EST}
|
||||
{199263600 -14400 1 EDT}
|
||||
{215589600 -18000 0 EST}
|
||||
{230713200 -14400 1 EDT}
|
||||
{247039200 -18000 0 EST}
|
||||
{262767600 -14400 1 EDT}
|
||||
{278488800 -18000 0 EST}
|
||||
{294217200 -14400 1 EDT}
|
||||
{309938400 -18000 0 EST}
|
||||
{325666800 -14400 1 EDT}
|
||||
{341388000 -18000 0 EST}
|
||||
{357116400 -14400 1 EDT}
|
||||
{372837600 -18000 0 EST}
|
||||
{388566000 -14400 1 EDT}
|
||||
{404892000 -18000 0 EST}
|
||||
{420015600 -14400 1 EDT}
|
||||
{436341600 -18000 0 EST}
|
||||
{452070000 -14400 1 EDT}
|
||||
{467791200 -18000 0 EST}
|
||||
{483519600 -14400 1 EDT}
|
||||
{499240800 -18000 0 EST}
|
||||
{514969200 -14400 1 EDT}
|
||||
{530690400 -18000 0 EST}
|
||||
{544604400 -14400 1 EDT}
|
||||
{562140000 -18000 0 EST}
|
||||
{576054000 -14400 1 EDT}
|
||||
{594194400 -18000 0 EST}
|
||||
{607503600 -14400 1 EDT}
|
||||
{625644000 -18000 0 EST}
|
||||
{638953200 -14400 1 EDT}
|
||||
{657093600 -18000 0 EST}
|
||||
{671007600 -14400 1 EDT}
|
||||
{688543200 -18000 0 EST}
|
||||
{702457200 -14400 1 EDT}
|
||||
{719992800 -18000 0 EST}
|
||||
{733906800 -14400 1 EDT}
|
||||
{752047200 -18000 0 EST}
|
||||
{765356400 -14400 1 EDT}
|
||||
{783496800 -18000 0 EST}
|
||||
{796806000 -14400 1 EDT}
|
||||
{814946400 -18000 0 EST}
|
||||
{828860400 -14400 1 EDT}
|
||||
{846396000 -18000 0 EST}
|
||||
{860310000 -14400 1 EDT}
|
||||
{877845600 -18000 0 EST}
|
||||
{891759600 -14400 1 EDT}
|
||||
{909295200 -18000 0 EST}
|
||||
{923209200 -14400 1 EDT}
|
||||
{941349600 -18000 0 EST}
|
||||
{954658800 -14400 1 EDT}
|
||||
{972799200 -18000 0 EST}
|
||||
{986108400 -14400 1 EDT}
|
||||
{1004248800 -18000 0 EST}
|
||||
{1018162800 -14400 1 EDT}
|
||||
{1035698400 -18000 0 EST}
|
||||
{1049612400 -14400 1 EDT}
|
||||
{1067148000 -18000 0 EST}
|
||||
{1081062000 -14400 1 EDT}
|
||||
{1099202400 -18000 0 EST}
|
||||
{1112511600 -14400 1 EDT}
|
||||
{1130652000 -18000 0 EST}
|
||||
{1143961200 -14400 1 EDT}
|
||||
{1162101600 -18000 0 EST}
|
||||
{1173596400 -14400 1 EDT}
|
||||
{1194156000 -18000 0 EST}
|
||||
{1205046000 -14400 1 EDT}
|
||||
{1225605600 -18000 0 EST}
|
||||
{1236495600 -14400 1 EDT}
|
||||
{1257055200 -18000 0 EST}
|
||||
{1268550000 -14400 1 EDT}
|
||||
{1289109600 -18000 0 EST}
|
||||
{1299999600 -14400 1 EDT}
|
||||
{1320559200 -18000 0 EST}
|
||||
{1331449200 -14400 1 EDT}
|
||||
{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}
|
||||
{1457852400 -14400 1 EDT}
|
||||
{1478412000 -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}
|
||||
if {![info exists TZData(America/Toronto)]} {
|
||||
LoadTimeZoneFile America/Toronto
|
||||
}
|
||||
set TZData(:America/Montreal) $TZData(:America/Toronto)
|
||||
|
||||
+10
-179
@@ -3,9 +3,9 @@
|
||||
set TZData(:America/Santiago) {
|
||||
{-9223372036854775808 -16966 0 LMT}
|
||||
{-2524504634 -16966 0 SMT}
|
||||
{-1893439034 -18000 0 CLT}
|
||||
{-1892661434 -18000 0 CLT}
|
||||
{-1688410800 -16966 0 SMT}
|
||||
{-1619983034 -14400 0 CLT}
|
||||
{-1619205434 -14400 0 CLT}
|
||||
{-1593806400 -16966 0 SMT}
|
||||
{-1335986234 -18000 0 CLT}
|
||||
{-1335985200 -14400 1 CLST}
|
||||
@@ -18,13 +18,13 @@ set TZData(:America/Santiago) {
|
||||
{-1222977600 -18000 0 CLT}
|
||||
{-1209754800 -14400 1 CLST}
|
||||
{-1191355200 -18000 0 CLT}
|
||||
{-1178132400 -14400 1 CLST}
|
||||
{-1178132400 -14400 0 CLT}
|
||||
{-870552000 -18000 0 CLT}
|
||||
{-865278000 -14400 1 CLST}
|
||||
{-740520000 -14400 1 CLST}
|
||||
{-736376400 -18000 0 CLT}
|
||||
{-865278000 -14400 0 CLT}
|
||||
{-740520000 -10800 1 CLST}
|
||||
{-736376400 -14400 0 CLT}
|
||||
{-718056000 -18000 0 CLT}
|
||||
{-713646000 -14400 0 CLT}
|
||||
{-713649600 -14400 0 CLT}
|
||||
{-36619200 -10800 1 CLST}
|
||||
{-23922000 -14400 0 CLT}
|
||||
{-3355200 -10800 1 CLST}
|
||||
@@ -65,10 +65,10 @@ set TZData(:America/Santiago) {
|
||||
{545194800 -14400 0 CLT}
|
||||
{560923200 -10800 1 CLST}
|
||||
{574225200 -14400 0 CLT}
|
||||
{591768000 -10800 1 CLST}
|
||||
{592372800 -10800 1 CLST}
|
||||
{605674800 -14400 0 CLT}
|
||||
{624427200 -10800 1 CLST}
|
||||
{637729200 -14400 0 CLT}
|
||||
{637124400 -14400 0 CLT}
|
||||
{653457600 -10800 1 CLST}
|
||||
{668574000 -14400 0 CLT}
|
||||
{687326400 -10800 1 CLST}
|
||||
@@ -118,174 +118,5 @@ set TZData(:America/Santiago) {
|
||||
{1378612800 -10800 1 CLST}
|
||||
{1398567600 -14400 0 CLT}
|
||||
{1410062400 -10800 1 CLST}
|
||||
{1430017200 -14400 0 CLT}
|
||||
{1441512000 -10800 1 CLST}
|
||||
{1461466800 -14400 0 CLT}
|
||||
{1472961600 -10800 1 CLST}
|
||||
{1492916400 -14400 0 CLT}
|
||||
{1504411200 -10800 1 CLST}
|
||||
{1524970800 -14400 0 CLT}
|
||||
{1535860800 -10800 1 CLST}
|
||||
{1556420400 -14400 0 CLT}
|
||||
{1567915200 -10800 1 CLST}
|
||||
{1587870000 -14400 0 CLT}
|
||||
{1599364800 -10800 1 CLST}
|
||||
{1619319600 -14400 0 CLT}
|
||||
{1630814400 -10800 1 CLST}
|
||||
{1650769200 -14400 0 CLT}
|
||||
{1662264000 -10800 1 CLST}
|
||||
{1682218800 -14400 0 CLT}
|
||||
{1693713600 -10800 1 CLST}
|
||||
{1714273200 -14400 0 CLT}
|
||||
{1725768000 -10800 1 CLST}
|
||||
{1745722800 -14400 0 CLT}
|
||||
{1757217600 -10800 1 CLST}
|
||||
{1777172400 -14400 0 CLT}
|
||||
{1788667200 -10800 1 CLST}
|
||||
{1808622000 -14400 0 CLT}
|
||||
{1820116800 -10800 1 CLST}
|
||||
{1840071600 -14400 0 CLT}
|
||||
{1851566400 -10800 1 CLST}
|
||||
{1872126000 -14400 0 CLT}
|
||||
{1883016000 -10800 1 CLST}
|
||||
{1903575600 -14400 0 CLT}
|
||||
{1915070400 -10800 1 CLST}
|
||||
{1935025200 -14400 0 CLT}
|
||||
{1946520000 -10800 1 CLST}
|
||||
{1966474800 -14400 0 CLT}
|
||||
{1977969600 -10800 1 CLST}
|
||||
{1997924400 -14400 0 CLT}
|
||||
{2009419200 -10800 1 CLST}
|
||||
{2029374000 -14400 0 CLT}
|
||||
{2040868800 -10800 1 CLST}
|
||||
{2061428400 -14400 0 CLT}
|
||||
{2072318400 -10800 1 CLST}
|
||||
{2092878000 -14400 0 CLT}
|
||||
{2104372800 -10800 1 CLST}
|
||||
{2124327600 -14400 0 CLT}
|
||||
{2135822400 -10800 1 CLST}
|
||||
{2155777200 -14400 0 CLT}
|
||||
{2167272000 -10800 1 CLST}
|
||||
{2187226800 -14400 0 CLT}
|
||||
{2198721600 -10800 1 CLST}
|
||||
{2219281200 -14400 0 CLT}
|
||||
{2230171200 -10800 1 CLST}
|
||||
{2250730800 -14400 0 CLT}
|
||||
{2262225600 -10800 1 CLST}
|
||||
{2282180400 -14400 0 CLT}
|
||||
{2293675200 -10800 1 CLST}
|
||||
{2313630000 -14400 0 CLT}
|
||||
{2325124800 -10800 1 CLST}
|
||||
{2345079600 -14400 0 CLT}
|
||||
{2356574400 -10800 1 CLST}
|
||||
{2376529200 -14400 0 CLT}
|
||||
{2388024000 -10800 1 CLST}
|
||||
{2408583600 -14400 0 CLT}
|
||||
{2419473600 -10800 1 CLST}
|
||||
{2440033200 -14400 0 CLT}
|
||||
{2451528000 -10800 1 CLST}
|
||||
{2471482800 -14400 0 CLT}
|
||||
{2482977600 -10800 1 CLST}
|
||||
{2502932400 -14400 0 CLT}
|
||||
{2514427200 -10800 1 CLST}
|
||||
{2534382000 -14400 0 CLT}
|
||||
{2545876800 -10800 1 CLST}
|
||||
{2565831600 -14400 0 CLT}
|
||||
{2577326400 -10800 1 CLST}
|
||||
{2597886000 -14400 0 CLT}
|
||||
{2609380800 -10800 1 CLST}
|
||||
{2629335600 -14400 0 CLT}
|
||||
{2640830400 -10800 1 CLST}
|
||||
{2660785200 -14400 0 CLT}
|
||||
{2672280000 -10800 1 CLST}
|
||||
{2692234800 -14400 0 CLT}
|
||||
{2703729600 -10800 1 CLST}
|
||||
{2723684400 -14400 0 CLT}
|
||||
{2735179200 -10800 1 CLST}
|
||||
{2755738800 -14400 0 CLT}
|
||||
{2766628800 -10800 1 CLST}
|
||||
{2787188400 -14400 0 CLT}
|
||||
{2798683200 -10800 1 CLST}
|
||||
{2818638000 -14400 0 CLT}
|
||||
{2830132800 -10800 1 CLST}
|
||||
{2850087600 -14400 0 CLT}
|
||||
{2861582400 -10800 1 CLST}
|
||||
{2881537200 -14400 0 CLT}
|
||||
{2893032000 -10800 1 CLST}
|
||||
{2912986800 -14400 0 CLT}
|
||||
{2924481600 -10800 1 CLST}
|
||||
{2945041200 -14400 0 CLT}
|
||||
{2955931200 -10800 1 CLST}
|
||||
{2976490800 -14400 0 CLT}
|
||||
{2987985600 -10800 1 CLST}
|
||||
{3007940400 -14400 0 CLT}
|
||||
{3019435200 -10800 1 CLST}
|
||||
{3039390000 -14400 0 CLT}
|
||||
{3050884800 -10800 1 CLST}
|
||||
{3070839600 -14400 0 CLT}
|
||||
{3082334400 -10800 1 CLST}
|
||||
{3102894000 -14400 0 CLT}
|
||||
{3113784000 -10800 1 CLST}
|
||||
{3134343600 -14400 0 CLT}
|
||||
{3145838400 -10800 1 CLST}
|
||||
{3165793200 -14400 0 CLT}
|
||||
{3177288000 -10800 1 CLST}
|
||||
{3197242800 -14400 0 CLT}
|
||||
{3208737600 -10800 1 CLST}
|
||||
{3228692400 -14400 0 CLT}
|
||||
{3240187200 -10800 1 CLST}
|
||||
{3260142000 -14400 0 CLT}
|
||||
{3271636800 -10800 1 CLST}
|
||||
{3292196400 -14400 0 CLT}
|
||||
{3303086400 -10800 1 CLST}
|
||||
{3323646000 -14400 0 CLT}
|
||||
{3335140800 -10800 1 CLST}
|
||||
{3355095600 -14400 0 CLT}
|
||||
{3366590400 -10800 1 CLST}
|
||||
{3386545200 -14400 0 CLT}
|
||||
{3398040000 -10800 1 CLST}
|
||||
{3417994800 -14400 0 CLT}
|
||||
{3429489600 -10800 1 CLST}
|
||||
{3449444400 -14400 0 CLT}
|
||||
{3460939200 -10800 1 CLST}
|
||||
{3481498800 -14400 0 CLT}
|
||||
{3492993600 -10800 1 CLST}
|
||||
{3512948400 -14400 0 CLT}
|
||||
{3524443200 -10800 1 CLST}
|
||||
{3544398000 -14400 0 CLT}
|
||||
{3555892800 -10800 1 CLST}
|
||||
{3575847600 -14400 0 CLT}
|
||||
{3587342400 -10800 1 CLST}
|
||||
{3607297200 -14400 0 CLT}
|
||||
{3618792000 -10800 1 CLST}
|
||||
{3639351600 -14400 0 CLT}
|
||||
{3650241600 -10800 1 CLST}
|
||||
{3670801200 -14400 0 CLT}
|
||||
{3682296000 -10800 1 CLST}
|
||||
{3702250800 -14400 0 CLT}
|
||||
{3713745600 -10800 1 CLST}
|
||||
{3733700400 -14400 0 CLT}
|
||||
{3745195200 -10800 1 CLST}
|
||||
{3765150000 -14400 0 CLT}
|
||||
{3776644800 -10800 1 CLST}
|
||||
{3796599600 -14400 0 CLT}
|
||||
{3808094400 -10800 1 CLST}
|
||||
{3828654000 -14400 0 CLT}
|
||||
{3839544000 -10800 1 CLST}
|
||||
{3860103600 -14400 0 CLT}
|
||||
{3871598400 -10800 1 CLST}
|
||||
{3891553200 -14400 0 CLT}
|
||||
{3903048000 -10800 1 CLST}
|
||||
{3923002800 -14400 0 CLT}
|
||||
{3934497600 -10800 1 CLST}
|
||||
{3954452400 -14400 0 CLT}
|
||||
{3965947200 -10800 1 CLST}
|
||||
{3986506800 -14400 0 CLT}
|
||||
{3997396800 -10800 1 CLST}
|
||||
{4017956400 -14400 0 CLT}
|
||||
{4029451200 -10800 1 CLST}
|
||||
{4049406000 -14400 0 CLT}
|
||||
{4060900800 -10800 1 CLST}
|
||||
{4080855600 -14400 0 CLT}
|
||||
{4092350400 -10800 1 CLST}
|
||||
{1430017200 -10800 0 CLT}
|
||||
}
|
||||
|
||||
@@ -28,10 +28,10 @@ set TZData(:Antarctica/Palmer) {
|
||||
{545194800 -14400 0 CLT}
|
||||
{560923200 -10800 1 CLST}
|
||||
{574225200 -14400 0 CLT}
|
||||
{591768000 -10800 1 CLST}
|
||||
{592372800 -10800 1 CLST}
|
||||
{605674800 -14400 0 CLT}
|
||||
{624427200 -10800 1 CLST}
|
||||
{637729200 -14400 0 CLT}
|
||||
{637124400 -14400 0 CLT}
|
||||
{653457600 -10800 1 CLST}
|
||||
{668574000 -14400 0 CLT}
|
||||
{687326400 -10800 1 CLST}
|
||||
@@ -81,174 +81,5 @@ set TZData(:Antarctica/Palmer) {
|
||||
{1378612800 -10800 1 CLST}
|
||||
{1398567600 -14400 0 CLT}
|
||||
{1410062400 -10800 1 CLST}
|
||||
{1430017200 -14400 0 CLT}
|
||||
{1441512000 -10800 1 CLST}
|
||||
{1461466800 -14400 0 CLT}
|
||||
{1472961600 -10800 1 CLST}
|
||||
{1492916400 -14400 0 CLT}
|
||||
{1504411200 -10800 1 CLST}
|
||||
{1524970800 -14400 0 CLT}
|
||||
{1535860800 -10800 1 CLST}
|
||||
{1556420400 -14400 0 CLT}
|
||||
{1567915200 -10800 1 CLST}
|
||||
{1587870000 -14400 0 CLT}
|
||||
{1599364800 -10800 1 CLST}
|
||||
{1619319600 -14400 0 CLT}
|
||||
{1630814400 -10800 1 CLST}
|
||||
{1650769200 -14400 0 CLT}
|
||||
{1662264000 -10800 1 CLST}
|
||||
{1682218800 -14400 0 CLT}
|
||||
{1693713600 -10800 1 CLST}
|
||||
{1714273200 -14400 0 CLT}
|
||||
{1725768000 -10800 1 CLST}
|
||||
{1745722800 -14400 0 CLT}
|
||||
{1757217600 -10800 1 CLST}
|
||||
{1777172400 -14400 0 CLT}
|
||||
{1788667200 -10800 1 CLST}
|
||||
{1808622000 -14400 0 CLT}
|
||||
{1820116800 -10800 1 CLST}
|
||||
{1840071600 -14400 0 CLT}
|
||||
{1851566400 -10800 1 CLST}
|
||||
{1872126000 -14400 0 CLT}
|
||||
{1883016000 -10800 1 CLST}
|
||||
{1903575600 -14400 0 CLT}
|
||||
{1915070400 -10800 1 CLST}
|
||||
{1935025200 -14400 0 CLT}
|
||||
{1946520000 -10800 1 CLST}
|
||||
{1966474800 -14400 0 CLT}
|
||||
{1977969600 -10800 1 CLST}
|
||||
{1997924400 -14400 0 CLT}
|
||||
{2009419200 -10800 1 CLST}
|
||||
{2029374000 -14400 0 CLT}
|
||||
{2040868800 -10800 1 CLST}
|
||||
{2061428400 -14400 0 CLT}
|
||||
{2072318400 -10800 1 CLST}
|
||||
{2092878000 -14400 0 CLT}
|
||||
{2104372800 -10800 1 CLST}
|
||||
{2124327600 -14400 0 CLT}
|
||||
{2135822400 -10800 1 CLST}
|
||||
{2155777200 -14400 0 CLT}
|
||||
{2167272000 -10800 1 CLST}
|
||||
{2187226800 -14400 0 CLT}
|
||||
{2198721600 -10800 1 CLST}
|
||||
{2219281200 -14400 0 CLT}
|
||||
{2230171200 -10800 1 CLST}
|
||||
{2250730800 -14400 0 CLT}
|
||||
{2262225600 -10800 1 CLST}
|
||||
{2282180400 -14400 0 CLT}
|
||||
{2293675200 -10800 1 CLST}
|
||||
{2313630000 -14400 0 CLT}
|
||||
{2325124800 -10800 1 CLST}
|
||||
{2345079600 -14400 0 CLT}
|
||||
{2356574400 -10800 1 CLST}
|
||||
{2376529200 -14400 0 CLT}
|
||||
{2388024000 -10800 1 CLST}
|
||||
{2408583600 -14400 0 CLT}
|
||||
{2419473600 -10800 1 CLST}
|
||||
{2440033200 -14400 0 CLT}
|
||||
{2451528000 -10800 1 CLST}
|
||||
{2471482800 -14400 0 CLT}
|
||||
{2482977600 -10800 1 CLST}
|
||||
{2502932400 -14400 0 CLT}
|
||||
{2514427200 -10800 1 CLST}
|
||||
{2534382000 -14400 0 CLT}
|
||||
{2545876800 -10800 1 CLST}
|
||||
{2565831600 -14400 0 CLT}
|
||||
{2577326400 -10800 1 CLST}
|
||||
{2597886000 -14400 0 CLT}
|
||||
{2609380800 -10800 1 CLST}
|
||||
{2629335600 -14400 0 CLT}
|
||||
{2640830400 -10800 1 CLST}
|
||||
{2660785200 -14400 0 CLT}
|
||||
{2672280000 -10800 1 CLST}
|
||||
{2692234800 -14400 0 CLT}
|
||||
{2703729600 -10800 1 CLST}
|
||||
{2723684400 -14400 0 CLT}
|
||||
{2735179200 -10800 1 CLST}
|
||||
{2755738800 -14400 0 CLT}
|
||||
{2766628800 -10800 1 CLST}
|
||||
{2787188400 -14400 0 CLT}
|
||||
{2798683200 -10800 1 CLST}
|
||||
{2818638000 -14400 0 CLT}
|
||||
{2830132800 -10800 1 CLST}
|
||||
{2850087600 -14400 0 CLT}
|
||||
{2861582400 -10800 1 CLST}
|
||||
{2881537200 -14400 0 CLT}
|
||||
{2893032000 -10800 1 CLST}
|
||||
{2912986800 -14400 0 CLT}
|
||||
{2924481600 -10800 1 CLST}
|
||||
{2945041200 -14400 0 CLT}
|
||||
{2955931200 -10800 1 CLST}
|
||||
{2976490800 -14400 0 CLT}
|
||||
{2987985600 -10800 1 CLST}
|
||||
{3007940400 -14400 0 CLT}
|
||||
{3019435200 -10800 1 CLST}
|
||||
{3039390000 -14400 0 CLT}
|
||||
{3050884800 -10800 1 CLST}
|
||||
{3070839600 -14400 0 CLT}
|
||||
{3082334400 -10800 1 CLST}
|
||||
{3102894000 -14400 0 CLT}
|
||||
{3113784000 -10800 1 CLST}
|
||||
{3134343600 -14400 0 CLT}
|
||||
{3145838400 -10800 1 CLST}
|
||||
{3165793200 -14400 0 CLT}
|
||||
{3177288000 -10800 1 CLST}
|
||||
{3197242800 -14400 0 CLT}
|
||||
{3208737600 -10800 1 CLST}
|
||||
{3228692400 -14400 0 CLT}
|
||||
{3240187200 -10800 1 CLST}
|
||||
{3260142000 -14400 0 CLT}
|
||||
{3271636800 -10800 1 CLST}
|
||||
{3292196400 -14400 0 CLT}
|
||||
{3303086400 -10800 1 CLST}
|
||||
{3323646000 -14400 0 CLT}
|
||||
{3335140800 -10800 1 CLST}
|
||||
{3355095600 -14400 0 CLT}
|
||||
{3366590400 -10800 1 CLST}
|
||||
{3386545200 -14400 0 CLT}
|
||||
{3398040000 -10800 1 CLST}
|
||||
{3417994800 -14400 0 CLT}
|
||||
{3429489600 -10800 1 CLST}
|
||||
{3449444400 -14400 0 CLT}
|
||||
{3460939200 -10800 1 CLST}
|
||||
{3481498800 -14400 0 CLT}
|
||||
{3492993600 -10800 1 CLST}
|
||||
{3512948400 -14400 0 CLT}
|
||||
{3524443200 -10800 1 CLST}
|
||||
{3544398000 -14400 0 CLT}
|
||||
{3555892800 -10800 1 CLST}
|
||||
{3575847600 -14400 0 CLT}
|
||||
{3587342400 -10800 1 CLST}
|
||||
{3607297200 -14400 0 CLT}
|
||||
{3618792000 -10800 1 CLST}
|
||||
{3639351600 -14400 0 CLT}
|
||||
{3650241600 -10800 1 CLST}
|
||||
{3670801200 -14400 0 CLT}
|
||||
{3682296000 -10800 1 CLST}
|
||||
{3702250800 -14400 0 CLT}
|
||||
{3713745600 -10800 1 CLST}
|
||||
{3733700400 -14400 0 CLT}
|
||||
{3745195200 -10800 1 CLST}
|
||||
{3765150000 -14400 0 CLT}
|
||||
{3776644800 -10800 1 CLST}
|
||||
{3796599600 -14400 0 CLT}
|
||||
{3808094400 -10800 1 CLST}
|
||||
{3828654000 -14400 0 CLT}
|
||||
{3839544000 -10800 1 CLST}
|
||||
{3860103600 -14400 0 CLT}
|
||||
{3871598400 -10800 1 CLST}
|
||||
{3891553200 -14400 0 CLT}
|
||||
{3903048000 -10800 1 CLST}
|
||||
{3923002800 -14400 0 CLT}
|
||||
{3934497600 -10800 1 CLST}
|
||||
{3954452400 -14400 0 CLT}
|
||||
{3965947200 -10800 1 CLST}
|
||||
{3986506800 -14400 0 CLT}
|
||||
{3997396800 -10800 1 CLST}
|
||||
{4017956400 -14400 0 CLT}
|
||||
{4029451200 -10800 1 CLST}
|
||||
{4049406000 -14400 0 CLT}
|
||||
{4060900800 -10800 1 CLST}
|
||||
{4080855600 -14400 0 CLT}
|
||||
{4092350400 -10800 1 CLST}
|
||||
{1430017200 -10800 0 CLT}
|
||||
}
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
# created by tools/tclZIC.tcl - do not edit
|
||||
|
||||
set TZData(:Asia/Aden) {
|
||||
{-9223372036854775808 10794 0 LMT}
|
||||
{-631162794 10800 0 AST}
|
||||
if {![info exists TZData(Asia/Riyadh)]} {
|
||||
LoadTimeZoneFile Asia/Riyadh
|
||||
}
|
||||
set TZData(:Asia/Aden) $TZData(:Asia/Riyadh)
|
||||
|
||||
@@ -1,7 +1,5 @@
|
||||
# created by tools/tclZIC.tcl - do not edit
|
||||
|
||||
set TZData(:Asia/Bahrain) {
|
||||
{-9223372036854775808 12140 0 LMT}
|
||||
{-1577935340 14400 0 GST}
|
||||
{76190400 10800 0 AST}
|
||||
if {![info exists TZData(Asia/Qatar)]} {
|
||||
LoadTimeZoneFile Asia/Qatar
|
||||
}
|
||||
set TZData(:Asia/Bahrain) $TZData(:Asia/Qatar)
|
||||
|
||||
@@ -48,4 +48,175 @@ set TZData(:Asia/Choibalsan) {
|
||||
{1127491200 32400 0 CHOT}
|
||||
{1143219600 36000 1 CHOST}
|
||||
{1159545600 32400 0 CHOT}
|
||||
{1206889200 28800 0 CHOT}
|
||||
{1427479200 32400 1 CHOST}
|
||||
{1443193200 28800 0 CHOT}
|
||||
{1458928800 32400 1 CHOST}
|
||||
{1474642800 28800 0 CHOT}
|
||||
{1490378400 32400 1 CHOST}
|
||||
{1506697200 28800 0 CHOT}
|
||||
{1522432800 32400 1 CHOST}
|
||||
{1538146800 28800 0 CHOT}
|
||||
{1553882400 32400 1 CHOST}
|
||||
{1569596400 28800 0 CHOT}
|
||||
{1585332000 32400 1 CHOST}
|
||||
{1601046000 28800 0 CHOT}
|
||||
{1616781600 32400 1 CHOST}
|
||||
{1632495600 28800 0 CHOT}
|
||||
{1648231200 32400 1 CHOST}
|
||||
{1663945200 28800 0 CHOT}
|
||||
{1679680800 32400 1 CHOST}
|
||||
{1695999600 28800 0 CHOT}
|
||||
{1711735200 32400 1 CHOST}
|
||||
{1727449200 28800 0 CHOT}
|
||||
{1743184800 32400 1 CHOST}
|
||||
{1758898800 28800 0 CHOT}
|
||||
{1774634400 32400 1 CHOST}
|
||||
{1790348400 28800 0 CHOT}
|
||||
{1806084000 32400 1 CHOST}
|
||||
{1821798000 28800 0 CHOT}
|
||||
{1837533600 32400 1 CHOST}
|
||||
{1853852400 28800 0 CHOT}
|
||||
{1869588000 32400 1 CHOST}
|
||||
{1885302000 28800 0 CHOT}
|
||||
{1901037600 32400 1 CHOST}
|
||||
{1916751600 28800 0 CHOT}
|
||||
{1932487200 32400 1 CHOST}
|
||||
{1948201200 28800 0 CHOT}
|
||||
{1963936800 32400 1 CHOST}
|
||||
{1979650800 28800 0 CHOT}
|
||||
{1995386400 32400 1 CHOST}
|
||||
{2011100400 28800 0 CHOT}
|
||||
{2026836000 32400 1 CHOST}
|
||||
{2043154800 28800 0 CHOT}
|
||||
{2058890400 32400 1 CHOST}
|
||||
{2074604400 28800 0 CHOT}
|
||||
{2090340000 32400 1 CHOST}
|
||||
{2106054000 28800 0 CHOT}
|
||||
{2121789600 32400 1 CHOST}
|
||||
{2137503600 28800 0 CHOT}
|
||||
{2153239200 32400 1 CHOST}
|
||||
{2168953200 28800 0 CHOT}
|
||||
{2184688800 32400 1 CHOST}
|
||||
{2200402800 28800 0 CHOT}
|
||||
{2216743200 32400 1 CHOST}
|
||||
{2232457200 28800 0 CHOT}
|
||||
{2248192800 32400 1 CHOST}
|
||||
{2263906800 28800 0 CHOT}
|
||||
{2279642400 32400 1 CHOST}
|
||||
{2295356400 28800 0 CHOT}
|
||||
{2311092000 32400 1 CHOST}
|
||||
{2326806000 28800 0 CHOT}
|
||||
{2342541600 32400 1 CHOST}
|
||||
{2358255600 28800 0 CHOT}
|
||||
{2373991200 32400 1 CHOST}
|
||||
{2390310000 28800 0 CHOT}
|
||||
{2406045600 32400 1 CHOST}
|
||||
{2421759600 28800 0 CHOT}
|
||||
{2437495200 32400 1 CHOST}
|
||||
{2453209200 28800 0 CHOT}
|
||||
{2468944800 32400 1 CHOST}
|
||||
{2484658800 28800 0 CHOT}
|
||||
{2500394400 32400 1 CHOST}
|
||||
{2516108400 28800 0 CHOT}
|
||||
{2531844000 32400 1 CHOST}
|
||||
{2547558000 28800 0 CHOT}
|
||||
{2563293600 32400 1 CHOST}
|
||||
{2579612400 28800 0 CHOT}
|
||||
{2595348000 32400 1 CHOST}
|
||||
{2611062000 28800 0 CHOT}
|
||||
{2626797600 32400 1 CHOST}
|
||||
{2642511600 28800 0 CHOT}
|
||||
{2658247200 32400 1 CHOST}
|
||||
{2673961200 28800 0 CHOT}
|
||||
{2689696800 32400 1 CHOST}
|
||||
{2705410800 28800 0 CHOT}
|
||||
{2721146400 32400 1 CHOST}
|
||||
{2737465200 28800 0 CHOT}
|
||||
{2753200800 32400 1 CHOST}
|
||||
{2768914800 28800 0 CHOT}
|
||||
{2784650400 32400 1 CHOST}
|
||||
{2800364400 28800 0 CHOT}
|
||||
{2816100000 32400 1 CHOST}
|
||||
{2831814000 28800 0 CHOT}
|
||||
{2847549600 32400 1 CHOST}
|
||||
{2863263600 28800 0 CHOT}
|
||||
{2878999200 32400 1 CHOST}
|
||||
{2894713200 28800 0 CHOT}
|
||||
{2910448800 32400 1 CHOST}
|
||||
{2926767600 28800 0 CHOT}
|
||||
{2942503200 32400 1 CHOST}
|
||||
{2958217200 28800 0 CHOT}
|
||||
{2973952800 32400 1 CHOST}
|
||||
{2989666800 28800 0 CHOT}
|
||||
{3005402400 32400 1 CHOST}
|
||||
{3021116400 28800 0 CHOT}
|
||||
{3036852000 32400 1 CHOST}
|
||||
{3052566000 28800 0 CHOT}
|
||||
{3068301600 32400 1 CHOST}
|
||||
{3084015600 28800 0 CHOT}
|
||||
{3100356000 32400 1 CHOST}
|
||||
{3116070000 28800 0 CHOT}
|
||||
{3131805600 32400 1 CHOST}
|
||||
{3147519600 28800 0 CHOT}
|
||||
{3163255200 32400 1 CHOST}
|
||||
{3178969200 28800 0 CHOT}
|
||||
{3194704800 32400 1 CHOST}
|
||||
{3210418800 28800 0 CHOT}
|
||||
{3226154400 32400 1 CHOST}
|
||||
{3241868400 28800 0 CHOT}
|
||||
{3257604000 32400 1 CHOST}
|
||||
{3273922800 28800 0 CHOT}
|
||||
{3289658400 32400 1 CHOST}
|
||||
{3305372400 28800 0 CHOT}
|
||||
{3321108000 32400 1 CHOST}
|
||||
{3336822000 28800 0 CHOT}
|
||||
{3352557600 32400 1 CHOST}
|
||||
{3368271600 28800 0 CHOT}
|
||||
{3384007200 32400 1 CHOST}
|
||||
{3399721200 28800 0 CHOT}
|
||||
{3415456800 32400 1 CHOST}
|
||||
{3431170800 28800 0 CHOT}
|
||||
{3446906400 32400 1 CHOST}
|
||||
{3463225200 28800 0 CHOT}
|
||||
{3478960800 32400 1 CHOST}
|
||||
{3494674800 28800 0 CHOT}
|
||||
{3510410400 32400 1 CHOST}
|
||||
{3526124400 28800 0 CHOT}
|
||||
{3541860000 32400 1 CHOST}
|
||||
{3557574000 28800 0 CHOT}
|
||||
{3573309600 32400 1 CHOST}
|
||||
{3589023600 28800 0 CHOT}
|
||||
{3604759200 32400 1 CHOST}
|
||||
{3621078000 28800 0 CHOT}
|
||||
{3636813600 32400 1 CHOST}
|
||||
{3652527600 28800 0 CHOT}
|
||||
{3668263200 32400 1 CHOST}
|
||||
{3683977200 28800 0 CHOT}
|
||||
{3699712800 32400 1 CHOST}
|
||||
{3715426800 28800 0 CHOT}
|
||||
{3731162400 32400 1 CHOST}
|
||||
{3746876400 28800 0 CHOT}
|
||||
{3762612000 32400 1 CHOST}
|
||||
{3778326000 28800 0 CHOT}
|
||||
{3794061600 32400 1 CHOST}
|
||||
{3810380400 28800 0 CHOT}
|
||||
{3826116000 32400 1 CHOST}
|
||||
{3841830000 28800 0 CHOT}
|
||||
{3857565600 32400 1 CHOST}
|
||||
{3873279600 28800 0 CHOT}
|
||||
{3889015200 32400 1 CHOST}
|
||||
{3904729200 28800 0 CHOT}
|
||||
{3920464800 32400 1 CHOST}
|
||||
{3936178800 28800 0 CHOT}
|
||||
{3951914400 32400 1 CHOST}
|
||||
{3967628400 28800 0 CHOT}
|
||||
{3983968800 32400 1 CHOST}
|
||||
{3999682800 28800 0 CHOT}
|
||||
{4015418400 32400 1 CHOST}
|
||||
{4031132400 28800 0 CHOT}
|
||||
{4046868000 32400 1 CHOST}
|
||||
{4062582000 28800 0 CHOT}
|
||||
{4078317600 32400 1 CHOST}
|
||||
{4094031600 28800 0 CHOT}
|
||||
}
|
||||
|
||||
+171
-171
@@ -104,175 +104,175 @@ set TZData(:Asia/Gaza) {
|
||||
{1364508000 10800 1 EEST}
|
||||
{1380229200 7200 0 EET}
|
||||
{1395957600 10800 1 EEST}
|
||||
{1411678800 7200 0 EET}
|
||||
{1427407200 10800 1 EEST}
|
||||
{1443128400 7200 0 EET}
|
||||
{1459461600 10800 1 EEST}
|
||||
{1474578000 7200 0 EET}
|
||||
{1490911200 10800 1 EEST}
|
||||
{1506027600 7200 0 EET}
|
||||
{1522360800 10800 1 EEST}
|
||||
{1537477200 7200 0 EET}
|
||||
{1553810400 10800 1 EEST}
|
||||
{1569531600 7200 0 EET}
|
||||
{1585260000 10800 1 EEST}
|
||||
{1600981200 7200 0 EET}
|
||||
{1616709600 10800 1 EEST}
|
||||
{1632430800 7200 0 EET}
|
||||
{1648764000 10800 1 EEST}
|
||||
{1663880400 7200 0 EET}
|
||||
{1680213600 10800 1 EEST}
|
||||
{1695330000 7200 0 EET}
|
||||
{1711663200 10800 1 EEST}
|
||||
{1727384400 7200 0 EET}
|
||||
{1743112800 10800 1 EEST}
|
||||
{1758834000 7200 0 EET}
|
||||
{1774562400 10800 1 EEST}
|
||||
{1790283600 7200 0 EET}
|
||||
{1806012000 10800 1 EEST}
|
||||
{1821733200 7200 0 EET}
|
||||
{1838066400 10800 1 EEST}
|
||||
{1853182800 7200 0 EET}
|
||||
{1869516000 10800 1 EEST}
|
||||
{1884632400 7200 0 EET}
|
||||
{1900965600 10800 1 EEST}
|
||||
{1916686800 7200 0 EET}
|
||||
{1932415200 10800 1 EEST}
|
||||
{1948136400 7200 0 EET}
|
||||
{1963864800 10800 1 EEST}
|
||||
{1979586000 7200 0 EET}
|
||||
{1995919200 10800 1 EEST}
|
||||
{2011035600 7200 0 EET}
|
||||
{2027368800 10800 1 EEST}
|
||||
{2042485200 7200 0 EET}
|
||||
{2058818400 10800 1 EEST}
|
||||
{2073934800 7200 0 EET}
|
||||
{2090268000 10800 1 EEST}
|
||||
{2105989200 7200 0 EET}
|
||||
{2121717600 10800 1 EEST}
|
||||
{2137438800 7200 0 EET}
|
||||
{2153167200 10800 1 EEST}
|
||||
{2168888400 7200 0 EET}
|
||||
{2185221600 10800 1 EEST}
|
||||
{2200338000 7200 0 EET}
|
||||
{2216671200 10800 1 EEST}
|
||||
{2231787600 7200 0 EET}
|
||||
{2248120800 10800 1 EEST}
|
||||
{2263842000 7200 0 EET}
|
||||
{2279570400 10800 1 EEST}
|
||||
{2295291600 7200 0 EET}
|
||||
{2311020000 10800 1 EEST}
|
||||
{2326741200 7200 0 EET}
|
||||
{2343074400 10800 1 EEST}
|
||||
{2358190800 7200 0 EET}
|
||||
{2374524000 10800 1 EEST}
|
||||
{2389640400 7200 0 EET}
|
||||
{2405973600 10800 1 EEST}
|
||||
{2421090000 7200 0 EET}
|
||||
{2437423200 10800 1 EEST}
|
||||
{2453144400 7200 0 EET}
|
||||
{2468872800 10800 1 EEST}
|
||||
{2484594000 7200 0 EET}
|
||||
{2500322400 10800 1 EEST}
|
||||
{2516043600 7200 0 EET}
|
||||
{2532376800 10800 1 EEST}
|
||||
{2547493200 7200 0 EET}
|
||||
{2563826400 10800 1 EEST}
|
||||
{2578942800 7200 0 EET}
|
||||
{2595276000 10800 1 EEST}
|
||||
{2610997200 7200 0 EET}
|
||||
{2626725600 10800 1 EEST}
|
||||
{2642446800 7200 0 EET}
|
||||
{2658175200 10800 1 EEST}
|
||||
{2673896400 7200 0 EET}
|
||||
{2689624800 10800 1 EEST}
|
||||
{2705346000 7200 0 EET}
|
||||
{2721679200 10800 1 EEST}
|
||||
{2736795600 7200 0 EET}
|
||||
{2753128800 10800 1 EEST}
|
||||
{2768245200 7200 0 EET}
|
||||
{2784578400 10800 1 EEST}
|
||||
{2800299600 7200 0 EET}
|
||||
{2816028000 10800 1 EEST}
|
||||
{2831749200 7200 0 EET}
|
||||
{2847477600 10800 1 EEST}
|
||||
{2863198800 7200 0 EET}
|
||||
{2879532000 10800 1 EEST}
|
||||
{2894648400 7200 0 EET}
|
||||
{2910981600 10800 1 EEST}
|
||||
{2926098000 7200 0 EET}
|
||||
{2942431200 10800 1 EEST}
|
||||
{2957547600 7200 0 EET}
|
||||
{2973880800 10800 1 EEST}
|
||||
{2989602000 7200 0 EET}
|
||||
{3005330400 10800 1 EEST}
|
||||
{3021051600 7200 0 EET}
|
||||
{3036780000 10800 1 EEST}
|
||||
{3052501200 7200 0 EET}
|
||||
{3068834400 10800 1 EEST}
|
||||
{3083950800 7200 0 EET}
|
||||
{3100284000 10800 1 EEST}
|
||||
{3115400400 7200 0 EET}
|
||||
{3131733600 10800 1 EEST}
|
||||
{3147454800 7200 0 EET}
|
||||
{3163183200 10800 1 EEST}
|
||||
{3178904400 7200 0 EET}
|
||||
{3194632800 10800 1 EEST}
|
||||
{3210354000 7200 0 EET}
|
||||
{3226687200 10800 1 EEST}
|
||||
{3241803600 7200 0 EET}
|
||||
{3258136800 10800 1 EEST}
|
||||
{3273253200 7200 0 EET}
|
||||
{3289586400 10800 1 EEST}
|
||||
{3304702800 7200 0 EET}
|
||||
{3321036000 10800 1 EEST}
|
||||
{3336757200 7200 0 EET}
|
||||
{3352485600 10800 1 EEST}
|
||||
{3368206800 7200 0 EET}
|
||||
{3383935200 10800 1 EEST}
|
||||
{3399656400 7200 0 EET}
|
||||
{3415989600 10800 1 EEST}
|
||||
{3431106000 7200 0 EET}
|
||||
{3447439200 10800 1 EEST}
|
||||
{3462555600 7200 0 EET}
|
||||
{3478888800 10800 1 EEST}
|
||||
{3494610000 7200 0 EET}
|
||||
{3510338400 10800 1 EEST}
|
||||
{3526059600 7200 0 EET}
|
||||
{3541788000 10800 1 EEST}
|
||||
{3557509200 7200 0 EET}
|
||||
{3573237600 10800 1 EEST}
|
||||
{3588958800 7200 0 EET}
|
||||
{3605292000 10800 1 EEST}
|
||||
{3620408400 7200 0 EET}
|
||||
{3636741600 10800 1 EEST}
|
||||
{3651858000 7200 0 EET}
|
||||
{3668191200 10800 1 EEST}
|
||||
{3683912400 7200 0 EET}
|
||||
{3699640800 10800 1 EEST}
|
||||
{3715362000 7200 0 EET}
|
||||
{3731090400 10800 1 EEST}
|
||||
{3746811600 7200 0 EET}
|
||||
{3763144800 10800 1 EEST}
|
||||
{3778261200 7200 0 EET}
|
||||
{3794594400 10800 1 EEST}
|
||||
{3809710800 7200 0 EET}
|
||||
{3826044000 10800 1 EEST}
|
||||
{3841160400 7200 0 EET}
|
||||
{3857493600 10800 1 EEST}
|
||||
{3873214800 7200 0 EET}
|
||||
{3888943200 10800 1 EEST}
|
||||
{3904664400 7200 0 EET}
|
||||
{3920392800 10800 1 EEST}
|
||||
{3936114000 7200 0 EET}
|
||||
{3952447200 10800 1 EEST}
|
||||
{3967563600 7200 0 EET}
|
||||
{3983896800 10800 1 EEST}
|
||||
{3999013200 7200 0 EET}
|
||||
{4015346400 10800 1 EEST}
|
||||
{4031067600 7200 0 EET}
|
||||
{4046796000 10800 1 EEST}
|
||||
{4062517200 7200 0 EET}
|
||||
{4078245600 10800 1 EEST}
|
||||
{4093966800 7200 0 EET}
|
||||
{1414098000 7200 0 EET}
|
||||
{1427493600 10800 1 EEST}
|
||||
{1445547600 7200 0 EET}
|
||||
{1458943200 10800 1 EEST}
|
||||
{1476997200 7200 0 EET}
|
||||
{1490997600 10800 1 EEST}
|
||||
{1509051600 7200 0 EET}
|
||||
{1522447200 10800 1 EEST}
|
||||
{1540501200 7200 0 EET}
|
||||
{1553896800 10800 1 EEST}
|
||||
{1571950800 7200 0 EET}
|
||||
{1585346400 10800 1 EEST}
|
||||
{1603400400 7200 0 EET}
|
||||
{1616796000 10800 1 EEST}
|
||||
{1634850000 7200 0 EET}
|
||||
{1648245600 10800 1 EEST}
|
||||
{1666299600 7200 0 EET}
|
||||
{1680300000 10800 1 EEST}
|
||||
{1698354000 7200 0 EET}
|
||||
{1711749600 10800 1 EEST}
|
||||
{1729803600 7200 0 EET}
|
||||
{1743199200 10800 1 EEST}
|
||||
{1761253200 7200 0 EET}
|
||||
{1774648800 10800 1 EEST}
|
||||
{1792702800 7200 0 EET}
|
||||
{1806098400 10800 1 EEST}
|
||||
{1824152400 7200 0 EET}
|
||||
{1838152800 10800 1 EEST}
|
||||
{1856206800 7200 0 EET}
|
||||
{1869602400 10800 1 EEST}
|
||||
{1887656400 7200 0 EET}
|
||||
{1901052000 10800 1 EEST}
|
||||
{1919106000 7200 0 EET}
|
||||
{1932501600 10800 1 EEST}
|
||||
{1950555600 7200 0 EET}
|
||||
{1963951200 10800 1 EEST}
|
||||
{1982005200 7200 0 EET}
|
||||
{1995400800 10800 1 EEST}
|
||||
{2013454800 7200 0 EET}
|
||||
{2027455200 10800 1 EEST}
|
||||
{2045509200 7200 0 EET}
|
||||
{2058904800 10800 1 EEST}
|
||||
{2076958800 7200 0 EET}
|
||||
{2090354400 10800 1 EEST}
|
||||
{2108408400 7200 0 EET}
|
||||
{2121804000 10800 1 EEST}
|
||||
{2139858000 7200 0 EET}
|
||||
{2153253600 10800 1 EEST}
|
||||
{2171307600 7200 0 EET}
|
||||
{2184703200 10800 1 EEST}
|
||||
{2202757200 7200 0 EET}
|
||||
{2216757600 10800 1 EEST}
|
||||
{2234811600 7200 0 EET}
|
||||
{2248207200 10800 1 EEST}
|
||||
{2266261200 7200 0 EET}
|
||||
{2279656800 10800 1 EEST}
|
||||
{2297710800 7200 0 EET}
|
||||
{2311106400 10800 1 EEST}
|
||||
{2329160400 7200 0 EET}
|
||||
{2342556000 10800 1 EEST}
|
||||
{2360610000 7200 0 EET}
|
||||
{2374610400 10800 1 EEST}
|
||||
{2392664400 7200 0 EET}
|
||||
{2406060000 10800 1 EEST}
|
||||
{2424114000 7200 0 EET}
|
||||
{2437509600 10800 1 EEST}
|
||||
{2455563600 7200 0 EET}
|
||||
{2468959200 10800 1 EEST}
|
||||
{2487013200 7200 0 EET}
|
||||
{2500408800 10800 1 EEST}
|
||||
{2518462800 7200 0 EET}
|
||||
{2531858400 10800 1 EEST}
|
||||
{2549912400 7200 0 EET}
|
||||
{2563912800 10800 1 EEST}
|
||||
{2581966800 7200 0 EET}
|
||||
{2595362400 10800 1 EEST}
|
||||
{2613416400 7200 0 EET}
|
||||
{2626812000 10800 1 EEST}
|
||||
{2644866000 7200 0 EET}
|
||||
{2658261600 10800 1 EEST}
|
||||
{2676315600 7200 0 EET}
|
||||
{2689711200 10800 1 EEST}
|
||||
{2707765200 7200 0 EET}
|
||||
{2721765600 10800 1 EEST}
|
||||
{2739819600 7200 0 EET}
|
||||
{2753215200 10800 1 EEST}
|
||||
{2771269200 7200 0 EET}
|
||||
{2784664800 10800 1 EEST}
|
||||
{2802718800 7200 0 EET}
|
||||
{2816114400 10800 1 EEST}
|
||||
{2834168400 7200 0 EET}
|
||||
{2847564000 10800 1 EEST}
|
||||
{2865618000 7200 0 EET}
|
||||
{2879013600 10800 1 EEST}
|
||||
{2897067600 7200 0 EET}
|
||||
{2911068000 10800 1 EEST}
|
||||
{2929122000 7200 0 EET}
|
||||
{2942517600 10800 1 EEST}
|
||||
{2960571600 7200 0 EET}
|
||||
{2973967200 10800 1 EEST}
|
||||
{2992021200 7200 0 EET}
|
||||
{3005416800 10800 1 EEST}
|
||||
{3023470800 7200 0 EET}
|
||||
{3036866400 10800 1 EEST}
|
||||
{3054920400 7200 0 EET}
|
||||
{3068316000 10800 1 EEST}
|
||||
{3086370000 7200 0 EET}
|
||||
{3100370400 10800 1 EEST}
|
||||
{3118424400 7200 0 EET}
|
||||
{3131820000 10800 1 EEST}
|
||||
{3149874000 7200 0 EET}
|
||||
{3163269600 10800 1 EEST}
|
||||
{3181323600 7200 0 EET}
|
||||
{3194719200 10800 1 EEST}
|
||||
{3212773200 7200 0 EET}
|
||||
{3226168800 10800 1 EEST}
|
||||
{3244222800 7200 0 EET}
|
||||
{3258223200 10800 1 EEST}
|
||||
{3276277200 7200 0 EET}
|
||||
{3289672800 10800 1 EEST}
|
||||
{3307726800 7200 0 EET}
|
||||
{3321122400 10800 1 EEST}
|
||||
{3339176400 7200 0 EET}
|
||||
{3352572000 10800 1 EEST}
|
||||
{3370626000 7200 0 EET}
|
||||
{3384021600 10800 1 EEST}
|
||||
{3402075600 7200 0 EET}
|
||||
{3415471200 10800 1 EEST}
|
||||
{3433525200 7200 0 EET}
|
||||
{3447525600 10800 1 EEST}
|
||||
{3465579600 7200 0 EET}
|
||||
{3478975200 10800 1 EEST}
|
||||
{3497029200 7200 0 EET}
|
||||
{3510424800 10800 1 EEST}
|
||||
{3528478800 7200 0 EET}
|
||||
{3541874400 10800 1 EEST}
|
||||
{3559928400 7200 0 EET}
|
||||
{3573324000 10800 1 EEST}
|
||||
{3591378000 7200 0 EET}
|
||||
{3605378400 10800 1 EEST}
|
||||
{3623432400 7200 0 EET}
|
||||
{3636828000 10800 1 EEST}
|
||||
{3654882000 7200 0 EET}
|
||||
{3668277600 10800 1 EEST}
|
||||
{3686331600 7200 0 EET}
|
||||
{3699727200 10800 1 EEST}
|
||||
{3717781200 7200 0 EET}
|
||||
{3731176800 10800 1 EEST}
|
||||
{3749230800 7200 0 EET}
|
||||
{3762626400 10800 1 EEST}
|
||||
{3780680400 7200 0 EET}
|
||||
{3794680800 10800 1 EEST}
|
||||
{3812734800 7200 0 EET}
|
||||
{3826130400 10800 1 EEST}
|
||||
{3844184400 7200 0 EET}
|
||||
{3857580000 10800 1 EEST}
|
||||
{3875634000 7200 0 EET}
|
||||
{3889029600 10800 1 EEST}
|
||||
{3907083600 7200 0 EET}
|
||||
{3920479200 10800 1 EEST}
|
||||
{3938533200 7200 0 EET}
|
||||
{3951928800 10800 1 EEST}
|
||||
{3969982800 7200 0 EET}
|
||||
{3983983200 10800 1 EEST}
|
||||
{4002037200 7200 0 EET}
|
||||
{4015432800 10800 1 EEST}
|
||||
{4033486800 7200 0 EET}
|
||||
{4046882400 10800 1 EEST}
|
||||
{4064936400 7200 0 EET}
|
||||
{4078332000 10800 1 EEST}
|
||||
{4096386000 7200 0 EET}
|
||||
}
|
||||
|
||||
+171
-171
@@ -103,175 +103,175 @@ set TZData(:Asia/Hebron) {
|
||||
{1364508000 10800 1 EEST}
|
||||
{1380229200 7200 0 EET}
|
||||
{1395957600 10800 1 EEST}
|
||||
{1411678800 7200 0 EET}
|
||||
{1427407200 10800 1 EEST}
|
||||
{1443128400 7200 0 EET}
|
||||
{1459461600 10800 1 EEST}
|
||||
{1474578000 7200 0 EET}
|
||||
{1490911200 10800 1 EEST}
|
||||
{1506027600 7200 0 EET}
|
||||
{1522360800 10800 1 EEST}
|
||||
{1537477200 7200 0 EET}
|
||||
{1553810400 10800 1 EEST}
|
||||
{1569531600 7200 0 EET}
|
||||
{1585260000 10800 1 EEST}
|
||||
{1600981200 7200 0 EET}
|
||||
{1616709600 10800 1 EEST}
|
||||
{1632430800 7200 0 EET}
|
||||
{1648764000 10800 1 EEST}
|
||||
{1663880400 7200 0 EET}
|
||||
{1680213600 10800 1 EEST}
|
||||
{1695330000 7200 0 EET}
|
||||
{1711663200 10800 1 EEST}
|
||||
{1727384400 7200 0 EET}
|
||||
{1743112800 10800 1 EEST}
|
||||
{1758834000 7200 0 EET}
|
||||
{1774562400 10800 1 EEST}
|
||||
{1790283600 7200 0 EET}
|
||||
{1806012000 10800 1 EEST}
|
||||
{1821733200 7200 0 EET}
|
||||
{1838066400 10800 1 EEST}
|
||||
{1853182800 7200 0 EET}
|
||||
{1869516000 10800 1 EEST}
|
||||
{1884632400 7200 0 EET}
|
||||
{1900965600 10800 1 EEST}
|
||||
{1916686800 7200 0 EET}
|
||||
{1932415200 10800 1 EEST}
|
||||
{1948136400 7200 0 EET}
|
||||
{1963864800 10800 1 EEST}
|
||||
{1979586000 7200 0 EET}
|
||||
{1995919200 10800 1 EEST}
|
||||
{2011035600 7200 0 EET}
|
||||
{2027368800 10800 1 EEST}
|
||||
{2042485200 7200 0 EET}
|
||||
{2058818400 10800 1 EEST}
|
||||
{2073934800 7200 0 EET}
|
||||
{2090268000 10800 1 EEST}
|
||||
{2105989200 7200 0 EET}
|
||||
{2121717600 10800 1 EEST}
|
||||
{2137438800 7200 0 EET}
|
||||
{2153167200 10800 1 EEST}
|
||||
{2168888400 7200 0 EET}
|
||||
{2185221600 10800 1 EEST}
|
||||
{2200338000 7200 0 EET}
|
||||
{2216671200 10800 1 EEST}
|
||||
{2231787600 7200 0 EET}
|
||||
{2248120800 10800 1 EEST}
|
||||
{2263842000 7200 0 EET}
|
||||
{2279570400 10800 1 EEST}
|
||||
{2295291600 7200 0 EET}
|
||||
{2311020000 10800 1 EEST}
|
||||
{2326741200 7200 0 EET}
|
||||
{2343074400 10800 1 EEST}
|
||||
{2358190800 7200 0 EET}
|
||||
{2374524000 10800 1 EEST}
|
||||
{2389640400 7200 0 EET}
|
||||
{2405973600 10800 1 EEST}
|
||||
{2421090000 7200 0 EET}
|
||||
{2437423200 10800 1 EEST}
|
||||
{2453144400 7200 0 EET}
|
||||
{2468872800 10800 1 EEST}
|
||||
{2484594000 7200 0 EET}
|
||||
{2500322400 10800 1 EEST}
|
||||
{2516043600 7200 0 EET}
|
||||
{2532376800 10800 1 EEST}
|
||||
{2547493200 7200 0 EET}
|
||||
{2563826400 10800 1 EEST}
|
||||
{2578942800 7200 0 EET}
|
||||
{2595276000 10800 1 EEST}
|
||||
{2610997200 7200 0 EET}
|
||||
{2626725600 10800 1 EEST}
|
||||
{2642446800 7200 0 EET}
|
||||
{2658175200 10800 1 EEST}
|
||||
{2673896400 7200 0 EET}
|
||||
{2689624800 10800 1 EEST}
|
||||
{2705346000 7200 0 EET}
|
||||
{2721679200 10800 1 EEST}
|
||||
{2736795600 7200 0 EET}
|
||||
{2753128800 10800 1 EEST}
|
||||
{2768245200 7200 0 EET}
|
||||
{2784578400 10800 1 EEST}
|
||||
{2800299600 7200 0 EET}
|
||||
{2816028000 10800 1 EEST}
|
||||
{2831749200 7200 0 EET}
|
||||
{2847477600 10800 1 EEST}
|
||||
{2863198800 7200 0 EET}
|
||||
{2879532000 10800 1 EEST}
|
||||
{2894648400 7200 0 EET}
|
||||
{2910981600 10800 1 EEST}
|
||||
{2926098000 7200 0 EET}
|
||||
{2942431200 10800 1 EEST}
|
||||
{2957547600 7200 0 EET}
|
||||
{2973880800 10800 1 EEST}
|
||||
{2989602000 7200 0 EET}
|
||||
{3005330400 10800 1 EEST}
|
||||
{3021051600 7200 0 EET}
|
||||
{3036780000 10800 1 EEST}
|
||||
{3052501200 7200 0 EET}
|
||||
{3068834400 10800 1 EEST}
|
||||
{3083950800 7200 0 EET}
|
||||
{3100284000 10800 1 EEST}
|
||||
{3115400400 7200 0 EET}
|
||||
{3131733600 10800 1 EEST}
|
||||
{3147454800 7200 0 EET}
|
||||
{3163183200 10800 1 EEST}
|
||||
{3178904400 7200 0 EET}
|
||||
{3194632800 10800 1 EEST}
|
||||
{3210354000 7200 0 EET}
|
||||
{3226687200 10800 1 EEST}
|
||||
{3241803600 7200 0 EET}
|
||||
{3258136800 10800 1 EEST}
|
||||
{3273253200 7200 0 EET}
|
||||
{3289586400 10800 1 EEST}
|
||||
{3304702800 7200 0 EET}
|
||||
{3321036000 10800 1 EEST}
|
||||
{3336757200 7200 0 EET}
|
||||
{3352485600 10800 1 EEST}
|
||||
{3368206800 7200 0 EET}
|
||||
{3383935200 10800 1 EEST}
|
||||
{3399656400 7200 0 EET}
|
||||
{3415989600 10800 1 EEST}
|
||||
{3431106000 7200 0 EET}
|
||||
{3447439200 10800 1 EEST}
|
||||
{3462555600 7200 0 EET}
|
||||
{3478888800 10800 1 EEST}
|
||||
{3494610000 7200 0 EET}
|
||||
{3510338400 10800 1 EEST}
|
||||
{3526059600 7200 0 EET}
|
||||
{3541788000 10800 1 EEST}
|
||||
{3557509200 7200 0 EET}
|
||||
{3573237600 10800 1 EEST}
|
||||
{3588958800 7200 0 EET}
|
||||
{3605292000 10800 1 EEST}
|
||||
{3620408400 7200 0 EET}
|
||||
{3636741600 10800 1 EEST}
|
||||
{3651858000 7200 0 EET}
|
||||
{3668191200 10800 1 EEST}
|
||||
{3683912400 7200 0 EET}
|
||||
{3699640800 10800 1 EEST}
|
||||
{3715362000 7200 0 EET}
|
||||
{3731090400 10800 1 EEST}
|
||||
{3746811600 7200 0 EET}
|
||||
{3763144800 10800 1 EEST}
|
||||
{3778261200 7200 0 EET}
|
||||
{3794594400 10800 1 EEST}
|
||||
{3809710800 7200 0 EET}
|
||||
{3826044000 10800 1 EEST}
|
||||
{3841160400 7200 0 EET}
|
||||
{3857493600 10800 1 EEST}
|
||||
{3873214800 7200 0 EET}
|
||||
{3888943200 10800 1 EEST}
|
||||
{3904664400 7200 0 EET}
|
||||
{3920392800 10800 1 EEST}
|
||||
{3936114000 7200 0 EET}
|
||||
{3952447200 10800 1 EEST}
|
||||
{3967563600 7200 0 EET}
|
||||
{3983896800 10800 1 EEST}
|
||||
{3999013200 7200 0 EET}
|
||||
{4015346400 10800 1 EEST}
|
||||
{4031067600 7200 0 EET}
|
||||
{4046796000 10800 1 EEST}
|
||||
{4062517200 7200 0 EET}
|
||||
{4078245600 10800 1 EEST}
|
||||
{4093966800 7200 0 EET}
|
||||
{1414098000 7200 0 EET}
|
||||
{1427493600 10800 1 EEST}
|
||||
{1445547600 7200 0 EET}
|
||||
{1458943200 10800 1 EEST}
|
||||
{1476997200 7200 0 EET}
|
||||
{1490997600 10800 1 EEST}
|
||||
{1509051600 7200 0 EET}
|
||||
{1522447200 10800 1 EEST}
|
||||
{1540501200 7200 0 EET}
|
||||
{1553896800 10800 1 EEST}
|
||||
{1571950800 7200 0 EET}
|
||||
{1585346400 10800 1 EEST}
|
||||
{1603400400 7200 0 EET}
|
||||
{1616796000 10800 1 EEST}
|
||||
{1634850000 7200 0 EET}
|
||||
{1648245600 10800 1 EEST}
|
||||
{1666299600 7200 0 EET}
|
||||
{1680300000 10800 1 EEST}
|
||||
{1698354000 7200 0 EET}
|
||||
{1711749600 10800 1 EEST}
|
||||
{1729803600 7200 0 EET}
|
||||
{1743199200 10800 1 EEST}
|
||||
{1761253200 7200 0 EET}
|
||||
{1774648800 10800 1 EEST}
|
||||
{1792702800 7200 0 EET}
|
||||
{1806098400 10800 1 EEST}
|
||||
{1824152400 7200 0 EET}
|
||||
{1838152800 10800 1 EEST}
|
||||
{1856206800 7200 0 EET}
|
||||
{1869602400 10800 1 EEST}
|
||||
{1887656400 7200 0 EET}
|
||||
{1901052000 10800 1 EEST}
|
||||
{1919106000 7200 0 EET}
|
||||
{1932501600 10800 1 EEST}
|
||||
{1950555600 7200 0 EET}
|
||||
{1963951200 10800 1 EEST}
|
||||
{1982005200 7200 0 EET}
|
||||
{1995400800 10800 1 EEST}
|
||||
{2013454800 7200 0 EET}
|
||||
{2027455200 10800 1 EEST}
|
||||
{2045509200 7200 0 EET}
|
||||
{2058904800 10800 1 EEST}
|
||||
{2076958800 7200 0 EET}
|
||||
{2090354400 10800 1 EEST}
|
||||
{2108408400 7200 0 EET}
|
||||
{2121804000 10800 1 EEST}
|
||||
{2139858000 7200 0 EET}
|
||||
{2153253600 10800 1 EEST}
|
||||
{2171307600 7200 0 EET}
|
||||
{2184703200 10800 1 EEST}
|
||||
{2202757200 7200 0 EET}
|
||||
{2216757600 10800 1 EEST}
|
||||
{2234811600 7200 0 EET}
|
||||
{2248207200 10800 1 EEST}
|
||||
{2266261200 7200 0 EET}
|
||||
{2279656800 10800 1 EEST}
|
||||
{2297710800 7200 0 EET}
|
||||
{2311106400 10800 1 EEST}
|
||||
{2329160400 7200 0 EET}
|
||||
{2342556000 10800 1 EEST}
|
||||
{2360610000 7200 0 EET}
|
||||
{2374610400 10800 1 EEST}
|
||||
{2392664400 7200 0 EET}
|
||||
{2406060000 10800 1 EEST}
|
||||
{2424114000 7200 0 EET}
|
||||
{2437509600 10800 1 EEST}
|
||||
{2455563600 7200 0 EET}
|
||||
{2468959200 10800 1 EEST}
|
||||
{2487013200 7200 0 EET}
|
||||
{2500408800 10800 1 EEST}
|
||||
{2518462800 7200 0 EET}
|
||||
{2531858400 10800 1 EEST}
|
||||
{2549912400 7200 0 EET}
|
||||
{2563912800 10800 1 EEST}
|
||||
{2581966800 7200 0 EET}
|
||||
{2595362400 10800 1 EEST}
|
||||
{2613416400 7200 0 EET}
|
||||
{2626812000 10800 1 EEST}
|
||||
{2644866000 7200 0 EET}
|
||||
{2658261600 10800 1 EEST}
|
||||
{2676315600 7200 0 EET}
|
||||
{2689711200 10800 1 EEST}
|
||||
{2707765200 7200 0 EET}
|
||||
{2721765600 10800 1 EEST}
|
||||
{2739819600 7200 0 EET}
|
||||
{2753215200 10800 1 EEST}
|
||||
{2771269200 7200 0 EET}
|
||||
{2784664800 10800 1 EEST}
|
||||
{2802718800 7200 0 EET}
|
||||
{2816114400 10800 1 EEST}
|
||||
{2834168400 7200 0 EET}
|
||||
{2847564000 10800 1 EEST}
|
||||
{2865618000 7200 0 EET}
|
||||
{2879013600 10800 1 EEST}
|
||||
{2897067600 7200 0 EET}
|
||||
{2911068000 10800 1 EEST}
|
||||
{2929122000 7200 0 EET}
|
||||
{2942517600 10800 1 EEST}
|
||||
{2960571600 7200 0 EET}
|
||||
{2973967200 10800 1 EEST}
|
||||
{2992021200 7200 0 EET}
|
||||
{3005416800 10800 1 EEST}
|
||||
{3023470800 7200 0 EET}
|
||||
{3036866400 10800 1 EEST}
|
||||
{3054920400 7200 0 EET}
|
||||
{3068316000 10800 1 EEST}
|
||||
{3086370000 7200 0 EET}
|
||||
{3100370400 10800 1 EEST}
|
||||
{3118424400 7200 0 EET}
|
||||
{3131820000 10800 1 EEST}
|
||||
{3149874000 7200 0 EET}
|
||||
{3163269600 10800 1 EEST}
|
||||
{3181323600 7200 0 EET}
|
||||
{3194719200 10800 1 EEST}
|
||||
{3212773200 7200 0 EET}
|
||||
{3226168800 10800 1 EEST}
|
||||
{3244222800 7200 0 EET}
|
||||
{3258223200 10800 1 EEST}
|
||||
{3276277200 7200 0 EET}
|
||||
{3289672800 10800 1 EEST}
|
||||
{3307726800 7200 0 EET}
|
||||
{3321122400 10800 1 EEST}
|
||||
{3339176400 7200 0 EET}
|
||||
{3352572000 10800 1 EEST}
|
||||
{3370626000 7200 0 EET}
|
||||
{3384021600 10800 1 EEST}
|
||||
{3402075600 7200 0 EET}
|
||||
{3415471200 10800 1 EEST}
|
||||
{3433525200 7200 0 EET}
|
||||
{3447525600 10800 1 EEST}
|
||||
{3465579600 7200 0 EET}
|
||||
{3478975200 10800 1 EEST}
|
||||
{3497029200 7200 0 EET}
|
||||
{3510424800 10800 1 EEST}
|
||||
{3528478800 7200 0 EET}
|
||||
{3541874400 10800 1 EEST}
|
||||
{3559928400 7200 0 EET}
|
||||
{3573324000 10800 1 EEST}
|
||||
{3591378000 7200 0 EET}
|
||||
{3605378400 10800 1 EEST}
|
||||
{3623432400 7200 0 EET}
|
||||
{3636828000 10800 1 EEST}
|
||||
{3654882000 7200 0 EET}
|
||||
{3668277600 10800 1 EEST}
|
||||
{3686331600 7200 0 EET}
|
||||
{3699727200 10800 1 EEST}
|
||||
{3717781200 7200 0 EET}
|
||||
{3731176800 10800 1 EEST}
|
||||
{3749230800 7200 0 EET}
|
||||
{3762626400 10800 1 EEST}
|
||||
{3780680400 7200 0 EET}
|
||||
{3794680800 10800 1 EEST}
|
||||
{3812734800 7200 0 EET}
|
||||
{3826130400 10800 1 EEST}
|
||||
{3844184400 7200 0 EET}
|
||||
{3857580000 10800 1 EEST}
|
||||
{3875634000 7200 0 EET}
|
||||
{3889029600 10800 1 EEST}
|
||||
{3907083600 7200 0 EET}
|
||||
{3920479200 10800 1 EEST}
|
||||
{3938533200 7200 0 EET}
|
||||
{3951928800 10800 1 EEST}
|
||||
{3969982800 7200 0 EET}
|
||||
{3983983200 10800 1 EEST}
|
||||
{4002037200 7200 0 EET}
|
||||
{4015432800 10800 1 EEST}
|
||||
{4033486800 7200 0 EET}
|
||||
{4046882400 10800 1 EEST}
|
||||
{4064936400 7200 0 EET}
|
||||
{4078332000 10800 1 EEST}
|
||||
{4096386000 7200 0 EET}
|
||||
}
|
||||
|
||||
@@ -48,4 +48,174 @@ set TZData(:Asia/Hovd) {
|
||||
{1127498400 25200 0 HOVT}
|
||||
{1143226800 28800 1 HOVST}
|
||||
{1159552800 25200 0 HOVT}
|
||||
{1427482800 28800 1 HOVST}
|
||||
{1443196800 25200 0 HOVT}
|
||||
{1458932400 28800 1 HOVST}
|
||||
{1474646400 25200 0 HOVT}
|
||||
{1490382000 28800 1 HOVST}
|
||||
{1506700800 25200 0 HOVT}
|
||||
{1522436400 28800 1 HOVST}
|
||||
{1538150400 25200 0 HOVT}
|
||||
{1553886000 28800 1 HOVST}
|
||||
{1569600000 25200 0 HOVT}
|
||||
{1585335600 28800 1 HOVST}
|
||||
{1601049600 25200 0 HOVT}
|
||||
{1616785200 28800 1 HOVST}
|
||||
{1632499200 25200 0 HOVT}
|
||||
{1648234800 28800 1 HOVST}
|
||||
{1663948800 25200 0 HOVT}
|
||||
{1679684400 28800 1 HOVST}
|
||||
{1696003200 25200 0 HOVT}
|
||||
{1711738800 28800 1 HOVST}
|
||||
{1727452800 25200 0 HOVT}
|
||||
{1743188400 28800 1 HOVST}
|
||||
{1758902400 25200 0 HOVT}
|
||||
{1774638000 28800 1 HOVST}
|
||||
{1790352000 25200 0 HOVT}
|
||||
{1806087600 28800 1 HOVST}
|
||||
{1821801600 25200 0 HOVT}
|
||||
{1837537200 28800 1 HOVST}
|
||||
{1853856000 25200 0 HOVT}
|
||||
{1869591600 28800 1 HOVST}
|
||||
{1885305600 25200 0 HOVT}
|
||||
{1901041200 28800 1 HOVST}
|
||||
{1916755200 25200 0 HOVT}
|
||||
{1932490800 28800 1 HOVST}
|
||||
{1948204800 25200 0 HOVT}
|
||||
{1963940400 28800 1 HOVST}
|
||||
{1979654400 25200 0 HOVT}
|
||||
{1995390000 28800 1 HOVST}
|
||||
{2011104000 25200 0 HOVT}
|
||||
{2026839600 28800 1 HOVST}
|
||||
{2043158400 25200 0 HOVT}
|
||||
{2058894000 28800 1 HOVST}
|
||||
{2074608000 25200 0 HOVT}
|
||||
{2090343600 28800 1 HOVST}
|
||||
{2106057600 25200 0 HOVT}
|
||||
{2121793200 28800 1 HOVST}
|
||||
{2137507200 25200 0 HOVT}
|
||||
{2153242800 28800 1 HOVST}
|
||||
{2168956800 25200 0 HOVT}
|
||||
{2184692400 28800 1 HOVST}
|
||||
{2200406400 25200 0 HOVT}
|
||||
{2216746800 28800 1 HOVST}
|
||||
{2232460800 25200 0 HOVT}
|
||||
{2248196400 28800 1 HOVST}
|
||||
{2263910400 25200 0 HOVT}
|
||||
{2279646000 28800 1 HOVST}
|
||||
{2295360000 25200 0 HOVT}
|
||||
{2311095600 28800 1 HOVST}
|
||||
{2326809600 25200 0 HOVT}
|
||||
{2342545200 28800 1 HOVST}
|
||||
{2358259200 25200 0 HOVT}
|
||||
{2373994800 28800 1 HOVST}
|
||||
{2390313600 25200 0 HOVT}
|
||||
{2406049200 28800 1 HOVST}
|
||||
{2421763200 25200 0 HOVT}
|
||||
{2437498800 28800 1 HOVST}
|
||||
{2453212800 25200 0 HOVT}
|
||||
{2468948400 28800 1 HOVST}
|
||||
{2484662400 25200 0 HOVT}
|
||||
{2500398000 28800 1 HOVST}
|
||||
{2516112000 25200 0 HOVT}
|
||||
{2531847600 28800 1 HOVST}
|
||||
{2547561600 25200 0 HOVT}
|
||||
{2563297200 28800 1 HOVST}
|
||||
{2579616000 25200 0 HOVT}
|
||||
{2595351600 28800 1 HOVST}
|
||||
{2611065600 25200 0 HOVT}
|
||||
{2626801200 28800 1 HOVST}
|
||||
{2642515200 25200 0 HOVT}
|
||||
{2658250800 28800 1 HOVST}
|
||||
{2673964800 25200 0 HOVT}
|
||||
{2689700400 28800 1 HOVST}
|
||||
{2705414400 25200 0 HOVT}
|
||||
{2721150000 28800 1 HOVST}
|
||||
{2737468800 25200 0 HOVT}
|
||||
{2753204400 28800 1 HOVST}
|
||||
{2768918400 25200 0 HOVT}
|
||||
{2784654000 28800 1 HOVST}
|
||||
{2800368000 25200 0 HOVT}
|
||||
{2816103600 28800 1 HOVST}
|
||||
{2831817600 25200 0 HOVT}
|
||||
{2847553200 28800 1 HOVST}
|
||||
{2863267200 25200 0 HOVT}
|
||||
{2879002800 28800 1 HOVST}
|
||||
{2894716800 25200 0 HOVT}
|
||||
{2910452400 28800 1 HOVST}
|
||||
{2926771200 25200 0 HOVT}
|
||||
{2942506800 28800 1 HOVST}
|
||||
{2958220800 25200 0 HOVT}
|
||||
{2973956400 28800 1 HOVST}
|
||||
{2989670400 25200 0 HOVT}
|
||||
{3005406000 28800 1 HOVST}
|
||||
{3021120000 25200 0 HOVT}
|
||||
{3036855600 28800 1 HOVST}
|
||||
{3052569600 25200 0 HOVT}
|
||||
{3068305200 28800 1 HOVST}
|
||||
{3084019200 25200 0 HOVT}
|
||||
{3100359600 28800 1 HOVST}
|
||||
{3116073600 25200 0 HOVT}
|
||||
{3131809200 28800 1 HOVST}
|
||||
{3147523200 25200 0 HOVT}
|
||||
{3163258800 28800 1 HOVST}
|
||||
{3178972800 25200 0 HOVT}
|
||||
{3194708400 28800 1 HOVST}
|
||||
{3210422400 25200 0 HOVT}
|
||||
{3226158000 28800 1 HOVST}
|
||||
{3241872000 25200 0 HOVT}
|
||||
{3257607600 28800 1 HOVST}
|
||||
{3273926400 25200 0 HOVT}
|
||||
{3289662000 28800 1 HOVST}
|
||||
{3305376000 25200 0 HOVT}
|
||||
{3321111600 28800 1 HOVST}
|
||||
{3336825600 25200 0 HOVT}
|
||||
{3352561200 28800 1 HOVST}
|
||||
{3368275200 25200 0 HOVT}
|
||||
{3384010800 28800 1 HOVST}
|
||||
{3399724800 25200 0 HOVT}
|
||||
{3415460400 28800 1 HOVST}
|
||||
{3431174400 25200 0 HOVT}
|
||||
{3446910000 28800 1 HOVST}
|
||||
{3463228800 25200 0 HOVT}
|
||||
{3478964400 28800 1 HOVST}
|
||||
{3494678400 25200 0 HOVT}
|
||||
{3510414000 28800 1 HOVST}
|
||||
{3526128000 25200 0 HOVT}
|
||||
{3541863600 28800 1 HOVST}
|
||||
{3557577600 25200 0 HOVT}
|
||||
{3573313200 28800 1 HOVST}
|
||||
{3589027200 25200 0 HOVT}
|
||||
{3604762800 28800 1 HOVST}
|
||||
{3621081600 25200 0 HOVT}
|
||||
{3636817200 28800 1 HOVST}
|
||||
{3652531200 25200 0 HOVT}
|
||||
{3668266800 28800 1 HOVST}
|
||||
{3683980800 25200 0 HOVT}
|
||||
{3699716400 28800 1 HOVST}
|
||||
{3715430400 25200 0 HOVT}
|
||||
{3731166000 28800 1 HOVST}
|
||||
{3746880000 25200 0 HOVT}
|
||||
{3762615600 28800 1 HOVST}
|
||||
{3778329600 25200 0 HOVT}
|
||||
{3794065200 28800 1 HOVST}
|
||||
{3810384000 25200 0 HOVT}
|
||||
{3826119600 28800 1 HOVST}
|
||||
{3841833600 25200 0 HOVT}
|
||||
{3857569200 28800 1 HOVST}
|
||||
{3873283200 25200 0 HOVT}
|
||||
{3889018800 28800 1 HOVST}
|
||||
{3904732800 25200 0 HOVT}
|
||||
{3920468400 28800 1 HOVST}
|
||||
{3936182400 25200 0 HOVT}
|
||||
{3951918000 28800 1 HOVST}
|
||||
{3967632000 25200 0 HOVT}
|
||||
{3983972400 28800 1 HOVST}
|
||||
{3999686400 25200 0 HOVT}
|
||||
{4015422000 28800 1 HOVST}
|
||||
{4031136000 25200 0 HOVT}
|
||||
{4046871600 28800 1 HOVST}
|
||||
{4062585600 25200 0 HOVT}
|
||||
{4078321200 28800 1 HOVST}
|
||||
{4094035200 25200 0 HOVT}
|
||||
}
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
# created by tools/tclZIC.tcl - do not edit
|
||||
|
||||
set TZData(:Asia/Kuwait) {
|
||||
{-9223372036854775808 11516 0 LMT}
|
||||
{-631163516 10800 0 AST}
|
||||
if {![info exists TZData(Asia/Riyadh)]} {
|
||||
LoadTimeZoneFile Asia/Riyadh
|
||||
}
|
||||
set TZData(:Asia/Kuwait) $TZData(:Asia/Riyadh)
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
# created by tools/tclZIC.tcl - do not edit
|
||||
|
||||
set TZData(:Asia/Muscat) {
|
||||
{-9223372036854775808 14064 0 LMT}
|
||||
{-1577937264 14400 0 GST}
|
||||
if {![info exists TZData(Asia/Dubai)]} {
|
||||
LoadTimeZoneFile Asia/Dubai
|
||||
}
|
||||
set TZData(:Asia/Muscat) $TZData(:Asia/Dubai)
|
||||
|
||||
@@ -48,4 +48,174 @@ set TZData(:Asia/Ulaanbaatar) {
|
||||
{1127494800 28800 0 ULAT}
|
||||
{1143223200 32400 1 ULAST}
|
||||
{1159549200 28800 0 ULAT}
|
||||
{1427479200 32400 1 ULAST}
|
||||
{1443193200 28800 0 ULAT}
|
||||
{1458928800 32400 1 ULAST}
|
||||
{1474642800 28800 0 ULAT}
|
||||
{1490378400 32400 1 ULAST}
|
||||
{1506697200 28800 0 ULAT}
|
||||
{1522432800 32400 1 ULAST}
|
||||
{1538146800 28800 0 ULAT}
|
||||
{1553882400 32400 1 ULAST}
|
||||
{1569596400 28800 0 ULAT}
|
||||
{1585332000 32400 1 ULAST}
|
||||
{1601046000 28800 0 ULAT}
|
||||
{1616781600 32400 1 ULAST}
|
||||
{1632495600 28800 0 ULAT}
|
||||
{1648231200 32400 1 ULAST}
|
||||
{1663945200 28800 0 ULAT}
|
||||
{1679680800 32400 1 ULAST}
|
||||
{1695999600 28800 0 ULAT}
|
||||
{1711735200 32400 1 ULAST}
|
||||
{1727449200 28800 0 ULAT}
|
||||
{1743184800 32400 1 ULAST}
|
||||
{1758898800 28800 0 ULAT}
|
||||
{1774634400 32400 1 ULAST}
|
||||
{1790348400 28800 0 ULAT}
|
||||
{1806084000 32400 1 ULAST}
|
||||
{1821798000 28800 0 ULAT}
|
||||
{1837533600 32400 1 ULAST}
|
||||
{1853852400 28800 0 ULAT}
|
||||
{1869588000 32400 1 ULAST}
|
||||
{1885302000 28800 0 ULAT}
|
||||
{1901037600 32400 1 ULAST}
|
||||
{1916751600 28800 0 ULAT}
|
||||
{1932487200 32400 1 ULAST}
|
||||
{1948201200 28800 0 ULAT}
|
||||
{1963936800 32400 1 ULAST}
|
||||
{1979650800 28800 0 ULAT}
|
||||
{1995386400 32400 1 ULAST}
|
||||
{2011100400 28800 0 ULAT}
|
||||
{2026836000 32400 1 ULAST}
|
||||
{2043154800 28800 0 ULAT}
|
||||
{2058890400 32400 1 ULAST}
|
||||
{2074604400 28800 0 ULAT}
|
||||
{2090340000 32400 1 ULAST}
|
||||
{2106054000 28800 0 ULAT}
|
||||
{2121789600 32400 1 ULAST}
|
||||
{2137503600 28800 0 ULAT}
|
||||
{2153239200 32400 1 ULAST}
|
||||
{2168953200 28800 0 ULAT}
|
||||
{2184688800 32400 1 ULAST}
|
||||
{2200402800 28800 0 ULAT}
|
||||
{2216743200 32400 1 ULAST}
|
||||
{2232457200 28800 0 ULAT}
|
||||
{2248192800 32400 1 ULAST}
|
||||
{2263906800 28800 0 ULAT}
|
||||
{2279642400 32400 1 ULAST}
|
||||
{2295356400 28800 0 ULAT}
|
||||
{2311092000 32400 1 ULAST}
|
||||
{2326806000 28800 0 ULAT}
|
||||
{2342541600 32400 1 ULAST}
|
||||
{2358255600 28800 0 ULAT}
|
||||
{2373991200 32400 1 ULAST}
|
||||
{2390310000 28800 0 ULAT}
|
||||
{2406045600 32400 1 ULAST}
|
||||
{2421759600 28800 0 ULAT}
|
||||
{2437495200 32400 1 ULAST}
|
||||
{2453209200 28800 0 ULAT}
|
||||
{2468944800 32400 1 ULAST}
|
||||
{2484658800 28800 0 ULAT}
|
||||
{2500394400 32400 1 ULAST}
|
||||
{2516108400 28800 0 ULAT}
|
||||
{2531844000 32400 1 ULAST}
|
||||
{2547558000 28800 0 ULAT}
|
||||
{2563293600 32400 1 ULAST}
|
||||
{2579612400 28800 0 ULAT}
|
||||
{2595348000 32400 1 ULAST}
|
||||
{2611062000 28800 0 ULAT}
|
||||
{2626797600 32400 1 ULAST}
|
||||
{2642511600 28800 0 ULAT}
|
||||
{2658247200 32400 1 ULAST}
|
||||
{2673961200 28800 0 ULAT}
|
||||
{2689696800 32400 1 ULAST}
|
||||
{2705410800 28800 0 ULAT}
|
||||
{2721146400 32400 1 ULAST}
|
||||
{2737465200 28800 0 ULAT}
|
||||
{2753200800 32400 1 ULAST}
|
||||
{2768914800 28800 0 ULAT}
|
||||
{2784650400 32400 1 ULAST}
|
||||
{2800364400 28800 0 ULAT}
|
||||
{2816100000 32400 1 ULAST}
|
||||
{2831814000 28800 0 ULAT}
|
||||
{2847549600 32400 1 ULAST}
|
||||
{2863263600 28800 0 ULAT}
|
||||
{2878999200 32400 1 ULAST}
|
||||
{2894713200 28800 0 ULAT}
|
||||
{2910448800 32400 1 ULAST}
|
||||
{2926767600 28800 0 ULAT}
|
||||
{2942503200 32400 1 ULAST}
|
||||
{2958217200 28800 0 ULAT}
|
||||
{2973952800 32400 1 ULAST}
|
||||
{2989666800 28800 0 ULAT}
|
||||
{3005402400 32400 1 ULAST}
|
||||
{3021116400 28800 0 ULAT}
|
||||
{3036852000 32400 1 ULAST}
|
||||
{3052566000 28800 0 ULAT}
|
||||
{3068301600 32400 1 ULAST}
|
||||
{3084015600 28800 0 ULAT}
|
||||
{3100356000 32400 1 ULAST}
|
||||
{3116070000 28800 0 ULAT}
|
||||
{3131805600 32400 1 ULAST}
|
||||
{3147519600 28800 0 ULAT}
|
||||
{3163255200 32400 1 ULAST}
|
||||
{3178969200 28800 0 ULAT}
|
||||
{3194704800 32400 1 ULAST}
|
||||
{3210418800 28800 0 ULAT}
|
||||
{3226154400 32400 1 ULAST}
|
||||
{3241868400 28800 0 ULAT}
|
||||
{3257604000 32400 1 ULAST}
|
||||
{3273922800 28800 0 ULAT}
|
||||
{3289658400 32400 1 ULAST}
|
||||
{3305372400 28800 0 ULAT}
|
||||
{3321108000 32400 1 ULAST}
|
||||
{3336822000 28800 0 ULAT}
|
||||
{3352557600 32400 1 ULAST}
|
||||
{3368271600 28800 0 ULAT}
|
||||
{3384007200 32400 1 ULAST}
|
||||
{3399721200 28800 0 ULAT}
|
||||
{3415456800 32400 1 ULAST}
|
||||
{3431170800 28800 0 ULAT}
|
||||
{3446906400 32400 1 ULAST}
|
||||
{3463225200 28800 0 ULAT}
|
||||
{3478960800 32400 1 ULAST}
|
||||
{3494674800 28800 0 ULAT}
|
||||
{3510410400 32400 1 ULAST}
|
||||
{3526124400 28800 0 ULAT}
|
||||
{3541860000 32400 1 ULAST}
|
||||
{3557574000 28800 0 ULAT}
|
||||
{3573309600 32400 1 ULAST}
|
||||
{3589023600 28800 0 ULAT}
|
||||
{3604759200 32400 1 ULAST}
|
||||
{3621078000 28800 0 ULAT}
|
||||
{3636813600 32400 1 ULAST}
|
||||
{3652527600 28800 0 ULAT}
|
||||
{3668263200 32400 1 ULAST}
|
||||
{3683977200 28800 0 ULAT}
|
||||
{3699712800 32400 1 ULAST}
|
||||
{3715426800 28800 0 ULAT}
|
||||
{3731162400 32400 1 ULAST}
|
||||
{3746876400 28800 0 ULAT}
|
||||
{3762612000 32400 1 ULAST}
|
||||
{3778326000 28800 0 ULAT}
|
||||
{3794061600 32400 1 ULAST}
|
||||
{3810380400 28800 0 ULAT}
|
||||
{3826116000 32400 1 ULAST}
|
||||
{3841830000 28800 0 ULAT}
|
||||
{3857565600 32400 1 ULAST}
|
||||
{3873279600 28800 0 ULAT}
|
||||
{3889015200 32400 1 ULAST}
|
||||
{3904729200 28800 0 ULAT}
|
||||
{3920464800 32400 1 ULAST}
|
||||
{3936178800 28800 0 ULAT}
|
||||
{3951914400 32400 1 ULAST}
|
||||
{3967628400 28800 0 ULAT}
|
||||
{3983968800 32400 1 ULAST}
|
||||
{3999682800 28800 0 ULAT}
|
||||
{4015418400 32400 1 ULAST}
|
||||
{4031132400 28800 0 ULAT}
|
||||
{4046868000 32400 1 ULAST}
|
||||
{4062582000 28800 0 ULAT}
|
||||
{4078317600 32400 1 ULAST}
|
||||
{4094031600 28800 0 ULAT}
|
||||
}
|
||||
|
||||
@@ -1,15 +1,18 @@
|
||||
# created by tools/tclZIC.tcl - do not edit
|
||||
|
||||
set TZData(:Atlantic/Reykjavik) {
|
||||
{-9223372036854775808 -5244 0 LMT}
|
||||
{-4197047556 -5268 0 RMT}
|
||||
{-1956609132 -3600 0 IST}
|
||||
{-9223372036854775808 -5280 0 LMT}
|
||||
{-1956609120 -3600 0 IST}
|
||||
{-1668211200 0 1 ISST}
|
||||
{-1647212400 -3600 0 IST}
|
||||
{-1636675200 0 1 ISST}
|
||||
{-1613430000 -3600 0 IST}
|
||||
{-1605139200 0 1 ISST}
|
||||
{-1581894000 -3600 0 IST}
|
||||
{-1539561600 0 1 ISST}
|
||||
{-1531350000 -3600 0 IST}
|
||||
{-968025600 0 1 ISST}
|
||||
{-949615200 -3600 0 IST}
|
||||
{-952293600 -3600 0 IST}
|
||||
{-942008400 0 1 ISST}
|
||||
{-920239200 -3600 0 IST}
|
||||
{-909957600 0 1 ISST}
|
||||
|
||||
@@ -28,43 +28,43 @@ set TZData(:Europe/Volgograd) {
|
||||
{638319600 14400 1 VOLST}
|
||||
{654649200 10800 0 VOLT}
|
||||
{670374000 14400 0 VOLT}
|
||||
{701820000 14400 0 MSK}
|
||||
{701820000 14400 0 MSD}
|
||||
{717534000 10800 0 MSK}
|
||||
{733273200 14400 1 MSK}
|
||||
{733273200 14400 1 MSD}
|
||||
{748998000 10800 0 MSK}
|
||||
{764722800 14400 1 MSK}
|
||||
{764722800 14400 1 MSD}
|
||||
{780447600 10800 0 MSK}
|
||||
{796172400 14400 1 MSK}
|
||||
{796172400 14400 1 MSD}
|
||||
{811897200 10800 0 MSK}
|
||||
{828226800 14400 1 MSK}
|
||||
{828226800 14400 1 MSD}
|
||||
{846370800 10800 0 MSK}
|
||||
{859676400 14400 1 MSK}
|
||||
{859676400 14400 1 MSD}
|
||||
{877820400 10800 0 MSK}
|
||||
{891126000 14400 1 MSK}
|
||||
{891126000 14400 1 MSD}
|
||||
{909270000 10800 0 MSK}
|
||||
{922575600 14400 1 MSK}
|
||||
{922575600 14400 1 MSD}
|
||||
{941324400 10800 0 MSK}
|
||||
{954025200 14400 1 MSK}
|
||||
{954025200 14400 1 MSD}
|
||||
{972774000 10800 0 MSK}
|
||||
{985474800 14400 1 MSK}
|
||||
{985474800 14400 1 MSD}
|
||||
{1004223600 10800 0 MSK}
|
||||
{1017529200 14400 1 MSK}
|
||||
{1017529200 14400 1 MSD}
|
||||
{1035673200 10800 0 MSK}
|
||||
{1048978800 14400 1 MSK}
|
||||
{1048978800 14400 1 MSD}
|
||||
{1067122800 10800 0 MSK}
|
||||
{1080428400 14400 1 MSK}
|
||||
{1080428400 14400 1 MSD}
|
||||
{1099177200 10800 0 MSK}
|
||||
{1111878000 14400 1 MSK}
|
||||
{1111878000 14400 1 MSD}
|
||||
{1130626800 10800 0 MSK}
|
||||
{1143327600 14400 1 MSK}
|
||||
{1143327600 14400 1 MSD}
|
||||
{1162076400 10800 0 MSK}
|
||||
{1174777200 14400 1 MSK}
|
||||
{1174777200 14400 1 MSD}
|
||||
{1193526000 10800 0 MSK}
|
||||
{1206831600 14400 1 MSK}
|
||||
{1206831600 14400 1 MSD}
|
||||
{1224975600 10800 0 MSK}
|
||||
{1238281200 14400 1 MSK}
|
||||
{1238281200 14400 1 MSD}
|
||||
{1256425200 10800 0 MSK}
|
||||
{1269730800 14400 1 MSK}
|
||||
{1269730800 14400 1 MSD}
|
||||
{1288479600 10800 0 MSK}
|
||||
{1301180400 14400 0 MSK}
|
||||
{1414274400 10800 0 MSK}
|
||||
|
||||
@@ -1,14 +1,9 @@
|
||||
# created by tools/tclZIC.tcl - do not edit
|
||||
|
||||
set TZData(:Pacific/Easter) {
|
||||
{-9223372036854775808 -26264 0 LMT}
|
||||
{-2524495336 -26248 0 EMT}
|
||||
{-1178124152 -21600 0 EASST}
|
||||
{-870552000 -25200 0 EAST}
|
||||
{-865278000 -21600 1 EASST}
|
||||
{-740520000 -21600 1 EASST}
|
||||
{-736376400 -25200 0 EAST}
|
||||
{-718056000 -25200 0 EAST}
|
||||
{-9223372036854775808 -26248 0 LMT}
|
||||
{-2524495352 -26248 0 EMT}
|
||||
{-1178124152 -25200 0 EAST}
|
||||
{-36619200 -21600 1 EASST}
|
||||
{-23922000 -25200 0 EAST}
|
||||
{-3355200 -21600 1 EASST}
|
||||
@@ -49,10 +44,10 @@ set TZData(:Pacific/Easter) {
|
||||
{545194800 -21600 0 EAST}
|
||||
{560923200 -18000 1 EASST}
|
||||
{574225200 -21600 0 EAST}
|
||||
{591768000 -18000 1 EASST}
|
||||
{592372800 -18000 1 EASST}
|
||||
{605674800 -21600 0 EAST}
|
||||
{624427200 -18000 1 EASST}
|
||||
{637729200 -21600 0 EAST}
|
||||
{637124400 -21600 0 EAST}
|
||||
{653457600 -18000 1 EASST}
|
||||
{668574000 -21600 0 EAST}
|
||||
{687326400 -18000 1 EASST}
|
||||
@@ -102,174 +97,5 @@ set TZData(:Pacific/Easter) {
|
||||
{1378612800 -18000 1 EASST}
|
||||
{1398567600 -21600 0 EAST}
|
||||
{1410062400 -18000 1 EASST}
|
||||
{1430017200 -21600 0 EAST}
|
||||
{1441512000 -18000 1 EASST}
|
||||
{1461466800 -21600 0 EAST}
|
||||
{1472961600 -18000 1 EASST}
|
||||
{1492916400 -21600 0 EAST}
|
||||
{1504411200 -18000 1 EASST}
|
||||
{1524970800 -21600 0 EAST}
|
||||
{1535860800 -18000 1 EASST}
|
||||
{1556420400 -21600 0 EAST}
|
||||
{1567915200 -18000 1 EASST}
|
||||
{1587870000 -21600 0 EAST}
|
||||
{1599364800 -18000 1 EASST}
|
||||
{1619319600 -21600 0 EAST}
|
||||
{1630814400 -18000 1 EASST}
|
||||
{1650769200 -21600 0 EAST}
|
||||
{1662264000 -18000 1 EASST}
|
||||
{1682218800 -21600 0 EAST}
|
||||
{1693713600 -18000 1 EASST}
|
||||
{1714273200 -21600 0 EAST}
|
||||
{1725768000 -18000 1 EASST}
|
||||
{1745722800 -21600 0 EAST}
|
||||
{1757217600 -18000 1 EASST}
|
||||
{1777172400 -21600 0 EAST}
|
||||
{1788667200 -18000 1 EASST}
|
||||
{1808622000 -21600 0 EAST}
|
||||
{1820116800 -18000 1 EASST}
|
||||
{1840071600 -21600 0 EAST}
|
||||
{1851566400 -18000 1 EASST}
|
||||
{1872126000 -21600 0 EAST}
|
||||
{1883016000 -18000 1 EASST}
|
||||
{1903575600 -21600 0 EAST}
|
||||
{1915070400 -18000 1 EASST}
|
||||
{1935025200 -21600 0 EAST}
|
||||
{1946520000 -18000 1 EASST}
|
||||
{1966474800 -21600 0 EAST}
|
||||
{1977969600 -18000 1 EASST}
|
||||
{1997924400 -21600 0 EAST}
|
||||
{2009419200 -18000 1 EASST}
|
||||
{2029374000 -21600 0 EAST}
|
||||
{2040868800 -18000 1 EASST}
|
||||
{2061428400 -21600 0 EAST}
|
||||
{2072318400 -18000 1 EASST}
|
||||
{2092878000 -21600 0 EAST}
|
||||
{2104372800 -18000 1 EASST}
|
||||
{2124327600 -21600 0 EAST}
|
||||
{2135822400 -18000 1 EASST}
|
||||
{2155777200 -21600 0 EAST}
|
||||
{2167272000 -18000 1 EASST}
|
||||
{2187226800 -21600 0 EAST}
|
||||
{2198721600 -18000 1 EASST}
|
||||
{2219281200 -21600 0 EAST}
|
||||
{2230171200 -18000 1 EASST}
|
||||
{2250730800 -21600 0 EAST}
|
||||
{2262225600 -18000 1 EASST}
|
||||
{2282180400 -21600 0 EAST}
|
||||
{2293675200 -18000 1 EASST}
|
||||
{2313630000 -21600 0 EAST}
|
||||
{2325124800 -18000 1 EASST}
|
||||
{2345079600 -21600 0 EAST}
|
||||
{2356574400 -18000 1 EASST}
|
||||
{2376529200 -21600 0 EAST}
|
||||
{2388024000 -18000 1 EASST}
|
||||
{2408583600 -21600 0 EAST}
|
||||
{2419473600 -18000 1 EASST}
|
||||
{2440033200 -21600 0 EAST}
|
||||
{2451528000 -18000 1 EASST}
|
||||
{2471482800 -21600 0 EAST}
|
||||
{2482977600 -18000 1 EASST}
|
||||
{2502932400 -21600 0 EAST}
|
||||
{2514427200 -18000 1 EASST}
|
||||
{2534382000 -21600 0 EAST}
|
||||
{2545876800 -18000 1 EASST}
|
||||
{2565831600 -21600 0 EAST}
|
||||
{2577326400 -18000 1 EASST}
|
||||
{2597886000 -21600 0 EAST}
|
||||
{2609380800 -18000 1 EASST}
|
||||
{2629335600 -21600 0 EAST}
|
||||
{2640830400 -18000 1 EASST}
|
||||
{2660785200 -21600 0 EAST}
|
||||
{2672280000 -18000 1 EASST}
|
||||
{2692234800 -21600 0 EAST}
|
||||
{2703729600 -18000 1 EASST}
|
||||
{2723684400 -21600 0 EAST}
|
||||
{2735179200 -18000 1 EASST}
|
||||
{2755738800 -21600 0 EAST}
|
||||
{2766628800 -18000 1 EASST}
|
||||
{2787188400 -21600 0 EAST}
|
||||
{2798683200 -18000 1 EASST}
|
||||
{2818638000 -21600 0 EAST}
|
||||
{2830132800 -18000 1 EASST}
|
||||
{2850087600 -21600 0 EAST}
|
||||
{2861582400 -18000 1 EASST}
|
||||
{2881537200 -21600 0 EAST}
|
||||
{2893032000 -18000 1 EASST}
|
||||
{2912986800 -21600 0 EAST}
|
||||
{2924481600 -18000 1 EASST}
|
||||
{2945041200 -21600 0 EAST}
|
||||
{2955931200 -18000 1 EASST}
|
||||
{2976490800 -21600 0 EAST}
|
||||
{2987985600 -18000 1 EASST}
|
||||
{3007940400 -21600 0 EAST}
|
||||
{3019435200 -18000 1 EASST}
|
||||
{3039390000 -21600 0 EAST}
|
||||
{3050884800 -18000 1 EASST}
|
||||
{3070839600 -21600 0 EAST}
|
||||
{3082334400 -18000 1 EASST}
|
||||
{3102894000 -21600 0 EAST}
|
||||
{3113784000 -18000 1 EASST}
|
||||
{3134343600 -21600 0 EAST}
|
||||
{3145838400 -18000 1 EASST}
|
||||
{3165793200 -21600 0 EAST}
|
||||
{3177288000 -18000 1 EASST}
|
||||
{3197242800 -21600 0 EAST}
|
||||
{3208737600 -18000 1 EASST}
|
||||
{3228692400 -21600 0 EAST}
|
||||
{3240187200 -18000 1 EASST}
|
||||
{3260142000 -21600 0 EAST}
|
||||
{3271636800 -18000 1 EASST}
|
||||
{3292196400 -21600 0 EAST}
|
||||
{3303086400 -18000 1 EASST}
|
||||
{3323646000 -21600 0 EAST}
|
||||
{3335140800 -18000 1 EASST}
|
||||
{3355095600 -21600 0 EAST}
|
||||
{3366590400 -18000 1 EASST}
|
||||
{3386545200 -21600 0 EAST}
|
||||
{3398040000 -18000 1 EASST}
|
||||
{3417994800 -21600 0 EAST}
|
||||
{3429489600 -18000 1 EASST}
|
||||
{3449444400 -21600 0 EAST}
|
||||
{3460939200 -18000 1 EASST}
|
||||
{3481498800 -21600 0 EAST}
|
||||
{3492993600 -18000 1 EASST}
|
||||
{3512948400 -21600 0 EAST}
|
||||
{3524443200 -18000 1 EASST}
|
||||
{3544398000 -21600 0 EAST}
|
||||
{3555892800 -18000 1 EASST}
|
||||
{3575847600 -21600 0 EAST}
|
||||
{3587342400 -18000 1 EASST}
|
||||
{3607297200 -21600 0 EAST}
|
||||
{3618792000 -18000 1 EASST}
|
||||
{3639351600 -21600 0 EAST}
|
||||
{3650241600 -18000 1 EASST}
|
||||
{3670801200 -21600 0 EAST}
|
||||
{3682296000 -18000 1 EASST}
|
||||
{3702250800 -21600 0 EAST}
|
||||
{3713745600 -18000 1 EASST}
|
||||
{3733700400 -21600 0 EAST}
|
||||
{3745195200 -18000 1 EASST}
|
||||
{3765150000 -21600 0 EAST}
|
||||
{3776644800 -18000 1 EASST}
|
||||
{3796599600 -21600 0 EAST}
|
||||
{3808094400 -18000 1 EASST}
|
||||
{3828654000 -21600 0 EAST}
|
||||
{3839544000 -18000 1 EASST}
|
||||
{3860103600 -21600 0 EAST}
|
||||
{3871598400 -18000 1 EASST}
|
||||
{3891553200 -21600 0 EAST}
|
||||
{3903048000 -18000 1 EASST}
|
||||
{3923002800 -21600 0 EAST}
|
||||
{3934497600 -18000 1 EASST}
|
||||
{3954452400 -21600 0 EAST}
|
||||
{3965947200 -18000 1 EASST}
|
||||
{3986506800 -21600 0 EAST}
|
||||
{3997396800 -18000 1 EASST}
|
||||
{4017956400 -21600 0 EAST}
|
||||
{4029451200 -18000 1 EASST}
|
||||
{4049406000 -21600 0 EAST}
|
||||
{4060900800 -18000 1 EASST}
|
||||
{4080855600 -21600 0 EAST}
|
||||
{4092350400 -18000 1 EASST}
|
||||
{1430017200 -18000 0 EAST}
|
||||
}
|
||||
|
||||
@@ -1,10 +1,5 @@
|
||||
# created by tools/tclZIC.tcl - do not edit
|
||||
|
||||
set TZData(:Pacific/Midway) {
|
||||
{-9223372036854775808 -42568 0 LMT}
|
||||
{-2177410232 -39600 0 NST}
|
||||
{-428504400 -36000 1 NDT}
|
||||
{-420645600 -39600 0 NST}
|
||||
{-86878800 -39600 0 BST}
|
||||
{439038000 -39600 0 SST}
|
||||
if {![info exists TZData(Pacific/Pago_Pago)]} {
|
||||
LoadTimeZoneFile Pacific/Pago_Pago
|
||||
}
|
||||
set TZData(:Pacific/Midway) $TZData(:Pacific/Pago_Pago)
|
||||
|
||||
@@ -1,9 +1,5 @@
|
||||
# created by tools/tclZIC.tcl - do not edit
|
||||
|
||||
set TZData(:Pacific/Saipan) {
|
||||
{-9223372036854775808 -51420 0 LMT}
|
||||
{-3944626980 34980 0 LMT}
|
||||
{-2177487780 32400 0 MPT}
|
||||
{-7981200 36000 0 MPT}
|
||||
{977493600 36000 0 ChST}
|
||||
if {![info exists TZData(Pacific/Guam)]} {
|
||||
LoadTimeZoneFile Pacific/Guam
|
||||
}
|
||||
set TZData(:Pacific/Saipan) $TZData(:Pacific/Guam)
|
||||
|
||||
@@ -1412,7 +1412,8 @@ UpdateWaitingListAndServiceEvents(
|
||||
(tsdPtr->runLoopNestingLevel > 1
|
||||
|| !tsdPtr->runLoopRunning)) {
|
||||
tsdPtr->runLoopServicingEvents = 1;
|
||||
while (Tcl_ServiceAll() && tsdPtr->waitTime == 0) {}
|
||||
/* This call seems to simply force event processing through and prevents hangups that have long been observed with Tk-Cocoa. */
|
||||
Tcl_ServiceAll();
|
||||
tsdPtr->runLoopServicingEvents = 0;
|
||||
}
|
||||
break;
|
||||
|
||||
+19
-5
@@ -306,7 +306,6 @@ test http-3.13 {http::geturl socket leak test} {
|
||||
for {set i 0} {$i < 3} {incr i} {
|
||||
catch {http::geturl $badurl -timeout 5000}
|
||||
}
|
||||
|
||||
# No extra channels should be taken
|
||||
expr {[llength [file channels]] == $chanCount}
|
||||
} 1
|
||||
@@ -372,11 +371,11 @@ test http-3.27 {http::geturl: -headers override -type} -body {
|
||||
http::data $token
|
||||
} -cleanup {
|
||||
http::cleanup $token
|
||||
} -match regexp -result {(?n)Accept \*/\*
|
||||
Host .*
|
||||
} -match regexp -result {(?n)Host .*
|
||||
User-Agent .*
|
||||
Connection close
|
||||
Content-Type {text/plain;charset=utf-8}
|
||||
Accept \*/\*
|
||||
Accept-Encoding .*
|
||||
Content-Length 5}
|
||||
test http-3.28 {http::geturl: -headers override -type default} -body {
|
||||
@@ -385,11 +384,11 @@ test http-3.28 {http::geturl: -headers override -type default} -body {
|
||||
http::data $token
|
||||
} -cleanup {
|
||||
http::cleanup $token
|
||||
} -match regexp -result {(?n)Accept \*/\*
|
||||
Host .*
|
||||
} -match regexp -result {(?n)Host .*
|
||||
User-Agent .*
|
||||
Connection close
|
||||
Content-Type {text/plain;charset=utf-8}
|
||||
Accept \*/\*
|
||||
Accept-Encoding .*
|
||||
Content-Length 5}
|
||||
test http-3.29 {http::geturl IPv6 address} -body {
|
||||
@@ -418,6 +417,21 @@ test http-3.31 {http::geturl fragment without path} -body {
|
||||
} -cleanup {
|
||||
catch { http::cleanup $token }
|
||||
} -result 200
|
||||
# Bug c11a51c482
|
||||
test http-3.32 {http::geturl: -headers override -accept default} -body {
|
||||
set token [http::geturl $url/headers -query dummy \
|
||||
-headers [list "Accept" "text/plain,application/tcl-test-value"]]
|
||||
http::data $token
|
||||
} -cleanup {
|
||||
http::cleanup $token
|
||||
} -match regexp -result {(?n)Host .*
|
||||
User-Agent .*
|
||||
Connection close
|
||||
Accept text/plain,application/tcl-test-value
|
||||
Accept-Encoding .*
|
||||
Content-Type application/x-www-form-urlencoded
|
||||
Content-Length 5}
|
||||
|
||||
test http-4.1 {http::Event} -body {
|
||||
set token [http::geturl $url -keepalive 0]
|
||||
upvar #0 $token data
|
||||
|
||||
+26
-7
@@ -70,11 +70,8 @@ proc check_crc {tok args} {
|
||||
return "ok"
|
||||
}
|
||||
|
||||
makeFile "<html><head><title>test</title></head>\
|
||||
<body><p>this is a test</p>\n\
|
||||
[string repeat {<p>This is a tcl test file.</p>} 4192]\n\
|
||||
</body></html>" testdoc.html
|
||||
|
||||
makeFile "<html><head><title>test</title></head><body><p>this is a test</p>\n[string repeat {<p>This is a tcl test file.</p>} 4192]\n</body></html>" testdoc.html
|
||||
|
||||
# -------------------------------------------------------------------------
|
||||
|
||||
test http11-1.0 "normal request for document " -setup {
|
||||
@@ -447,7 +444,8 @@ test http11-2.10 "-channel,deflate,keepalive" -setup {
|
||||
set chan [open [makeFile {} testfile.tmp] wb+]
|
||||
} -body {
|
||||
set tok [http::geturl http://localhost:$httpd_port/testdoc.html \
|
||||
-timeout 5000 -channel $chan -keepalive 1]
|
||||
-timeout 5000 -channel $chan -keepalive 1 \
|
||||
-headers {accept-encoding deflate}]
|
||||
http::wait $tok
|
||||
seek $chan 0
|
||||
set data [read $chan]
|
||||
@@ -482,6 +480,27 @@ test http11-2.11 "-channel,identity,keepalive" -setup {
|
||||
halt_httpd
|
||||
} -result {ok {HTTP/1.1 200 OK} ok {} {} chunked}
|
||||
|
||||
test http11-2.12 "-channel,negotiate,keepalive" -setup {
|
||||
variable httpd [create_httpd]
|
||||
set chan [open [makeFile {} testfile.tmp] wb+]
|
||||
} -body {
|
||||
set tok [http::geturl http://localhost:$httpd_port/testdoc.html \
|
||||
-timeout 5000 -channel $chan -keepalive 1]
|
||||
http::wait $tok
|
||||
seek $chan 0
|
||||
set data [read $chan]
|
||||
list [http::status $tok] [http::code $tok] [check_crc $tok $data]\
|
||||
[meta $tok connection] [meta $tok content-encoding]\
|
||||
[meta $tok transfer-encoding] [meta $tok x-requested-encodings]\
|
||||
[expr {[file size testdoc.html]-[file size testfile.tmp]}]
|
||||
} -cleanup {
|
||||
http::cleanup $tok
|
||||
close $chan
|
||||
removeFile testfile.tmp
|
||||
halt_httpd
|
||||
} -result {ok {HTTP/1.1 200 OK} ok {} gzip chunked gzip,deflate,compress 0}
|
||||
|
||||
|
||||
# -------------------------------------------------------------------------
|
||||
#
|
||||
# The following tests for the -handler option will require changes in
|
||||
@@ -644,7 +663,7 @@ test http11-4.3 "normal post request, check channel query length" -setup {
|
||||
removeFile testfile.tmp
|
||||
halt_httpd
|
||||
} -result {status ok code {HTTP/1.1 200 OK} crc ok connection close query-length 122880}
|
||||
|
||||
|
||||
# -------------------------------------------------------------------------
|
||||
|
||||
foreach p {create_httpd httpd_read halt_httpd meta check_crc} {
|
||||
|
||||
+8
-7
@@ -158,13 +158,13 @@ proc Service {chan addr port} {
|
||||
}
|
||||
|
||||
if {$protocol eq "HTTP/1.1"} {
|
||||
if {[string match "*deflate*" [dict get? $meta accept-encoding]]} {
|
||||
set encoding deflate
|
||||
} elseif {[string match "*gzip*" [dict get? $meta accept-encoding]]} {
|
||||
set encoding gzip
|
||||
} elseif {[string match "*compress*" [dict get? $meta accept-encoding]]} {
|
||||
set encoding compress
|
||||
}
|
||||
foreach enc [split [dict get? $meta accept-encoding] ,] {
|
||||
set enc [string trim $enc]
|
||||
if {$enc in {deflate gzip compress}} {
|
||||
set encoding $enc
|
||||
break
|
||||
}
|
||||
}
|
||||
set transfer chunked
|
||||
} else {
|
||||
set close 1
|
||||
@@ -189,6 +189,7 @@ proc Service {chan addr port} {
|
||||
if {$close} {
|
||||
Puts $chan "connection: close"
|
||||
}
|
||||
Puts $chan "x-requested-encodings: [dict get? $meta accept-encoding]"
|
||||
if {$encoding eq "identity"} {
|
||||
Puts $chan "content-length: [string length $data]"
|
||||
} else {
|
||||
|
||||
+104
-1
@@ -1517,6 +1517,39 @@ test io-12.7 {ReadChars: too many chars read [bc5b790099]} {
|
||||
}
|
||||
close $c
|
||||
} {}
|
||||
test io-12.8 {ReadChars: multibyte chars split} {
|
||||
set f [open $path(test1) w]
|
||||
fconfigure $f -translation binary
|
||||
puts -nonewline $f [string repeat a 9]\xc2\xa0
|
||||
close $f
|
||||
set f [open $path(test1)]
|
||||
fconfigure $f -encoding utf-8 -buffersize 10
|
||||
set in [read $f]
|
||||
close $f
|
||||
scan [string index $in end] %c
|
||||
} 160
|
||||
test io-12.9 {ReadChars: multibyte chars split} {
|
||||
set f [open $path(test1) w]
|
||||
fconfigure $f -translation binary
|
||||
puts -nonewline $f [string repeat a 9]\xc2
|
||||
close $f
|
||||
set f [open $path(test1)]
|
||||
fconfigure $f -encoding utf-8 -buffersize 10
|
||||
set in [read $f]
|
||||
close $f
|
||||
scan [string index $in end] %c
|
||||
} 194
|
||||
test io-12.10 {ReadChars: multibyte chars split} {
|
||||
set f [open $path(test1) w]
|
||||
fconfigure $f -translation binary
|
||||
puts -nonewline $f [string repeat a 9]\xc2
|
||||
close $f
|
||||
set f [open $path(test1)]
|
||||
fconfigure $f -encoding utf-8 -buffersize 11
|
||||
set in [read $f]
|
||||
close $f
|
||||
scan [string index $in end] %c
|
||||
} 194
|
||||
|
||||
test io-13.1 {TranslateInputEOL: cr mode} {} {
|
||||
set f [open $path(test1) w]
|
||||
@@ -7355,7 +7388,7 @@ test io-53.4 {CopyData: background write overflow} {stdio unix openpipe fileeven
|
||||
set result ""
|
||||
fileevent $f1 read [namespace code {
|
||||
append result [read $f1 1024]
|
||||
if {[string length $result] >= [string length $big]} {
|
||||
if {[string length $result] >= [string length $big]+1} {
|
||||
set x done
|
||||
}
|
||||
}]
|
||||
@@ -7364,6 +7397,38 @@ test io-53.4 {CopyData: background write overflow} {stdio unix openpipe fileeven
|
||||
set big {}
|
||||
set x
|
||||
} done
|
||||
test io-53.4.1 {Bug 894da183c8} {stdio fcopy} {
|
||||
set big bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb\n
|
||||
variable x
|
||||
for {set x 0} {$x < 12} {incr x} {
|
||||
append big $big
|
||||
}
|
||||
file delete $path(pipe)
|
||||
set f1 [open $path(pipe) w]
|
||||
puts $f1 [list file delete $path(test1)]
|
||||
puts $f1 {
|
||||
puts ready
|
||||
set f [open io-53.4.1 w]
|
||||
chan configure $f -translation lf
|
||||
fcopy stdin $f -command { set x }
|
||||
vwait x
|
||||
close $f
|
||||
}
|
||||
puts $f1 "close \[[list open $path(test1) w]]"
|
||||
close $f1
|
||||
set f1 [open "|[list [interpreter] $path(pipe)]" r+]
|
||||
set result [gets $f1]
|
||||
fconfigure $f1 -blocking 0 -buffersize 125000 -translation lf
|
||||
puts $f1 $big
|
||||
fconfigure $f1 -blocking 1
|
||||
close $f1
|
||||
set big {}
|
||||
while {[catch {glob $path(test1)}]} {after 50}
|
||||
file delete $path(test1)
|
||||
set check [file size io-53.4.1]
|
||||
file delete io-53.4.1
|
||||
set check
|
||||
} 266241
|
||||
set result {}
|
||||
proc FcopyTestAccept {sock args} {
|
||||
after 1000 "close $sock"
|
||||
@@ -8523,6 +8588,44 @@ test io-73.3 {[5adc350683] [gets] after EOF} -setup {
|
||||
removeFile io-73.3
|
||||
} -result {1 1 {more data} 0 {} 1}
|
||||
|
||||
test io-73.4 {[5adc350683] [read] after EOF} -setup {
|
||||
set fn [makeFile {} io-73.4]
|
||||
set rfd [open $fn r]
|
||||
set wfd [open $fn a]
|
||||
chan configure $wfd -buffering line
|
||||
read $rfd
|
||||
} -body {
|
||||
set result [eof $rfd]
|
||||
puts $wfd "more data"
|
||||
lappend result [eof $rfd]
|
||||
lappend result [read $rfd]
|
||||
lappend result [eof $rfd]
|
||||
} -cleanup {
|
||||
close $wfd
|
||||
close $rfd
|
||||
removeFile io-73.4
|
||||
} -result {1 1 {more data
|
||||
} 1}
|
||||
|
||||
test io-73.5 {effect of eof on encoding end flags} -setup {
|
||||
set fn [makeFile {} io-73.5]
|
||||
set rfd [open $fn r]
|
||||
set wfd [open $fn a]
|
||||
chan configure $wfd -buffering none -translation binary
|
||||
chan configure $rfd -buffersize 5 -encoding utf-8
|
||||
read $rfd
|
||||
} -body {
|
||||
set result [eof $rfd]
|
||||
puts -nonewline $wfd "more\u00c2\u00a0data"
|
||||
lappend result [eof $rfd]
|
||||
lappend result [read $rfd]
|
||||
lappend result [eof $rfd]
|
||||
} -cleanup {
|
||||
close $wfd
|
||||
close $rfd
|
||||
removeFile io-73.5
|
||||
} -result [list 1 1 more\u00a0data 1]
|
||||
|
||||
# ### ### ### ######### ######### #########
|
||||
|
||||
# cleanup
|
||||
|
||||
@@ -137,6 +137,15 @@ test lreplace-4.1 {Bug ccc2c2cc98: lreplace edge case} {
|
||||
test lreplace-4.2 {Bug ccc2c2cc98: lreplace edge case} {
|
||||
lreplace { } 1 1
|
||||
} {}
|
||||
test lreplace-4.3 {lreplace edge case} {
|
||||
lreplace {1 2 3} 2 0
|
||||
} {1 2 3}
|
||||
test lreplace-4.4 {lreplace edge case} {
|
||||
lreplace {1 2 3 4 5} 3 1
|
||||
} {1 2 3 4 5}
|
||||
test lreplace-4.5 {lreplace edge case} {
|
||||
lreplace {1 2 3 4 5} 3 0 _
|
||||
} {1 2 3 _ 4 5}
|
||||
|
||||
# cleanup
|
||||
catch {unset foo}
|
||||
|
||||
@@ -151,6 +151,27 @@ test nre-4.1 {ensembles are not recursive} -setup {
|
||||
testnrelevels
|
||||
} -result {{0 2 1 1} 0}
|
||||
|
||||
test nre-4.2 {(compiled) ensembles do not break tailcall} -setup {
|
||||
# Fix Bug d87cb18205
|
||||
proc b {} {
|
||||
tailcall append result first
|
||||
}
|
||||
set map [namespace ensemble configure ::dict -map]
|
||||
dict set map a b
|
||||
namespace ensemble configure ::dict -map $map
|
||||
proc demo {} {
|
||||
dict a
|
||||
append result second
|
||||
}
|
||||
} -body {
|
||||
demo
|
||||
} -cleanup {
|
||||
rename demo {}
|
||||
namespace ensemble configure ::dict -map [dict remove $map a]
|
||||
unset map
|
||||
rename b {}
|
||||
} -result firstsecond
|
||||
|
||||
test nre-5.1 {[namespace eval] is not recursive} -setup {
|
||||
namespace eval ::foo {
|
||||
setabs
|
||||
|
||||
@@ -416,6 +416,31 @@ test oo-2.8 {construction, method calls and ensembles - Bug 3514761} -setup {
|
||||
} -returnCodes error -cleanup {
|
||||
namespace delete k
|
||||
} -result {wrong # args: should be "k next j"}
|
||||
test oo-2.9 {construction failures and self creation} -setup {
|
||||
set ::result {}
|
||||
oo::class create Root
|
||||
} -body {
|
||||
oo::class create A {
|
||||
superclass Root
|
||||
constructor {} {
|
||||
lappend ::result "in A"
|
||||
error "failure in A"
|
||||
}
|
||||
destructor {lappend ::result [self]}
|
||||
}
|
||||
oo::class create B {
|
||||
superclass Root
|
||||
constructor {} {
|
||||
lappend ::result "in B [self]"
|
||||
error "failure in B"
|
||||
}
|
||||
destructor {lappend ::result [self]}
|
||||
}
|
||||
lappend ::result [catch {A create a} msg] $msg
|
||||
lappend ::result [catch {B create b} msg] $msg
|
||||
} -cleanup {
|
||||
Root destroy
|
||||
} -result {{in A} ::a 1 {failure in A} {in B ::b} ::b 1 {failure in B}}
|
||||
|
||||
test oo-3.1 {basic test of OO functionality: destructor} -setup {
|
||||
# This is a bit complex because it needs to run in a sub-interp as we're
|
||||
@@ -1544,6 +1569,34 @@ test oo-12.7 {OO: filters} -setup {
|
||||
} -cleanup {
|
||||
Aclass destroy
|
||||
} -result {foo {{::Aclass outerfoo} {::Aclass InnerFoo}}}
|
||||
test oo-12.8 {OO: filters and destructors} -setup {
|
||||
oo::class create Aclass
|
||||
Aclass create Aobject
|
||||
set ::log {}
|
||||
} -body {
|
||||
oo::define Aclass {
|
||||
constructor {} {
|
||||
lappend ::log "in constructor"
|
||||
}
|
||||
destructor {
|
||||
lappend ::log "in destructor"
|
||||
}
|
||||
method bar {} {
|
||||
lappend ::log "in method"
|
||||
}
|
||||
method Boo args {
|
||||
lappend ::log [self target]
|
||||
next {*}$args
|
||||
}
|
||||
filter Boo
|
||||
}
|
||||
set obj [Aclass new]
|
||||
$obj bar
|
||||
$obj destroy
|
||||
return $::log
|
||||
} -cleanup {
|
||||
Aclass destroy
|
||||
} -result {{in constructor} {::Aclass bar} {in method} {::oo::object destroy} {in destructor}}
|
||||
|
||||
test oo-13.1 {OO: changing an object's class} {
|
||||
oo::class create Aclass
|
||||
|
||||
@@ -866,6 +866,196 @@ test oo-call-3.4 {current call introspection: in destructors} -setup {
|
||||
} -cleanup {
|
||||
root destroy
|
||||
} -result {{{{method <destructor> ::B method} {method <destructor> ::A method}} 0} {{{method <destructor> ::B method} {method <destructor> ::A method}} 1}}
|
||||
|
||||
# Contributed tests from aspect, related to [0f42ff7871]
|
||||
#
|
||||
# dkf's "Principles Leading to a Fix"
|
||||
#
|
||||
# A method ought to work "the same" whether or not it has been overridden by
|
||||
# a subclass. A tailcalled command ought to have as parent stack the same
|
||||
# thing you'd get with uplevel 1. A subclass will often expect the
|
||||
# superclass's result to be the result that would be returned if the
|
||||
# subclass was not there.
|
||||
|
||||
# Common setup:
|
||||
# any invocation of bar should emit "abc\nhi\n" then return to its
|
||||
# caller
|
||||
set testopts {
|
||||
-setup {
|
||||
oo::class create Master
|
||||
oo::class create Foo {
|
||||
superclass Master
|
||||
method bar {} {
|
||||
puts abc
|
||||
tailcall puts hi
|
||||
puts xyz
|
||||
}
|
||||
}
|
||||
oo::class create Foo2 {
|
||||
superclass Master
|
||||
}
|
||||
}
|
||||
-cleanup {
|
||||
Master destroy
|
||||
}
|
||||
}
|
||||
|
||||
# these succeed, showing that without [next] the bug doesn't fire
|
||||
test next-tailcall-simple-1 "trivial case with one method" {*}$testopts -body {
|
||||
[Foo create foo] bar
|
||||
} -output [join {abc hi} \n]\n
|
||||
test next-tailcall-simple-2 "my bar" {*}$testopts -body {
|
||||
oo::define Foo method baz {} {
|
||||
puts a
|
||||
my bar
|
||||
puts b
|
||||
}
|
||||
[Foo create foo] baz
|
||||
} -output [join {a abc hi b} \n]\n
|
||||
test next-tailcall-simple-3 "\[self\] bar" {*}$testopts -body {
|
||||
oo::define Foo method baz {} {
|
||||
puts a
|
||||
[self] bar
|
||||
puts b
|
||||
}
|
||||
[Foo create foo] baz
|
||||
} -output [join {a abc hi b} \n]\n
|
||||
test next-tailcall-simple-4 "foo bar" {*}$testopts -body {
|
||||
oo::define Foo method baz {} {
|
||||
puts a
|
||||
foo bar
|
||||
puts b
|
||||
}
|
||||
[Foo create foo] baz
|
||||
} -output [join {a abc hi b} \n]\n
|
||||
|
||||
# everything from here on uses [next], and fails on 8.6.4 with compilation
|
||||
test next-tailcall-superclass-1 "next superclass" {*}$testopts -body {
|
||||
oo::define Foo2 {
|
||||
superclass Foo
|
||||
method bar {} {
|
||||
puts a
|
||||
next
|
||||
puts b
|
||||
}
|
||||
}
|
||||
[Foo2 create foo] bar
|
||||
} -output [join {a abc hi b} \n]\n
|
||||
test next-tailcall-superclass-2 "nextto superclass" {*}$testopts -body {
|
||||
oo::define Foo2 {
|
||||
superclass Foo
|
||||
method bar {} {
|
||||
puts a
|
||||
nextto Foo
|
||||
puts b
|
||||
}
|
||||
}
|
||||
[Foo2 create foo] bar
|
||||
} -output [join {a abc hi b} \n]\n
|
||||
|
||||
test next-tailcall-mixin-1 "class mixin" {*}$testopts -body {
|
||||
oo::define Foo2 {
|
||||
method Bar {} {
|
||||
puts a
|
||||
next
|
||||
puts b
|
||||
}
|
||||
filter Bar
|
||||
}
|
||||
oo::define Foo mixin Foo2
|
||||
Foo create foo
|
||||
foo bar
|
||||
} -output [join {a abc hi b} \n]\n
|
||||
|
||||
test next-tailcall-objmixin-1 "object mixin" {*}$testopts -body {
|
||||
oo::define Foo2 {
|
||||
method Bar {} {
|
||||
puts a
|
||||
next
|
||||
puts b
|
||||
}
|
||||
filter Bar
|
||||
}
|
||||
Foo create foo
|
||||
oo::objdefine foo mixin Foo2
|
||||
foo bar
|
||||
} -output [join {a abc hi b} \n]\n
|
||||
|
||||
test next-tailcall-filter-1 "filter method" {*}$testopts -body {
|
||||
oo::define Foo method Filter {} {
|
||||
puts a
|
||||
next
|
||||
puts b
|
||||
}
|
||||
oo::define Foo filter Filter
|
||||
[Foo new] bar
|
||||
} -output [join {a abc hi b} \n]\n
|
||||
|
||||
test next-tailcall-forward-1 "forward method" {*}$testopts -body {
|
||||
proc foobar {} {
|
||||
puts "abc"
|
||||
tailcall puts "hi"
|
||||
puts "xyz"
|
||||
}
|
||||
oo::define Foo forward foobar foobar
|
||||
oo::define Foo2 {
|
||||
superclass Foo
|
||||
method foobar {} {
|
||||
puts a
|
||||
next
|
||||
puts b
|
||||
}
|
||||
}
|
||||
[Foo2 new] foobar
|
||||
} -output [join {a abc hi b} \n]\n
|
||||
|
||||
test next-tailcall-constructor-1 "next in constructor" -body {
|
||||
oo::class create Foo {
|
||||
constructor {} {
|
||||
puts abc
|
||||
tailcall puts hi
|
||||
puts xyz
|
||||
}
|
||||
}
|
||||
oo::class create Foo2 {
|
||||
superclass Foo
|
||||
constructor {} {
|
||||
puts a
|
||||
next
|
||||
puts b
|
||||
}
|
||||
}
|
||||
list [Foo new] [Foo2 new]
|
||||
return ""
|
||||
} -cleanup {
|
||||
Foo destroy
|
||||
} -output [join {abc hi a abc hi b} \n]\n
|
||||
|
||||
test next-tailcall-destructor-1 "next in destructor" -body {
|
||||
oo::class create Foo {
|
||||
destructor {
|
||||
puts abc
|
||||
tailcall puts hi
|
||||
puts xyz
|
||||
}
|
||||
}
|
||||
oo::class create Foo2 {
|
||||
superclass Foo
|
||||
destructor {
|
||||
puts a
|
||||
next
|
||||
puts b
|
||||
}
|
||||
}
|
||||
Foo create foo
|
||||
Foo2 create foo2
|
||||
foo destroy
|
||||
foo2 destroy
|
||||
} -output [join {abc hi a abc hi b} \n]\n -cleanup {
|
||||
Foo destroy
|
||||
}
|
||||
|
||||
unset testopts
|
||||
|
||||
cleanupTests
|
||||
return
|
||||
|
||||
@@ -147,6 +147,36 @@ test tailcall-0.5 {tailcall is constant space} -constraints testnrelevels -setup
|
||||
rename b {}
|
||||
} -result {0 0 0 0 0 0}
|
||||
|
||||
test tailcall-0.5.1 {tailcall is constant space} -constraints testnrelevels -setup {
|
||||
#
|
||||
# This test is related to [bug d87cb182053fd79b3]: the fix to that bug was
|
||||
# to remove a call to TclSkipTailcall, which caused a violation of the
|
||||
# constant-space property of tailcall in that particular
|
||||
# configuration. This test was added to detect that, and insure that the
|
||||
# problem is fixed.
|
||||
#
|
||||
|
||||
proc b i {
|
||||
if {$i == 1} {
|
||||
depthDiff
|
||||
}
|
||||
if {[incr i] > 10} {
|
||||
return [depthDiff]
|
||||
}
|
||||
tailcall dict b $i
|
||||
}
|
||||
set map0 [namespace ensemble configure dict -map]
|
||||
set map $map0
|
||||
dict set map b b
|
||||
namespace ensemble configure dict -map $map
|
||||
} -body {
|
||||
dict b 0
|
||||
} -cleanup {
|
||||
rename b {}
|
||||
namespace ensemble configure dict -map $map0
|
||||
unset map map0
|
||||
} -result {0 0 0 0 0 0}
|
||||
|
||||
test tailcall-0.6 {tailcall is constant space} -constraints {testnrelevels knownBug} -setup {
|
||||
#
|
||||
# This test fails because ns-unknown is not NR-enabled
|
||||
|
||||
@@ -667,7 +667,11 @@ try {
|
||||
|
||||
# ... but try to extract (name, version) from subdir contents
|
||||
try {
|
||||
set f [open [file join $pkgsDir $dir configure.in]]
|
||||
try {
|
||||
set f [open [file join $pkgsDir $dir configure.in]]
|
||||
} trap {POSIX ENOENT} {} {
|
||||
set f [open [file join $pkgsDir $dir configure.ac]]
|
||||
}
|
||||
foreach line [split [read $f] \n] {
|
||||
if {2 == [scan $line \
|
||||
{ AC_INIT ( [%[^]]] , [%[^]]] ) } n v]} {
|
||||
|
||||
+3
-4
@@ -96,7 +96,7 @@ CFLAGS_WARNING = @CFLAGS_WARNING@
|
||||
|
||||
# The default switches for optimization or debugging
|
||||
CFLAGS_DEBUG = @CFLAGS_DEBUG@
|
||||
CFLAGS_OPTIMIZE = -DNDEBUG @CFLAGS_OPTIMIZE@
|
||||
CFLAGS_OPTIMIZE = @CFLAGS_OPTIMIZE@
|
||||
|
||||
# To change the compiler switches, for example to change from optimization to
|
||||
# debugging symbols, change the following line:
|
||||
@@ -844,8 +844,8 @@ install-libraries: libraries
|
||||
do \
|
||||
$(INSTALL_DATA) $$i "$(SCRIPT_INSTALL_DIR)"/http1.0; \
|
||||
done;
|
||||
@echo "Installing package http 2.8.8 as a Tcl Module";
|
||||
@$(INSTALL_DATA) $(TOP_DIR)/library/http/http.tcl "$(SCRIPT_INSTALL_DIR)"/../tcl8/8.6/http-2.8.8.tm;
|
||||
@echo "Installing package http 2.8.9 as a Tcl Module";
|
||||
@$(INSTALL_DATA) $(TOP_DIR)/library/http/http.tcl "$(SCRIPT_INSTALL_DIR)"/../tcl8/8.6/http-2.8.9.tm;
|
||||
@echo "Installing package opt0.4 files to $(SCRIPT_INSTALL_DIR)/opt0.4/";
|
||||
@for i in $(TOP_DIR)/library/opt/*.tcl ; \
|
||||
do \
|
||||
@@ -1200,7 +1200,6 @@ tclLoadDld.o: $(UNIX_DIR)/tclLoadDld.c
|
||||
$(CC) -c $(CC_SWITCHES) $(UNIX_DIR)/tclLoadDld.c
|
||||
|
||||
tclLoadDyld.o: $(UNIX_DIR)/tclLoadDyld.c
|
||||
@echo Warnings are expected from compiling tclLoadDyld.c: deprecated API use
|
||||
$(CC) -c $(CC_SWITCHES) $(UNIX_DIR)/tclLoadDyld.c
|
||||
|
||||
tclLoadNone.o: $(GENERIC_DIR)/tclLoadNone.c
|
||||
|
||||
Vendored
+232
-153
@@ -857,6 +857,8 @@ Optional Features:
|
||||
--enable-load allow dynamic loading and "load" command (default:
|
||||
on)
|
||||
--enable-symbols build with debugging symbols (default: off)
|
||||
--enable-usleep use usleep if possible to sleep, otherwise use
|
||||
Tcl_Sleep (default: on)
|
||||
--enable-langinfo use nl_langinfo if possible to determine encoding at
|
||||
startup, otherwise use old heuristic (default: on)
|
||||
--enable-dll-unloading enable the 'unload' command (default: on)
|
||||
@@ -1335,7 +1337,7 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu
|
||||
TCL_VERSION=8.6
|
||||
TCL_MAJOR_VERSION=8
|
||||
TCL_MINOR_VERSION=6
|
||||
TCL_PATCH_LEVEL=".3"
|
||||
TCL_PATCH_LEVEL=".4"
|
||||
VERSION=${TCL_VERSION}
|
||||
|
||||
EXTRA_INSTALL_BINARIES=${EXTRA_INSTALL_BINARIES:-"@:"}
|
||||
@@ -3329,158 +3331,6 @@ cat >>confdefs.h <<\_ACEOF
|
||||
#define NO_VALUES_H 1
|
||||
_ACEOF
|
||||
|
||||
fi
|
||||
|
||||
|
||||
if test "${ac_cv_header_limits_h+set}" = set; then
|
||||
echo "$as_me:$LINENO: checking for limits.h" >&5
|
||||
echo $ECHO_N "checking for limits.h... $ECHO_C" >&6
|
||||
if test "${ac_cv_header_limits_h+set}" = set; then
|
||||
echo $ECHO_N "(cached) $ECHO_C" >&6
|
||||
fi
|
||||
echo "$as_me:$LINENO: result: $ac_cv_header_limits_h" >&5
|
||||
echo "${ECHO_T}$ac_cv_header_limits_h" >&6
|
||||
else
|
||||
# Is the header compilable?
|
||||
echo "$as_me:$LINENO: checking limits.h usability" >&5
|
||||
echo $ECHO_N "checking limits.h usability... $ECHO_C" >&6
|
||||
cat >conftest.$ac_ext <<_ACEOF
|
||||
/* confdefs.h. */
|
||||
_ACEOF
|
||||
cat confdefs.h >>conftest.$ac_ext
|
||||
cat >>conftest.$ac_ext <<_ACEOF
|
||||
/* end confdefs.h. */
|
||||
$ac_includes_default
|
||||
#include <limits.h>
|
||||
_ACEOF
|
||||
rm -f conftest.$ac_objext
|
||||
if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
|
||||
(eval $ac_compile) 2>conftest.er1
|
||||
ac_status=$?
|
||||
grep -v '^ *+' conftest.er1 >conftest.err
|
||||
rm -f conftest.er1
|
||||
cat conftest.err >&5
|
||||
echo "$as_me:$LINENO: \$? = $ac_status" >&5
|
||||
(exit $ac_status); } &&
|
||||
{ ac_try='test -z "$ac_c_werror_flag"
|
||||
|| test ! -s conftest.err'
|
||||
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
|
||||
(eval $ac_try) 2>&5
|
||||
ac_status=$?
|
||||
echo "$as_me:$LINENO: \$? = $ac_status" >&5
|
||||
(exit $ac_status); }; } &&
|
||||
{ ac_try='test -s conftest.$ac_objext'
|
||||
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
|
||||
(eval $ac_try) 2>&5
|
||||
ac_status=$?
|
||||
echo "$as_me:$LINENO: \$? = $ac_status" >&5
|
||||
(exit $ac_status); }; }; then
|
||||
ac_header_compiler=yes
|
||||
else
|
||||
echo "$as_me: failed program was:" >&5
|
||||
sed 's/^/| /' conftest.$ac_ext >&5
|
||||
|
||||
ac_header_compiler=no
|
||||
fi
|
||||
rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
|
||||
echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
|
||||
echo "${ECHO_T}$ac_header_compiler" >&6
|
||||
|
||||
# Is the header present?
|
||||
echo "$as_me:$LINENO: checking limits.h presence" >&5
|
||||
echo $ECHO_N "checking limits.h presence... $ECHO_C" >&6
|
||||
cat >conftest.$ac_ext <<_ACEOF
|
||||
/* confdefs.h. */
|
||||
_ACEOF
|
||||
cat confdefs.h >>conftest.$ac_ext
|
||||
cat >>conftest.$ac_ext <<_ACEOF
|
||||
/* end confdefs.h. */
|
||||
#include <limits.h>
|
||||
_ACEOF
|
||||
if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
|
||||
(eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
|
||||
ac_status=$?
|
||||
grep -v '^ *+' conftest.er1 >conftest.err
|
||||
rm -f conftest.er1
|
||||
cat conftest.err >&5
|
||||
echo "$as_me:$LINENO: \$? = $ac_status" >&5
|
||||
(exit $ac_status); } >/dev/null; then
|
||||
if test -s conftest.err; then
|
||||
ac_cpp_err=$ac_c_preproc_warn_flag
|
||||
ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
|
||||
else
|
||||
ac_cpp_err=
|
||||
fi
|
||||
else
|
||||
ac_cpp_err=yes
|
||||
fi
|
||||
if test -z "$ac_cpp_err"; then
|
||||
ac_header_preproc=yes
|
||||
else
|
||||
echo "$as_me: failed program was:" >&5
|
||||
sed 's/^/| /' conftest.$ac_ext >&5
|
||||
|
||||
ac_header_preproc=no
|
||||
fi
|
||||
rm -f conftest.err conftest.$ac_ext
|
||||
echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
|
||||
echo "${ECHO_T}$ac_header_preproc" >&6
|
||||
|
||||
# So? What about this header?
|
||||
case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
|
||||
yes:no: )
|
||||
{ echo "$as_me:$LINENO: WARNING: limits.h: accepted by the compiler, rejected by the preprocessor!" >&5
|
||||
echo "$as_me: WARNING: limits.h: accepted by the compiler, rejected by the preprocessor!" >&2;}
|
||||
{ echo "$as_me:$LINENO: WARNING: limits.h: proceeding with the compiler's result" >&5
|
||||
echo "$as_me: WARNING: limits.h: proceeding with the compiler's result" >&2;}
|
||||
ac_header_preproc=yes
|
||||
;;
|
||||
no:yes:* )
|
||||
{ echo "$as_me:$LINENO: WARNING: limits.h: present but cannot be compiled" >&5
|
||||
echo "$as_me: WARNING: limits.h: present but cannot be compiled" >&2;}
|
||||
{ echo "$as_me:$LINENO: WARNING: limits.h: check for missing prerequisite headers?" >&5
|
||||
echo "$as_me: WARNING: limits.h: check for missing prerequisite headers?" >&2;}
|
||||
{ echo "$as_me:$LINENO: WARNING: limits.h: see the Autoconf documentation" >&5
|
||||
echo "$as_me: WARNING: limits.h: see the Autoconf documentation" >&2;}
|
||||
{ echo "$as_me:$LINENO: WARNING: limits.h: section \"Present But Cannot Be Compiled\"" >&5
|
||||
echo "$as_me: WARNING: limits.h: section \"Present But Cannot Be Compiled\"" >&2;}
|
||||
{ echo "$as_me:$LINENO: WARNING: limits.h: proceeding with the preprocessor's result" >&5
|
||||
echo "$as_me: WARNING: limits.h: proceeding with the preprocessor's result" >&2;}
|
||||
{ echo "$as_me:$LINENO: WARNING: limits.h: in the future, the compiler will take precedence" >&5
|
||||
echo "$as_me: WARNING: limits.h: in the future, the compiler will take precedence" >&2;}
|
||||
(
|
||||
cat <<\_ASBOX
|
||||
## ------------------------------ ##
|
||||
## Report this to the tcl lists. ##
|
||||
## ------------------------------ ##
|
||||
_ASBOX
|
||||
) |
|
||||
sed "s/^/$as_me: WARNING: /" >&2
|
||||
;;
|
||||
esac
|
||||
echo "$as_me:$LINENO: checking for limits.h" >&5
|
||||
echo $ECHO_N "checking for limits.h... $ECHO_C" >&6
|
||||
if test "${ac_cv_header_limits_h+set}" = set; then
|
||||
echo $ECHO_N "(cached) $ECHO_C" >&6
|
||||
else
|
||||
ac_cv_header_limits_h=$ac_header_preproc
|
||||
fi
|
||||
echo "$as_me:$LINENO: result: $ac_cv_header_limits_h" >&5
|
||||
echo "${ECHO_T}$ac_cv_header_limits_h" >&6
|
||||
|
||||
fi
|
||||
if test $ac_cv_header_limits_h = yes; then
|
||||
|
||||
cat >>confdefs.h <<\_ACEOF
|
||||
#define HAVE_LIMITS_H 1
|
||||
_ACEOF
|
||||
|
||||
else
|
||||
|
||||
cat >>confdefs.h <<\_ACEOF
|
||||
#define NO_LIMITS_H 1
|
||||
_ACEOF
|
||||
|
||||
fi
|
||||
|
||||
|
||||
@@ -16881,6 +16731,235 @@ _ACEOF
|
||||
|
||||
fi
|
||||
|
||||
#--------------------------------------------------------------------
|
||||
# Check for support of usleep function
|
||||
#--------------------------------------------------------------------
|
||||
|
||||
|
||||
# Check whether --enable-usleep or --disable-usleep was given.
|
||||
if test "${enable_usleep+set}" = set; then
|
||||
enableval="$enable_usleep"
|
||||
usleep_ok=$enableval
|
||||
else
|
||||
usleep_ok=yes
|
||||
fi;
|
||||
|
||||
HAVE_USLEEP=0
|
||||
if test "$usleep_ok" = "yes"; then
|
||||
if test "${ac_cv_header_unistd_h+set}" = set; then
|
||||
echo "$as_me:$LINENO: checking for unistd.h" >&5
|
||||
echo $ECHO_N "checking for unistd.h... $ECHO_C" >&6
|
||||
if test "${ac_cv_header_unistd_h+set}" = set; then
|
||||
echo $ECHO_N "(cached) $ECHO_C" >&6
|
||||
fi
|
||||
echo "$as_me:$LINENO: result: $ac_cv_header_unistd_h" >&5
|
||||
echo "${ECHO_T}$ac_cv_header_unistd_h" >&6
|
||||
else
|
||||
# Is the header compilable?
|
||||
echo "$as_me:$LINENO: checking unistd.h usability" >&5
|
||||
echo $ECHO_N "checking unistd.h usability... $ECHO_C" >&6
|
||||
cat >conftest.$ac_ext <<_ACEOF
|
||||
/* confdefs.h. */
|
||||
_ACEOF
|
||||
cat confdefs.h >>conftest.$ac_ext
|
||||
cat >>conftest.$ac_ext <<_ACEOF
|
||||
/* end confdefs.h. */
|
||||
$ac_includes_default
|
||||
#include <unistd.h>
|
||||
_ACEOF
|
||||
rm -f conftest.$ac_objext
|
||||
if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
|
||||
(eval $ac_compile) 2>conftest.er1
|
||||
ac_status=$?
|
||||
grep -v '^ *+' conftest.er1 >conftest.err
|
||||
rm -f conftest.er1
|
||||
cat conftest.err >&5
|
||||
echo "$as_me:$LINENO: \$? = $ac_status" >&5
|
||||
(exit $ac_status); } &&
|
||||
{ ac_try='test -z "$ac_c_werror_flag"
|
||||
|| test ! -s conftest.err'
|
||||
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
|
||||
(eval $ac_try) 2>&5
|
||||
ac_status=$?
|
||||
echo "$as_me:$LINENO: \$? = $ac_status" >&5
|
||||
(exit $ac_status); }; } &&
|
||||
{ ac_try='test -s conftest.$ac_objext'
|
||||
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
|
||||
(eval $ac_try) 2>&5
|
||||
ac_status=$?
|
||||
echo "$as_me:$LINENO: \$? = $ac_status" >&5
|
||||
(exit $ac_status); }; }; then
|
||||
ac_header_compiler=yes
|
||||
else
|
||||
echo "$as_me: failed program was:" >&5
|
||||
sed 's/^/| /' conftest.$ac_ext >&5
|
||||
|
||||
ac_header_compiler=no
|
||||
fi
|
||||
rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
|
||||
echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
|
||||
echo "${ECHO_T}$ac_header_compiler" >&6
|
||||
|
||||
# Is the header present?
|
||||
echo "$as_me:$LINENO: checking unistd.h presence" >&5
|
||||
echo $ECHO_N "checking unistd.h presence... $ECHO_C" >&6
|
||||
cat >conftest.$ac_ext <<_ACEOF
|
||||
/* confdefs.h. */
|
||||
_ACEOF
|
||||
cat confdefs.h >>conftest.$ac_ext
|
||||
cat >>conftest.$ac_ext <<_ACEOF
|
||||
/* end confdefs.h. */
|
||||
#include <unistd.h>
|
||||
_ACEOF
|
||||
if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
|
||||
(eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
|
||||
ac_status=$?
|
||||
grep -v '^ *+' conftest.er1 >conftest.err
|
||||
rm -f conftest.er1
|
||||
cat conftest.err >&5
|
||||
echo "$as_me:$LINENO: \$? = $ac_status" >&5
|
||||
(exit $ac_status); } >/dev/null; then
|
||||
if test -s conftest.err; then
|
||||
ac_cpp_err=$ac_c_preproc_warn_flag
|
||||
ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
|
||||
else
|
||||
ac_cpp_err=
|
||||
fi
|
||||
else
|
||||
ac_cpp_err=yes
|
||||
fi
|
||||
if test -z "$ac_cpp_err"; then
|
||||
ac_header_preproc=yes
|
||||
else
|
||||
echo "$as_me: failed program was:" >&5
|
||||
sed 's/^/| /' conftest.$ac_ext >&5
|
||||
|
||||
ac_header_preproc=no
|
||||
fi
|
||||
rm -f conftest.err conftest.$ac_ext
|
||||
echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
|
||||
echo "${ECHO_T}$ac_header_preproc" >&6
|
||||
|
||||
# So? What about this header?
|
||||
case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
|
||||
yes:no: )
|
||||
{ echo "$as_me:$LINENO: WARNING: unistd.h: accepted by the compiler, rejected by the preprocessor!" >&5
|
||||
echo "$as_me: WARNING: unistd.h: accepted by the compiler, rejected by the preprocessor!" >&2;}
|
||||
{ echo "$as_me:$LINENO: WARNING: unistd.h: proceeding with the compiler's result" >&5
|
||||
echo "$as_me: WARNING: unistd.h: proceeding with the compiler's result" >&2;}
|
||||
ac_header_preproc=yes
|
||||
;;
|
||||
no:yes:* )
|
||||
{ echo "$as_me:$LINENO: WARNING: unistd.h: present but cannot be compiled" >&5
|
||||
echo "$as_me: WARNING: unistd.h: present but cannot be compiled" >&2;}
|
||||
{ echo "$as_me:$LINENO: WARNING: unistd.h: check for missing prerequisite headers?" >&5
|
||||
echo "$as_me: WARNING: unistd.h: check for missing prerequisite headers?" >&2;}
|
||||
{ echo "$as_me:$LINENO: WARNING: unistd.h: see the Autoconf documentation" >&5
|
||||
echo "$as_me: WARNING: unistd.h: see the Autoconf documentation" >&2;}
|
||||
{ echo "$as_me:$LINENO: WARNING: unistd.h: section \"Present But Cannot Be Compiled\"" >&5
|
||||
echo "$as_me: WARNING: unistd.h: section \"Present But Cannot Be Compiled\"" >&2;}
|
||||
{ echo "$as_me:$LINENO: WARNING: unistd.h: proceeding with the preprocessor's result" >&5
|
||||
echo "$as_me: WARNING: unistd.h: proceeding with the preprocessor's result" >&2;}
|
||||
{ echo "$as_me:$LINENO: WARNING: unistd.h: in the future, the compiler will take precedence" >&5
|
||||
echo "$as_me: WARNING: unistd.h: in the future, the compiler will take precedence" >&2;}
|
||||
(
|
||||
cat <<\_ASBOX
|
||||
## ------------------------------ ##
|
||||
## Report this to the tcl lists. ##
|
||||
## ------------------------------ ##
|
||||
_ASBOX
|
||||
) |
|
||||
sed "s/^/$as_me: WARNING: /" >&2
|
||||
;;
|
||||
esac
|
||||
echo "$as_me:$LINENO: checking for unistd.h" >&5
|
||||
echo $ECHO_N "checking for unistd.h... $ECHO_C" >&6
|
||||
if test "${ac_cv_header_unistd_h+set}" = set; then
|
||||
echo $ECHO_N "(cached) $ECHO_C" >&6
|
||||
else
|
||||
ac_cv_header_unistd_h=$ac_header_preproc
|
||||
fi
|
||||
echo "$as_me:$LINENO: result: $ac_cv_header_unistd_h" >&5
|
||||
echo "${ECHO_T}$ac_cv_header_unistd_h" >&6
|
||||
|
||||
fi
|
||||
if test $ac_cv_header_unistd_h = yes; then
|
||||
usleep_ok=yes
|
||||
else
|
||||
usleep_ok=no
|
||||
fi
|
||||
|
||||
|
||||
fi
|
||||
echo "$as_me:$LINENO: checking whether to use usleep" >&5
|
||||
echo $ECHO_N "checking whether to use usleep... $ECHO_C" >&6
|
||||
if test "$usleep_ok" = "yes"; then
|
||||
if test "${tcl_cv_usleep_h+set}" = set; then
|
||||
echo $ECHO_N "(cached) $ECHO_C" >&6
|
||||
else
|
||||
|
||||
cat >conftest.$ac_ext <<_ACEOF
|
||||
/* confdefs.h. */
|
||||
_ACEOF
|
||||
cat confdefs.h >>conftest.$ac_ext
|
||||
cat >>conftest.$ac_ext <<_ACEOF
|
||||
/* end confdefs.h. */
|
||||
#include <unistd.h>
|
||||
int
|
||||
main ()
|
||||
{
|
||||
usleep(0);
|
||||
;
|
||||
return 0;
|
||||
}
|
||||
_ACEOF
|
||||
rm -f conftest.$ac_objext
|
||||
if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
|
||||
(eval $ac_compile) 2>conftest.er1
|
||||
ac_status=$?
|
||||
grep -v '^ *+' conftest.er1 >conftest.err
|
||||
rm -f conftest.er1
|
||||
cat conftest.err >&5
|
||||
echo "$as_me:$LINENO: \$? = $ac_status" >&5
|
||||
(exit $ac_status); } &&
|
||||
{ ac_try='test -z "$ac_c_werror_flag"
|
||||
|| test ! -s conftest.err'
|
||||
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
|
||||
(eval $ac_try) 2>&5
|
||||
ac_status=$?
|
||||
echo "$as_me:$LINENO: \$? = $ac_status" >&5
|
||||
(exit $ac_status); }; } &&
|
||||
{ ac_try='test -s conftest.$ac_objext'
|
||||
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
|
||||
(eval $ac_try) 2>&5
|
||||
ac_status=$?
|
||||
echo "$as_me:$LINENO: \$? = $ac_status" >&5
|
||||
(exit $ac_status); }; }; then
|
||||
tcl_cv_usleep_h=yes
|
||||
else
|
||||
echo "$as_me: failed program was:" >&5
|
||||
sed 's/^/| /' conftest.$ac_ext >&5
|
||||
|
||||
tcl_cv_usleep_h=no
|
||||
fi
|
||||
rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
|
||||
fi
|
||||
|
||||
echo "$as_me:$LINENO: result: $tcl_cv_usleep_h" >&5
|
||||
echo "${ECHO_T}$tcl_cv_usleep_h" >&6
|
||||
if test $tcl_cv_usleep_h = yes; then
|
||||
|
||||
cat >>confdefs.h <<\_ACEOF
|
||||
#define HAVE_USLEEP 1
|
||||
_ACEOF
|
||||
|
||||
fi
|
||||
else
|
||||
echo "$as_me:$LINENO: result: $usleep_ok" >&5
|
||||
echo "${ECHO_T}$usleep_ok" >&6
|
||||
fi
|
||||
|
||||
|
||||
#--------------------------------------------------------------------
|
||||
# Check for support of nl_langinfo function
|
||||
#--------------------------------------------------------------------
|
||||
|
||||
+7
-1
@@ -25,7 +25,7 @@ m4_ifdef([SC_USE_CONFIG_HEADERS], [
|
||||
TCL_VERSION=8.6
|
||||
TCL_MAJOR_VERSION=8
|
||||
TCL_MINOR_VERSION=6
|
||||
TCL_PATCH_LEVEL=".3"
|
||||
TCL_PATCH_LEVEL=".4"
|
||||
VERSION=${TCL_VERSION}
|
||||
|
||||
EXTRA_INSTALL_BINARIES=${EXTRA_INSTALL_BINARIES:-"@:"}
|
||||
@@ -544,6 +544,12 @@ if test $tcl_cv_putenv_copy = yes; then
|
||||
[Does putenv() copy strings or incorporate them by reference?])
|
||||
fi
|
||||
|
||||
#--------------------------------------------------------------------
|
||||
# Check for support of usleep function
|
||||
#--------------------------------------------------------------------
|
||||
|
||||
SC_ENABLE_USLEEP
|
||||
|
||||
#--------------------------------------------------------------------
|
||||
# Check for support of nl_langinfo function
|
||||
#--------------------------------------------------------------------
|
||||
|
||||
+42
-4
@@ -773,6 +773,48 @@ AC_DEFUN([SC_ENABLE_SYMBOLS], [
|
||||
fi
|
||||
])
|
||||
|
||||
#------------------------------------------------------------------------
|
||||
# SC_ENABLE_USLEEP --
|
||||
#
|
||||
# Allows use of usleep function.
|
||||
# This is only relevant for Unix.
|
||||
#
|
||||
# Arguments:
|
||||
# none
|
||||
#
|
||||
# Results:
|
||||
#
|
||||
# Adds the following arguments to configure:
|
||||
# --enable-usleep=yes|no (default is yes)
|
||||
#
|
||||
# Defines the following vars:
|
||||
# HAVE_USLEEP Triggers use of usleep if defined.
|
||||
#------------------------------------------------------------------------
|
||||
|
||||
AC_DEFUN([SC_ENABLE_USLEEP], [
|
||||
AC_ARG_ENABLE(usleep,
|
||||
AC_HELP_STRING([--enable-usleep],
|
||||
[use usleep if possible to sleep, otherwise use Tcl_Sleep (default: on)]),
|
||||
[usleep_ok=$enableval], [usleep_ok=yes])
|
||||
|
||||
HAVE_USLEEP=0
|
||||
if test "$usleep_ok" = "yes"; then
|
||||
AC_CHECK_HEADER(unistd.h,[usleep_ok=yes],[usleep_ok=no])
|
||||
fi
|
||||
AC_MSG_CHECKING([whether to use usleep])
|
||||
if test "$usleep_ok" = "yes"; then
|
||||
AC_CACHE_VAL(tcl_cv_usleep_h, [
|
||||
AC_TRY_COMPILE([#include <unistd.h>], [usleep(0);],
|
||||
[tcl_cv_usleep_h=yes],[tcl_cv_usleep_h=no])])
|
||||
AC_MSG_RESULT([$tcl_cv_usleep_h])
|
||||
if test $tcl_cv_usleep_h = yes; then
|
||||
AC_DEFINE(HAVE_USLEEP, 1, [Do we have usleep()?])
|
||||
fi
|
||||
else
|
||||
AC_MSG_RESULT([$usleep_ok])
|
||||
fi
|
||||
])
|
||||
|
||||
#------------------------------------------------------------------------
|
||||
# SC_ENABLE_LANGINFO --
|
||||
#
|
||||
@@ -2158,7 +2200,6 @@ dnl # preprocessing tests use only CPPFLAGS.
|
||||
# Defines some of the following vars:
|
||||
# NO_DIRENT_H
|
||||
# NO_VALUES_H
|
||||
# HAVE_LIMITS_H or NO_LIMITS_H
|
||||
# NO_STDLIB_H
|
||||
# NO_STRING_H
|
||||
# NO_SYS_WAIT_H
|
||||
@@ -2198,9 +2239,6 @@ closedir(d);
|
||||
|
||||
AC_CHECK_HEADER(float.h, , [AC_DEFINE(NO_FLOAT_H, 1, [Do we have <float.h>?])])
|
||||
AC_CHECK_HEADER(values.h, , [AC_DEFINE(NO_VALUES_H, 1, [Do we have <values.h>?])])
|
||||
AC_CHECK_HEADER(limits.h,
|
||||
[AC_DEFINE(HAVE_LIMITS_H, 1, [Do we have <limits.h>?])],
|
||||
[AC_DEFINE(NO_LIMITS_H, 1, [Do we have <limits.h>?])])
|
||||
AC_CHECK_HEADER(stdlib.h, tcl_ok=1, tcl_ok=0)
|
||||
AC_EGREP_HEADER(strtol, stdlib.h, , tcl_ok=0)
|
||||
AC_EGREP_HEADER(strtoul, stdlib.h, , tcl_ok=0)
|
||||
|
||||
+1
-1
@@ -4,7 +4,7 @@
|
||||
|
||||
Name: tcl
|
||||
Summary: Tcl scripting language development environment
|
||||
Version: 8.6.3
|
||||
Version: 8.6.4
|
||||
Release: 2
|
||||
License: BSD
|
||||
Group: Development/Languages
|
||||
|
||||
+6
-26
@@ -4,9 +4,6 @@
|
||||
#ifndef _TCLCONFIG
|
||||
#define _TCLCONFIG
|
||||
|
||||
/* Define if building universal (internal helper macro) */
|
||||
#undef AC_APPLE_UNIVERSAL_BUILD
|
||||
|
||||
/* Is gettimeofday() actually declared in <sys/time.h>? */
|
||||
#undef GETTOD_NOT_DECLARED
|
||||
|
||||
@@ -130,9 +127,6 @@
|
||||
/* Define to 1 if you have the <libkern/OSAtomic.h> header file. */
|
||||
#undef HAVE_LIBKERN_OSATOMIC_H
|
||||
|
||||
/* Do we have <limits.h>? */
|
||||
#undef HAVE_LIMITS_H
|
||||
|
||||
/* Define to 1 if you have the `localtime_r' function. */
|
||||
#undef HAVE_LOCALTIME_R
|
||||
|
||||
@@ -214,10 +208,10 @@
|
||||
/* Is 'struct stat64' in <sys/stat.h>? */
|
||||
#undef HAVE_STRUCT_STAT64
|
||||
|
||||
/* Define to 1 if `st_blksize' is a member of `struct stat'. */
|
||||
/* Define to 1 if `st_blksize' is member of `struct stat'. */
|
||||
#undef HAVE_STRUCT_STAT_ST_BLKSIZE
|
||||
|
||||
/* Define to 1 if `st_blocks' is a member of `struct stat'. */
|
||||
/* Define to 1 if `st_blocks' is member of `struct stat'. */
|
||||
#undef HAVE_STRUCT_STAT_ST_BLOCKS
|
||||
|
||||
/* Define to 1 if you have the <sys/filio.h> header file. */
|
||||
@@ -316,9 +310,6 @@
|
||||
/* Do we have a usable 'isnan'? */
|
||||
#undef NO_ISNAN
|
||||
|
||||
/* Do we have <limits.h>? */
|
||||
#undef NO_LIMITS_H
|
||||
|
||||
/* Do we have memmove()? */
|
||||
#undef NO_MEMMOVE
|
||||
|
||||
@@ -361,9 +352,6 @@
|
||||
/* Define to the one symbol short name of this package. */
|
||||
#undef PACKAGE_TARNAME
|
||||
|
||||
/* Define to the home page for this package. */
|
||||
#undef PACKAGE_URL
|
||||
|
||||
/* Define to the version of this package. */
|
||||
#undef PACKAGE_VERSION
|
||||
|
||||
@@ -442,17 +430,9 @@
|
||||
/* Should we use vfork() instead of fork()? */
|
||||
#undef USE_VFORK
|
||||
|
||||
/* Define WORDS_BIGENDIAN to 1 if your processor stores words with the most
|
||||
significant byte first (like Motorola and SPARC, unlike Intel). */
|
||||
#if defined AC_APPLE_UNIVERSAL_BUILD
|
||||
# if defined __BIG_ENDIAN__
|
||||
# define WORDS_BIGENDIAN 1
|
||||
# endif
|
||||
#else
|
||||
# ifndef WORDS_BIGENDIAN
|
||||
# undef WORDS_BIGENDIAN
|
||||
# endif
|
||||
#endif
|
||||
/* Define to 1 if your processor stores words with the most significant byte
|
||||
first (like Motorola and SPARC, unlike Intel and VAX). */
|
||||
#undef WORDS_BIGENDIAN
|
||||
|
||||
/* Are Darwin SUSv3 extensions available? */
|
||||
#undef _DARWIN_C_SOURCE
|
||||
@@ -507,7 +487,7 @@
|
||||
/* Define to `int' if <sys/types.h> does not define. */
|
||||
#undef pid_t
|
||||
|
||||
/* Define to `unsigned int' if <sys/types.h> does not define. */
|
||||
/* Define to `unsigned' if <sys/types.h> does not define. */
|
||||
#undef size_t
|
||||
|
||||
/* Define as int if socklen_t is not available */
|
||||
|
||||
@@ -48,6 +48,7 @@
|
||||
#endif /* TCL_DYLD_USE_DLFCN */
|
||||
|
||||
#if TCL_DYLD_USE_NSMODULE || defined(TCL_LOAD_FROM_MEMORY)
|
||||
#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
|
||||
#include <mach-o/dyld.h>
|
||||
#include <mach-o/fat.h>
|
||||
#include <mach-o/swap.h>
|
||||
|
||||
+9
-1
@@ -1334,6 +1334,9 @@ NotifierThreadProc(
|
||||
static void
|
||||
AtForkPrepare(void)
|
||||
{
|
||||
Tcl_MutexLock(¬ifierMutex);
|
||||
TclpMasterLock();
|
||||
TclpMutexLock();
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -1355,6 +1358,9 @@ AtForkPrepare(void)
|
||||
static void
|
||||
AtForkParent(void)
|
||||
{
|
||||
TclpMutexUnlock();
|
||||
TclpMasterUnlock();
|
||||
Tcl_MutexUnlock(¬ifierMutex);
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -1376,7 +1382,9 @@ AtForkParent(void)
|
||||
static void
|
||||
AtForkChild(void)
|
||||
{
|
||||
Tcl_MutexFinalize(¬ifierMutex);
|
||||
TclpMutexUnlock();
|
||||
TclpMasterUnlock();
|
||||
Tcl_MutexUnlockAndFinalize(¬ifierMutex);
|
||||
Tcl_InitNotifier();
|
||||
}
|
||||
#endif /* HAVE_PTHREAD_ATFORK */
|
||||
|
||||
+1
-5
@@ -144,11 +144,7 @@ typedef off_t Tcl_SeekOffset;
|
||||
#if HAVE_INTTYPES_H
|
||||
# include <inttypes.h>
|
||||
#endif
|
||||
#ifdef NO_LIMITS_H
|
||||
# include "../compat/limits.h"
|
||||
#else
|
||||
# include <limits.h>
|
||||
#endif
|
||||
#include <limits.h>
|
||||
#if HAVE_STDINT_H
|
||||
# include <stdint.h>
|
||||
#endif
|
||||
|
||||
+100
-2
@@ -21,6 +21,19 @@ typedef struct ThreadSpecificData {
|
||||
|
||||
static Tcl_ThreadDataKey dataKey;
|
||||
|
||||
/*
|
||||
* This is the number of milliseconds to wait between internal retries in
|
||||
* the Tcl_MutexLock function. This value must be greater than zero and
|
||||
* should be a suitable value for the given platform.
|
||||
*
|
||||
* TODO: This may need to be dynamically determined, based on the relative
|
||||
* performance of the running process.
|
||||
*/
|
||||
|
||||
#ifndef TCL_MUTEX_LOCK_SLEEP_TIME
|
||||
# define TCL_MUTEX_LOCK_SLEEP_TIME (25)
|
||||
#endif
|
||||
|
||||
/*
|
||||
* masterLock is used to serialize creation of mutexes, condition variables,
|
||||
* and thread local storage. This is the only place that can count on the
|
||||
@@ -44,6 +57,13 @@ static pthread_mutex_t initLock = PTHREAD_MUTEX_INITIALIZER;
|
||||
static pthread_mutex_t allocLock = PTHREAD_MUTEX_INITIALIZER;
|
||||
static pthread_mutex_t *allocLockPtr = &allocLock;
|
||||
|
||||
/*
|
||||
* The mutexLock serializes Tcl_MutexLock. This is necessary to prevent
|
||||
* races when finalizing a mutex that some other thread may want to lock.
|
||||
*/
|
||||
|
||||
static pthread_mutex_t mutexLock = PTHREAD_MUTEX_INITIALIZER;
|
||||
|
||||
/*
|
||||
* These are for the critical sections inside this file.
|
||||
*/
|
||||
@@ -361,6 +381,58 @@ TclpMasterUnlock(void)
|
||||
#endif
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
*----------------------------------------------------------------------
|
||||
*
|
||||
* TclpMutexLock
|
||||
*
|
||||
* This procedure is used to grab a lock that serializes locking
|
||||
* another mutex.
|
||||
*
|
||||
* Results:
|
||||
* None.
|
||||
*
|
||||
* Side effects:
|
||||
* None.
|
||||
*
|
||||
*----------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
void
|
||||
TclpMutexLock(void)
|
||||
{
|
||||
#ifdef TCL_THREADS
|
||||
pthread_mutex_lock(&mutexLock);
|
||||
#endif
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
*----------------------------------------------------------------------
|
||||
*
|
||||
* TclpMutexUnlock
|
||||
*
|
||||
* This procedure is used to release a lock that serializes locking
|
||||
* another mutex.
|
||||
*
|
||||
* Results:
|
||||
* None.
|
||||
*
|
||||
* Side effects:
|
||||
* None.
|
||||
*
|
||||
*----------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
void
|
||||
TclpMutexUnlock(void)
|
||||
{
|
||||
#ifdef TCL_THREADS
|
||||
pthread_mutex_unlock(&mutexLock);
|
||||
#endif
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
*----------------------------------------------------------------------
|
||||
@@ -421,6 +493,8 @@ Tcl_MutexLock(
|
||||
{
|
||||
pthread_mutex_t *pmutexPtr;
|
||||
|
||||
retry:
|
||||
|
||||
if (*mutexPtr == NULL) {
|
||||
MASTER_LOCK;
|
||||
if (*mutexPtr == NULL) {
|
||||
@@ -435,8 +509,32 @@ Tcl_MutexLock(
|
||||
}
|
||||
MASTER_UNLOCK;
|
||||
}
|
||||
pmutexPtr = *((pthread_mutex_t **)mutexPtr);
|
||||
pthread_mutex_lock(pmutexPtr);
|
||||
while (1) {
|
||||
TclpMutexLock();
|
||||
pmutexPtr = *((pthread_mutex_t **)mutexPtr);
|
||||
if (pmutexPtr == NULL) {
|
||||
TclpMutexUnlock();
|
||||
goto retry;
|
||||
}
|
||||
if (pthread_mutex_trylock(pmutexPtr) == 0) {
|
||||
TclpMutexUnlock();
|
||||
return;
|
||||
}
|
||||
TclpMutexUnlock();
|
||||
/*
|
||||
* BUGBUG: All core and Thread package tests pass when usleep()
|
||||
* is used; however, the Thread package tests hang at
|
||||
* various places when Tcl_Sleep() is used, typically
|
||||
* while running test "thread-17.8", "thread-17.9", or
|
||||
* "thread-17.11a". Really, what we want here is just
|
||||
* to yield to other threads for a while.
|
||||
*/
|
||||
#ifdef HAVE_USLEEP
|
||||
usleep(TCL_MUTEX_LOCK_SLEEP_TIME);
|
||||
#else
|
||||
Tcl_Sleep(TCL_MUTEX_LOCK_SLEEP_TIME);
|
||||
#endif
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
|
||||
+7
-6
@@ -110,6 +110,7 @@ GENERIC_DIR_NATIVE = $(shell $(CYGPATH) '$(GENERIC_DIR)' | sed 's!\\!/!g')
|
||||
TOMMATH_DIR_NATIVE = $(shell $(CYGPATH) '$(TOMMATH_DIR)' | sed 's!\\!/!g')
|
||||
WIN_DIR_NATIVE = $(shell $(CYGPATH) '$(WIN_DIR)' | sed 's!\\!/!g')
|
||||
ROOT_DIR_NATIVE = $(shell $(CYGPATH) '$(ROOT_DIR)' | sed 's!\\!/!g')
|
||||
ZLIB_DIR_NATIVE = $(shell $(CYGPATH) '$(ZLIB_DIR)' | sed 's!\\!/!g')
|
||||
#GENERIC_DIR_NATIVE = $(GENERIC_DIR)
|
||||
#TOMMATH_DIR_NATIVE = $(TOMMATH_DIR)
|
||||
#WIN_DIR_NATIVE = $(WIN_DIR)
|
||||
@@ -189,10 +190,10 @@ SHELL = @SHELL@
|
||||
RM = rm -f
|
||||
COPY = cp
|
||||
|
||||
CC_SWITCHES = ${CFLAGS} ${CFLAGS_WARNING} ${TCL_SHLIB_CFLAGS} -I"${ZLIB_DIR}" \
|
||||
-I"${GENERIC_DIR_NATIVE}" -DTCL_TOMMATH -DMP_PREC=4 -I"${TOMMATH_DIR_NATIVE}" \
|
||||
-I"${WIN_DIR_NATIVE}" ${AC_FLAGS} \
|
||||
${COMPILE_DEBUG_FLAGS} ${NO_DEPRECATED_FLAGS}
|
||||
CC_SWITCHES = ${CFLAGS} ${CFLAGS_WARNING} ${TCL_SHLIB_CFLAGS} \
|
||||
-I"${ZLIB_DIR_NATIVE}" -I"${GENERIC_DIR_NATIVE}" -DTCL_TOMMATH \
|
||||
-DMP_PREC=4 -I"${TOMMATH_DIR_NATIVE}" -I"${WIN_DIR_NATIVE}" \
|
||||
${AC_FLAGS} ${COMPILE_DEBUG_FLAGS} ${NO_DEPRECATED_FLAGS}
|
||||
|
||||
CC_OBJNAME = @CC_OBJNAME@
|
||||
CC_EXENAME = @CC_EXENAME@
|
||||
@@ -642,8 +643,8 @@ install-libraries: libraries install-tzdata install-msgs
|
||||
do \
|
||||
$(COPY) "$$j" "$(SCRIPT_INSTALL_DIR)/http1.0"; \
|
||||
done;
|
||||
@echo "Installing package http 2.8.8 as a Tcl Module";
|
||||
@$(COPY) $(ROOT_DIR)/library/http/http.tcl $(SCRIPT_INSTALL_DIR)/../tcl8/8.6/http-2.8.8.tm;
|
||||
@echo "Installing package http 2.8.9 as a Tcl Module";
|
||||
@$(COPY) $(ROOT_DIR)/library/http/http.tcl $(SCRIPT_INSTALL_DIR)/../tcl8/8.6/http-2.8.9.tm;
|
||||
@echo "Installing library opt0.4 directory";
|
||||
@for j in $(ROOT_DIR)/library/opt/*.tcl; \
|
||||
do \
|
||||
|
||||
Vendored
+4
-4
@@ -1311,7 +1311,7 @@ SHELL=/bin/sh
|
||||
TCL_VERSION=8.6
|
||||
TCL_MAJOR_VERSION=8
|
||||
TCL_MINOR_VERSION=6
|
||||
TCL_PATCH_LEVEL=".3"
|
||||
TCL_PATCH_LEVEL=".4"
|
||||
VER=$TCL_MAJOR_VERSION$TCL_MINOR_VERSION
|
||||
|
||||
TCL_DDE_VERSION=1.4
|
||||
@@ -4364,12 +4364,12 @@ if test "$tcl_ok" = "yes"; then
|
||||
|
||||
if test "$GCC" == "yes"; then
|
||||
|
||||
ZLIB_LIBS=\${ZLIB_DIR}/win64/libz.dll.a
|
||||
ZLIB_LIBS=\${ZLIB_DIR_NATIVE}/win64/libz.dll.a
|
||||
|
||||
|
||||
else
|
||||
|
||||
ZLIB_LIBS=\${ZLIB_DIR}/win64/zdll.lib
|
||||
ZLIB_LIBS=\${ZLIB_DIR_NATIVE}/win64/zdll.lib
|
||||
|
||||
|
||||
fi
|
||||
@@ -4377,7 +4377,7 @@ fi
|
||||
|
||||
else
|
||||
|
||||
ZLIB_LIBS=\${ZLIB_DIR}/win32/zdll.lib
|
||||
ZLIB_LIBS=\${ZLIB_DIR_NATIVE}/win32/zdll.lib
|
||||
|
||||
|
||||
fi
|
||||
|
||||
+4
-4
@@ -14,7 +14,7 @@ SHELL=/bin/sh
|
||||
TCL_VERSION=8.6
|
||||
TCL_MAJOR_VERSION=8
|
||||
TCL_MINOR_VERSION=6
|
||||
TCL_PATCH_LEVEL=".3"
|
||||
TCL_PATCH_LEVEL=".4"
|
||||
VER=$TCL_MAJOR_VERSION$TCL_MINOR_VERSION
|
||||
|
||||
TCL_DDE_VERSION=1.4
|
||||
@@ -130,12 +130,12 @@ AS_IF([test "$tcl_ok" = "yes"], [
|
||||
AC_SUBST(ZLIB_DLL_FILE,[\${ZLIB_DLL_FILE}])
|
||||
AS_IF([test "$do64bit" = "yes"], [
|
||||
AS_IF([test "$GCC" == "yes"],[
|
||||
AC_SUBST(ZLIB_LIBS,[\${ZLIB_DIR}/win64/libz.dll.a])
|
||||
AC_SUBST(ZLIB_LIBS,[\${ZLIB_DIR_NATIVE}/win64/libz.dll.a])
|
||||
], [
|
||||
AC_SUBST(ZLIB_LIBS,[\${ZLIB_DIR}/win64/zdll.lib])
|
||||
AC_SUBST(ZLIB_LIBS,[\${ZLIB_DIR_NATIVE}/win64/zdll.lib])
|
||||
])
|
||||
], [
|
||||
AC_SUBST(ZLIB_LIBS,[\${ZLIB_DIR}/win32/zdll.lib])
|
||||
AC_SUBST(ZLIB_LIBS,[\${ZLIB_DIR_NATIVE}/win32/zdll.lib])
|
||||
])
|
||||
], [
|
||||
AC_SUBST(ZLIB_OBJS,[\${ZLIB_OBJS}])
|
||||
|
||||
@@ -16,7 +16,9 @@
|
||||
|
||||
#include "tcl.h"
|
||||
#define WIN32_LEAN_AND_MEAN
|
||||
#define STRICT /* See MSDN Article Q83456 */
|
||||
#include <windows.h>
|
||||
#undef STRICT
|
||||
#undef WIN32_LEAN_AND_MEAN
|
||||
#include <locale.h>
|
||||
#include <stdlib.h>
|
||||
|
||||
+14
-2
@@ -220,8 +220,20 @@ ReadConsoleBytes(
|
||||
BOOL result;
|
||||
int tcharsize = sizeof(TCHAR);
|
||||
|
||||
result = ReadConsole(hConsole, lpBuffer, nbytes / tcharsize, &ntchars,
|
||||
NULL);
|
||||
/*
|
||||
* If user types a Ctrl-Break or Ctrl-C, ReadConsole will return
|
||||
* success with ntchars == 0 and GetLastError() will be
|
||||
* ERROR_OPERATION_ABORTED. We do not want to treat this case
|
||||
* as EOF so we will loop around again. If no Ctrl signal handlers
|
||||
* have been established, the default signal OS handler in a separate
|
||||
* thread will terminate the program. If a Ctrl signal handler
|
||||
* has been established (through an extension for example), it
|
||||
* will run and take whatever action it deems appropriate.
|
||||
*/
|
||||
do {
|
||||
result = ReadConsole(hConsole, lpBuffer, nbytes / tcharsize, &ntchars,
|
||||
NULL);
|
||||
} while (result && ntchars == 0 && GetLastError() == ERROR_OPERATION_ABORTED);
|
||||
if (nbytesread != NULL) {
|
||||
*nbytesread = ntchars * tcharsize;
|
||||
}
|
||||
|
||||
+1
-1
@@ -668,7 +668,7 @@ NativeReadReparse(
|
||||
HANDLE hFile;
|
||||
DWORD returnedLength;
|
||||
|
||||
hFile = CreateFile(linkDirPath, desiredAccess, 0, NULL, OPEN_EXISTING,
|
||||
hFile = CreateFile(linkDirPath, desiredAccess, FILE_SHARE_READ, NULL, OPEN_EXISTING,
|
||||
FILE_FLAG_OPEN_REPARSE_POINT | FILE_FLAG_BACKUP_SEMANTICS, NULL);
|
||||
|
||||
if (hFile == INVALID_HANDLE_VALUE) {
|
||||
|
||||
+81
-2
@@ -23,6 +23,16 @@
|
||||
_CRTIMP unsigned int __cdecl _controlfp (unsigned int unNew, unsigned int unMask);
|
||||
#endif
|
||||
|
||||
/*
|
||||
* This is the number of milliseconds to wait between internal retries in
|
||||
* the Tcl_MutexLock function. This value must be greater than or equal
|
||||
* to zero and should be a suitable value for the given platform.
|
||||
*/
|
||||
|
||||
#ifndef TCL_MUTEX_LOCK_SLEEP_TIME
|
||||
# define TCL_MUTEX_LOCK_SLEEP_TIME (0)
|
||||
#endif
|
||||
|
||||
/*
|
||||
* This is the master lock used to serialize access to other serialization
|
||||
* data structures.
|
||||
@@ -56,6 +66,13 @@ static int allocOnce = 0;
|
||||
|
||||
#endif /* TCL_THREADS */
|
||||
|
||||
/*
|
||||
* The mutexLock serializes Tcl_MutexLock. This is necessary to prevent
|
||||
* races when finalizing a mutex that some other thread may want to lock.
|
||||
*/
|
||||
|
||||
static CRITICAL_SECTION mutexLock;
|
||||
|
||||
/*
|
||||
* The joinLock serializes Create- and ExitThread. This is necessary to
|
||||
* prevent a race where a new joinable thread exits before the creating thread
|
||||
@@ -369,6 +386,7 @@ TclpInitLock(void)
|
||||
*/
|
||||
|
||||
init = 1;
|
||||
InitializeCriticalSection(&mutexLock);
|
||||
InitializeCriticalSection(&joinLock);
|
||||
InitializeCriticalSection(&initLock);
|
||||
InitializeCriticalSection(&masterLock);
|
||||
@@ -461,6 +479,52 @@ TclpMasterUnlock(void)
|
||||
LeaveCriticalSection(&masterLock);
|
||||
}
|
||||
|
||||
/*
|
||||
*----------------------------------------------------------------------
|
||||
*
|
||||
* TclpMutexLock
|
||||
*
|
||||
* This procedure is used to grab a lock that serializes locking
|
||||
* another mutex.
|
||||
*
|
||||
* Results:
|
||||
* None.
|
||||
*
|
||||
* Side effects:
|
||||
* None.
|
||||
*
|
||||
*----------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
void
|
||||
TclpMutexLock(void)
|
||||
{
|
||||
EnterCriticalSection(&mutexLock);
|
||||
}
|
||||
|
||||
/*
|
||||
*----------------------------------------------------------------------
|
||||
*
|
||||
* TclpMutexUnlock
|
||||
*
|
||||
* This procedure is used to release a lock that serializes locking
|
||||
* another mutex.
|
||||
*
|
||||
* Results:
|
||||
* None.
|
||||
*
|
||||
* Side effects:
|
||||
* None.
|
||||
*
|
||||
*----------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
void
|
||||
TclpMutexUnlock(void)
|
||||
{
|
||||
LeaveCriticalSection(&mutexLock);
|
||||
}
|
||||
|
||||
/*
|
||||
*----------------------------------------------------------------------
|
||||
*
|
||||
@@ -516,6 +580,7 @@ void
|
||||
TclFinalizeLock(void)
|
||||
{
|
||||
MASTER_LOCK;
|
||||
DeleteCriticalSection(&mutexLock);
|
||||
DeleteCriticalSection(&joinLock);
|
||||
|
||||
/*
|
||||
@@ -569,6 +634,8 @@ Tcl_MutexLock(
|
||||
{
|
||||
CRITICAL_SECTION *csPtr;
|
||||
|
||||
retry:
|
||||
|
||||
if (*mutexPtr == NULL) {
|
||||
MASTER_LOCK;
|
||||
|
||||
@@ -584,8 +651,20 @@ Tcl_MutexLock(
|
||||
}
|
||||
MASTER_UNLOCK;
|
||||
}
|
||||
csPtr = *((CRITICAL_SECTION **)mutexPtr);
|
||||
EnterCriticalSection(csPtr);
|
||||
while (1) {
|
||||
TclpMutexLock();
|
||||
csPtr = *((CRITICAL_SECTION **)mutexPtr);
|
||||
if (csPtr == NULL) {
|
||||
TclpMutexUnlock();
|
||||
goto retry;
|
||||
}
|
||||
if (TryEnterCriticalSection(csPtr)) {
|
||||
TclpMutexUnlock();
|
||||
return;
|
||||
}
|
||||
TclpMutexUnlock();
|
||||
Tcl_Sleep(TCL_MUTEX_LOCK_SLEEP_TIME);
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
|
||||
Reference in New Issue
Block a user