summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.github/workflows/linux-build.yml5
-rw-r--r--.github/workflows/mac-build.yml3
-rw-r--r--.github/workflows/win-build.yml19
-rw-r--r--.travis.yml3
-rw-r--r--README.md14
-rw-r--r--changes129
-rw-r--r--doc/chan.n4
-rw-r--r--doc/fconfigure.n6
-rw-r--r--doc/file.n43
-rw-r--r--doc/filename.n4
-rw-r--r--doc/re_syntax.n19
-rw-r--r--doc/tclsh.12
-rw-r--r--generic/regc_lex.c2
-rw-r--r--generic/tcl.decls6
-rw-r--r--generic/tcl.h307
-rw-r--r--generic/tclAssembly.c85
-rw-r--r--generic/tclAsync.c2
-rw-r--r--generic/tclBasic.c1
-rw-r--r--generic/tclBinary.c26
-rw-r--r--generic/tclCkalloc.c14
-rw-r--r--generic/tclClock.c77
-rw-r--r--generic/tclCmdIL.c42
-rw-r--r--generic/tclCmdMZ.c50
-rw-r--r--generic/tclEncoding.c6
-rw-r--r--generic/tclExecute.c20
-rw-r--r--generic/tclFileName.c4
-rw-r--r--generic/tclIOUtil.c4
-rw-r--r--generic/tclInt.decls6
-rw-r--r--generic/tclInt.h2
-rw-r--r--generic/tclOO.decls2
-rw-r--r--generic/tclStringObj.c47
-rw-r--r--generic/tclStubInit.c2
-rw-r--r--generic/tclTomMath.decls2
-rw-r--r--generic/tclUtf.c2
-rw-r--r--generic/tclUtil.c21
-rw-r--r--library/init.tcl2
-rw-r--r--library/opt/optparse.tcl2
-rw-r--r--library/platform/pkgIndex.tcl2
-rw-r--r--library/platform/platform.tcl49
-rw-r--r--library/tcltest/tcltest.tcl25
-rw-r--r--library/tzdata/Africa/Accra108
-rw-r--r--library/tzdata/Africa/Juba1
-rw-r--r--library/tzdata/Africa/Lagos7
-rw-r--r--library/tzdata/Africa/Nairobi9
-rw-r--r--library/tzdata/America/Belize47
-rw-r--r--library/tzdata/America/Grand_Turk3
-rw-r--r--library/tzdata/America/Nassau5
-rw-r--r--library/tzdata/Antarctica/Macquarie2
-rw-r--r--library/tzdata/Asia/Gaza28
-rw-r--r--library/tzdata/Asia/Hebron28
-rw-r--r--library/tzdata/Asia/Jerusalem56
-rw-r--r--library/tzdata/Atlantic/Bermuda29
-rw-r--r--library/tzdata/Australia/Adelaide10
-rw-r--r--library/tzdata/Australia/Brisbane10
-rw-r--r--library/tzdata/Australia/Broken_Hill10
-rw-r--r--library/tzdata/Australia/Currie274
-rw-r--r--library/tzdata/Australia/Darwin10
-rw-r--r--library/tzdata/Australia/Eucla8
-rw-r--r--library/tzdata/Australia/Hobart14
-rw-r--r--library/tzdata/Australia/Lindeman10
-rw-r--r--library/tzdata/Australia/Melbourne10
-rw-r--r--library/tzdata/Australia/Perth8
-rw-r--r--library/tzdata/Australia/Sydney10
-rw-r--r--library/tzdata/Europe/Volgograd1
-rw-r--r--library/tzdata/Indian/Mahe2
-rw-r--r--library/tzdata/Pacific/Efate4
-rw-r--r--tests/apply.test2
-rw-r--r--tests/assemble.test76
-rw-r--r--tests/assemble1.bench19
-rw-r--r--tests/chan.test4
-rw-r--r--tests/chanio.test14
-rw-r--r--tests/cmdAH.test14
-rw-r--r--tests/cmdMZ.test4
-rw-r--r--tests/env.test4
-rw-r--r--tests/exec.test2
-rw-r--r--tests/expr-old.test8
-rw-r--r--tests/expr.test18
-rw-r--r--tests/fCmd.test74
-rw-r--r--tests/fileName.test8
-rw-r--r--tests/fileSystem.test8
-rw-r--r--tests/fileSystemEncoding.test2
-rw-r--r--tests/foreach.test2
-rw-r--r--tests/format.test12
-rw-r--r--tests/history.test2
-rw-r--r--tests/http.test13
-rw-r--r--tests/httpd12
-rw-r--r--tests/httpold.test15
-rw-r--r--tests/info.test2
-rw-r--r--tests/init.test10
-rw-r--r--tests/internals.tcl4
-rw-r--r--tests/io.test190
-rw-r--r--tests/iogt.test2
-rw-r--r--tests/lindex.test4
-rw-r--r--tests/lmap.test8
-rw-r--r--tests/lrange.test2
-rw-r--r--tests/lrepeat.test4
-rw-r--r--tests/misc.test4
-rw-r--r--tests/nre.test6
-rw-r--r--tests/obj.test6
-rw-r--r--tests/package.test4
-rw-r--r--tests/parse.test18
-rw-r--r--tests/parseExpr.test4
-rw-r--r--tests/parseOld.test70
-rw-r--r--tests/platform.test4
-rw-r--r--tests/regexp.test10
-rw-r--r--tests/regexpComp.test12
-rw-r--r--tests/safe.test3
-rw-r--r--tests/socket.test14
-rw-r--r--tests/split.test2
-rw-r--r--tests/stack.test2
-rw-r--r--tests/string.test59
-rw-r--r--tests/tailcall.test12
-rw-r--r--tests/tcltest.test4
-rw-r--r--tests/unixFCmd.test38
-rw-r--r--tests/unixFile.test2
-rw-r--r--tests/unixForkEvent.test2
-rw-r--r--tests/unixNotfy.test4
-rw-r--r--tests/upvar.test2
-rw-r--r--tests/utf.test45
-rw-r--r--tests/util.test1300
-rw-r--r--tests/winFCmd.test12
-rw-r--r--tests/winPipe.test2
-rwxr-xr-xtools/configure2
-rw-r--r--tools/configure.in8
-rw-r--r--tools/genStubs.tcl7
-rw-r--r--tools/installData.tcl4
-rw-r--r--unix/Makefile.in406
-rwxr-xr-xunix/configure82
-rw-r--r--unix/configure.in69
-rwxr-xr-xunix/installManPage2
-rw-r--r--unix/tcl.m4308
-rw-r--r--unix/tcl.spec2
-rw-r--r--unix/tclConfig.h.in29
-rw-r--r--unix/tclUnixInit.c9
-rw-r--r--win/Makefile.in23
-rwxr-xr-xwin/configure113
-rw-r--r--win/configure.in57
-rw-r--r--win/makefile.vc2
-rw-r--r--win/rules-ext.vc2
-rw-r--r--win/rules.vc276
-rw-r--r--win/targets.vc2
-rw-r--r--win/tcl.m4100
-rw-r--r--win/tclWinFile.c25
-rw-r--r--win/tclWinInit.c7
-rw-r--r--win/tclWinInt.h1
145 files changed, 2875 insertions, 2606 deletions
diff --git a/.github/workflows/linux-build.yml b/.github/workflows/linux-build.yml
index bf0a4cb..9b37ce4 100644
--- a/.github/workflows/linux-build.yml
+++ b/.github/workflows/linux-build.yml
@@ -20,7 +20,8 @@ jobs:
- name: Checkout
uses: actions/checkout@v2
- name: Prepare
- run: touch tclStubInit.c tclOOStubInit.c
+ run: |
+ touch tclStubInit.c tclOOStubInit.c
working-directory: generic
- name: Configure ${{ matrix.cfgopt }}
run: |
@@ -37,6 +38,8 @@ jobs:
- name: Run Tests
run: |
make test
+ env:
+ ERROR_ON_FAILURES: 1
- name: Test-Drive Installation
run: |
make install
diff --git a/.github/workflows/mac-build.yml b/.github/workflows/mac-build.yml
index 3302265..c1144ab 100644
--- a/.github/workflows/mac-build.yml
+++ b/.github/workflows/mac-build.yml
@@ -11,7 +11,8 @@ jobs:
- name: Checkout
uses: actions/checkout@v2
- name: Prepare
- run: touch tclStubInit.c tclOOStubInit.c
+ run: |
+ touch tclStubInit.c tclOOStubInit.c
working-directory: generic
- name: Build
run: make all
diff --git a/.github/workflows/win-build.yml b/.github/workflows/win-build.yml
index ea4f8b6..8e35798 100644
--- a/.github/workflows/win-build.yml
+++ b/.github/workflows/win-build.yml
@@ -7,27 +7,34 @@ jobs:
run:
shell: powershell
working-directory: win
+ strategy:
+ matrix:
+ cfgopt:
+ - ""
+ - "OPTS=static,msvcrt"
+ - "OPTS=symbols"
+ - "OPTS=memdbg"
# Using powershell means we need to explicitly stop on failure
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Init MSVC
uses: ilammy/msvc-dev-cmd@v1
- - name: Build
+ - name: Build ${{ matrix.cfgopt }}
run: |
- &nmake -f makefile.vc all
+ &nmake -f makefile.vc ${{ matrix.cfgopt }} all
if ($lastexitcode -ne 0) {
throw "nmake exit code: $lastexitcode"
}
- - name: Build Test Harness
+ - name: Build Test Harness ${{ matrix.cfgopt }}
run: |
- &nmake -f makefile.vc tcltest
+ &nmake -f makefile.vc ${{ matrix.cfgopt }} tcltest
if ($lastexitcode -ne 0) {
throw "nmake exit code: $lastexitcode"
}
- - name: Run Tests
+ - name: Run Tests ${{ matrix.cfgopt }}
run: |
- &nmake -f makefile.vc test
+ &nmake -f makefile.vc ${{ matrix.cfgopt }} test
if ($lastexitcode -ne 0) {
throw "nmake exit code: $lastexitcode"
}
diff --git a/.travis.yml b/.travis.yml
index d2e3ca9..eb1ec0c 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -190,7 +190,6 @@ jobs:
- BUILD_DIR=win
- VCDIR="/C/Program Files (x86)/Microsoft Visual Studio/2017/BuildTools/VC/Auxiliary/Build"
before_install: &vcpreinst
- - rm -rf tests/safe-stock8*.test
- touch generic/tclStubInit.c generic/tclOOStubInit.c
- PATH="$PATH:$VCDIR"
- cd ${BUILD_DIR}
@@ -297,7 +296,6 @@ jobs:
- BUILD_DIR=win
- CFGOPT="--enable-64bit"
before_install: &makepreinst
- - rm -rf tests/safe-stock8*.test
- touch generic/tclStubInit.c generic/tclOOStubInit.c
- choco install -y make
- cd ${BUILD_DIR}
@@ -374,7 +372,6 @@ jobs:
script:
- make dist
before_install:
- - rm -rf tests/safe-stock8*.test
- touch generic/tclStubInit.c generic/tclOOStubInit.c
- cd ${BUILD_DIR}
install:
diff --git a/README.md b/README.md
index ce7298e..c559a82 100644
--- a/README.md
+++ b/README.md
@@ -1,6 +1,6 @@
# README: Tcl
-This is the **Tcl 8.6.10** source distribution.
+This is the **Tcl 8.6.11** source distribution.
You can get any source release of Tcl from [our distribution
site](https://sourceforge.net/projects/tcl/files/Tcl/).
@@ -31,19 +31,19 @@ powerful command languages for applications.
Tcl is maintained, enhanced, and distributed freely by the Tcl community.
Source code development and tracking of bug reports and feature requests
-takes place at [core.tcl-lang.org](https://core.tcl-lang.org/).
+take place at [core.tcl-lang.org](https://core.tcl-lang.org/).
Tcl/Tk release and mailing list services are [hosted by
SourceForge](https://sourceforge.net/projects/tcl/)
with the Tcl Developer Xchange hosted at
[www.tcl-lang.org](https://www.tcl-lang.org).
-Tcl is a freely available open source package. You can do virtually
+Tcl is a freely available open-source package. You can do virtually
anything you like with it, such as modifying it, redistributing it,
and selling it either in whole or in part. See the file
`license.terms` for complete information.
## <a id="doc">2.</a> Documentation
-Extensive documentation is available at our website.
+Extensive documentation is available on our website.
The home page for this release, including new features, is
[here](https://www.tcl.tk/software/tcltk/8.6.html).
Detailed release notes can be found at the
@@ -90,16 +90,16 @@ about building Tcl from sources
[online](https://www.tcl-lang.org/doc/howto/compile.html).
## <a id="devtools">4.</a> Development tools
-ActiveState produces a high quality set of commercial quality development
+ActiveState produces a high-quality set of commercial quality development
tools that is available to accelerate your Tcl application development.
Tcl Dev Kit builds on the earlier TclPro toolset and provides a debugger,
-static code checker, single-file wrapping utility, bytecode compiler and
+static code checker, single-file wrapping utility, bytecode compiler, and
more. More information can be found at
http://www.ActiveState.com/Tcl
## <a id="complangtcl">5.</a> Tcl newsgroup
-There is a USENET news group, "`comp.lang.tcl`", intended for the exchange of
+There is a USENET newsgroup, "`comp.lang.tcl`", intended for the exchange of
information about Tcl, Tk, and related applications. The newsgroup is a
great place to ask general information questions. For bug reports, please
see the "Support and bug fixes" section below.
diff --git a/changes b/changes
index 090846f..f662037 100644
--- a/changes
+++ b/changes
@@ -8945,3 +8945,132 @@ improvements to regexp engine from Postgres (lane,porter,fellows,seltenreich)
=> http 2.9.1
- Released 8.6.10, Nov 21, 2019 - details at http://core.tcl-lang.org/tcl/ -
+
+2019-12-03 (bug)[3cd9be] Corner case in surrogate handling (nijtmans)
+
+2019-12-09 (new) Add tcltest::(Setup|Eval|Cleanup|)Test (coulter,sebres)
+=> tcltest 2.5.2
+
+2019-12-12 (new) Add 3 libtommath functions to stub table (nijtmans)
+
+2019-12-23 (bug)[ce3b9f] compilation errors with clang, windows msys2 (nijtmans)
+
+2019-12-27 (bug)[1de6b0] [expr 1e2147483648] => 0.0 (kbk)
+
+2020-01-04 (bug)[912886] tis-620 encoding fails to load (coulter)
+
+2020-01-13 (bug)[0b9332] Win: support system encoding init to utf-8 (jedlička)
+
+2020-01-17 (bug)[8cd2fe] [unload] corrupted list of loaded packages (berc)
+
+2020-01-17 (bug)[5d989f] segfault in lsort for large list length (sebres)
+
+2020-01-30 (bug) Reset WSAGetLastError()/errno in channel close (nijtmans)
+
+2020-02-17 (bug) Win: avoid create of legacy error-vars on init phase (sebres)
+
+2020-02-25 (bug) release refs when setting class's superclasses fails (dkf)
+
+2020-02-26 (bug) C++ compiler compatibility for registry and dde (nijtmans)
+=> registry 1.4.3
+=> dde 1.3.5
+
+2020-03-05 (new) Update to Unicode-13 (nijtmans)
+
+2020-03-16 (bug)[8f89e2] Win: env var encoding, env-2.5 (sebres, nijtmans)
+
+2020-03-27 (bug)[767e07] Tcl_Get(Range|UniChar) validate index inputs (nijtmans)
+
+2020-03-28 (bug)[8edfce] [binary encode base64] & multi-byte wrapchars (dgp)
+
+2020-03-28 (bug)[ffeb20] [binary decode base64] ignore invalid chars (dgp)
+See RFC 2045
+ *** POTENTIAL INCOMPATIBILITY ***
+
+2020-03-31 (bug)[b8e82d] some -maxlen values break uuencode round trip (dgp)
+ *** POTENTIAL INCOMPATIBILITY ***
+
+2020-04-01 (bug)[f58371] Fileevent run in proper thread (bron,sebres)
+
+2020-04-13 (bug)[afa4b2] TclNeedSpace bug; tests util-8.5 .. util-8.11 (dgp)
+
+2020-04-13 (bug)[085913] Tcl_DStringAppendElement # quoting precision (dgp)
+ *** POTENTIAL INCOMPATIBILITY ***
+
+2020-04-13 (bug)[a7f685] test util-5.52 (dgp)
+
+2020-04-13 (bug)[c61818] Tcl_UtfPrev regression (dgp)
+
+2020-04-15 (bug)[8af92d] zlib transform issue, bad inflate (sebres)
+
+2020-04-16 (bug)[5e6346] Tcl_UtfPrev handling of overlong sequences (dgp)
+
+2020-04-27 (bug)[45ca23] [string tolower] inconsistency (dgp)
+
+2020-04-30 (bug)[da2352] init [info hostname] with DNS, not NetBIOS (nadkarni)
+
+2020-05-11 (bug)[d402ff] Win32 potential crash when using main() (werner)
+
+2020-05-13 (bug)[81242a] revised documentation for Tcl_UtfAtIndex() (nijtmans)
+ *** POTENTIAL INCOMPATIBILITY ***
+
+2020-05-13 (bug)[ed2980] Tcl_UtfToUniChar reads > TCL_UTF_MAX bytes (nijtmans)
+ *** POTENTIAL INCOMPATIBILITY ***
+
+2020-06-02 (bug) prevent segfault in parser (sebres)
+
+2020-06-21 (bug)[f81bec] http POST a binary file (alakendu,nash)
+=> http 2.9.2
+
+2020-06-23 (bug)[41c985] auto_path nonsense in Safe Base (nash)
+
+2020-06-24 (bug)[f70ce1] zlib multi-stream inflate acts only on first (sebres)
+
+2020-07-09 (bug)[a1bd37] [clock scan] new ISO format (clock-34.(19-24)) (sebres)
+ *** POTENTIAL INCOMPATIBILITY ***
+
+2020-07-10 (bug)[501974] [clock scan] +time zone (clock-34.(53-68)) (sebres)
+ *** POTENTIAL INCOMPATIBILITY ***
+
+2020-07-15 (bug)[3c6e47] compiled [lappend] performance, avoid copy (sebres)
+
+2020-07-16 (bug)[5bbd04] Fix index underflow (schwab)
+
+2020-07-27 (bug)[cb0373] http::geturl -keepalive fixes (nash)
+=> http 2.9.3
+
+2020-08-10 (bug)[29e884] cmd resolution cycle (namespace-57.0) (coulter,sebres)
+
+2020-08-12 (bug)[e87000] Tcl_BadChannelOption tolerate NULL (werner,nijtmans)
+
+2020-08-31 (TIP #581) disfavor Master/Slave terminology (nijtmans)
+=> opt 0.4.8
+
+2020-09-11 (bug)[3bc0f4] UBSan complains about body.chars[] usage (nijtmans)
+
+2020-09-17 (bug)[835c93] Support TIP 525 exit code for -singleproc 1 (nijtmans)
+=> tcltest 2.5.3
+
+2020-09-25 (new) force -eofchar \032 when evaluating library scripts (nijtmans)
+ *** POTENTIAL INCOMPATIBILITY ***
+
+2020-09-29 (bug)[0063cb] http::geturl -headers must be dict (oehlmann,nijtmans)
+
+2020-10-19 (bug)[cb4582] Update install-sh script (stu,nijtmans)
+
+2020-10-22 (bug)[c97593] Usage of gnu_printf in latest mingw-w64 (nijtmans)
+
+2020-10-26 (new)[48898a] improve error message consistency (stu)
+ *** POTENTIAL INCOMPATIBILITY ***
+
+2020-11-06 (new) revised case of module names (nijtmans)
+ *** POTENTIAL INCOMPATIBILITY ***
+
+2020-12-10 (bug)[ed5be7] Win: recognize "comx:" as serial port (oehlmann)
+
+2020-12-11 (new) support for msys2, Big Sur (nijtmans)
+=> platform 1.0.15
+
+2020-12-23 tzdata updated to Olson's tzdata2020e (jima)
+
+- Released 8.6.11, Dec 31, 2020 - details at http://core.tcl-lang.org/tcl/ -
diff --git a/doc/chan.n b/doc/chan.n
index 81aa9f4..77e9326 100644
--- a/doc/chan.n
+++ b/doc/chan.n
@@ -179,7 +179,7 @@ operating system, as returned by \fBencoding system\fR.
.TP
\fB\-eofchar\fR \fB{\fIinChar outChar\fB}\fR
.
-This option supports DOS file systems that use Control-z (\ex1a) as an
+This option supports DOS file systems that use Control-z (\ex1A) as an
end of file marker. If \fIchar\fR is not an empty string, then this
character signals end-of-file when it is encountered during input.
For output, the end-of-file character is output when the channel is
@@ -192,7 +192,7 @@ will apply to both reading and writing. When querying the end-of-file
character of a read-write channel, a two-element list will always be
returned. The default value for \fB\-eofchar\fR is the empty string
in all cases except for files under Windows. In that case the
-\fB\-eofchar\fR is Control-z (\ex1a) for reading and the empty string
+\fB\-eofchar\fR is Control-z (\ex1A) for reading and the empty string
for writing.
The acceptable range for \fB\-eofchar\fR values is \ex01 - \ex7f;
attempting to set \fB\-eofchar\fR to a value outside of this range will
diff --git a/doc/fconfigure.n b/doc/fconfigure.n
index 8da76c6..2926777 100644
--- a/doc/fconfigure.n
+++ b/doc/fconfigure.n
@@ -105,7 +105,7 @@ system, as returned by \fBencoding system\fR.
.TP
\fB\-eofchar\fR \fB{\fIinChar outChar\fB}\fR
.
-This option supports DOS file systems that use Control-z (\ex1a) as an
+This option supports DOS file systems that use Control-z (\ex1A) as an
end of file marker. If \fIchar\fR is not an empty string, then this
character signals end-of-file when it is encountered during input. For
output, the end-of-file character is output when the channel is closed.
@@ -117,9 +117,9 @@ channel you can specify a single value that will apply to both reading
and writing. When querying the end-of-file character of a read-write
channel, a two-element list will always be returned. The default value
for \fB\-eofchar\fR is the empty string in all cases except for files
-under Windows. In that case the \fB\-eofchar\fR is Control-z (\ex1a) for
+under Windows. In that case the \fB\-eofchar\fR is Control-z (\ex1A) for
reading and the empty string for writing.
-The acceptable range for \fB\-eofchar\fR values is \ex01 - \ex7f;
+The acceptable range for \fB\-eofchar\fR values is \ex01 - \ex7F;
attempting to set \fB\-eofchar\fR to a value outside of this range will
generate an error.
.TP
diff --git a/doc/file.n b/doc/file.n
index 2f8b70c..0ea53f4 100644
--- a/doc/file.n
+++ b/doc/file.n
@@ -38,28 +38,31 @@ generated. On Windows, FAT file systems do not support access time.
.TP
\fBfile attributes \fIname\fR ?\fIoption value option value...\fR?
.
-This subcommand returns or sets platform specific values associated
-with a file. The first form returns a list of the platform specific
-flags and their values. The second form returns the value for the
-specific option. The third form sets one or more of the values. The
-values are as follows:
+This subcommand returns or sets platform-specific values associated
+with a file. The first form returns a list of the platform-specific
+options and their values. The second form returns the value for the
+given option. The third form sets one or more of the values. The values
+are as follows:
.RS
.PP
-On Unix, \fB\-group\fR gets or sets the group name for the file. A group id
-can be given to the command, but it returns a group name. \fB\-owner\fR gets
-or sets the user name of the owner of the file. The command returns the
-owner name, but the numerical id can be passed when setting the
-owner. \fB\-permissions\fR sets or retrieves the octal code that chmod(1)
-uses. This command does also has limited support for setting using the
-symbolic attributes for chmod(1), of the form [ugo]?[[+\-=][rwxst],[...]],
-where multiple symbolic attributes can be separated by commas (example:
-\fBu+s,go\-rw\fR add sticky bit for user, remove read and write
-permissions for group and other). A simplified \fBls\fR style string,
-of the form rwxrwxrwx (must be 9 characters), is also supported
-(example: \fBrwxr\-xr\-t\fR is equivalent to 01755).
-On versions of Unix supporting file flags, \fB\-readonly\fR gives the
-value or sets or clears the readonly attribute of the file,
-i.e. the user immutable flag \fBuchg\fR to chflags(1).
+On Unix, \fB\-group\fR gets or sets the group name for the file. A
+group id can be given to the command, but it returns a group name.
+\fB\-owner\fR gets or sets the user name of the owner of the file. The
+command returns the owner name, but the numerical id can be passed when
+setting the owner. \fB\-permissions\fR retrieves or sets a file's
+access permissions, using octal notation by default. This option also
+provides limited support for setting permissions using the symbolic
+notation accepted by the \fBchmod\fR command, following the form
+[\fBugo\fR]?[[\fB+-=\fR][\fBrwxst\fR]\fB,\fR[...]]. Multiple permission
+specifications may be given, separated by commas. E.g., \fBu+s,go-rw\fR
+would set the setuid bit for a file's owner as well as remove read and
+write permission for the file's group and other users. An
+\fBls\fR-style string of the form \fBrwxrwxrwx\fR is also accepted but
+must always be 9 characters long. E.g., \fBrwxr-xr-t\fR is equivalent
+to \fB01755\fR. On versions of Unix supporting file flags,
+\fB-readonly\fR returns the value of, or sets, or clears the readonly
+attribute of a file, i.e., the user immutable flag (\fBuchg\fR) to the
+\fBchflags\fR command.
.PP
On Windows, \fB\-archive\fR gives the value or sets or clears the
archive attribute of the file. \fB\-hidden\fR gives the value or sets
diff --git a/doc/filename.n b/doc/filename.n
index 87ba467..31d4fe0 100644
--- a/doc/filename.n
+++ b/doc/filename.n
@@ -150,9 +150,7 @@ The safest approach is to use names consisting of
alphanumeric characters only. Care should be taken with filenames
which contain spaces (common on Windows systems) and
filenames where the backslash is the directory separator (Windows
-native path names). Also Windows 3.1 only supports file
-names with a root of no more than 8 characters and an extension of no
-more than 3 characters.
+native path names).
.PP
On Windows platforms there are file and path length restrictions.
Complete paths or filenames longer than about 260 characters will lead
diff --git a/doc/re_syntax.n b/doc/re_syntax.n
index 4504a58..9a9e2b0 100644
--- a/doc/re_syntax.n
+++ b/doc/re_syntax.n
@@ -137,11 +137,26 @@ later, under \fBESCAPES\fR.
.TP 8
\fB^\fR
.
-matches at the beginning of a line
+matches at the beginning of the string or a line (according to whether
+matching is newline-sensitive or not, as described in \fBMATCHING\fR,
+below).
.TP
\fB$\fR
.
-matches at the end of a line
+matches at the end of the string or a line (according to whether
+matching is newline-sensitive or not, as described in \fBMATCHING\fR,
+below).
+.RS
+.PP
+The difference between string and line matching modes is immaterial
+when the string does not contain a newline character. The \fB\eA\fR
+and \fB\eZ\fR constraint escapes have a similar purpose but are
+always constraints for the overall string.
+.PP
+The default newline-sensitivity depends on the command that uses the
+regular expression, and can be overridden as described in
+\fBMETASYNTAX\fR, below.
+.RE
.TP
\fB(?=\fIre\fB)\fR
.
diff --git a/doc/tclsh.1 b/doc/tclsh.1
index 0e59b4f..fa0ecc2 100644
--- a/doc/tclsh.1
+++ b/doc/tclsh.1
@@ -44,7 +44,7 @@ If this character is present in the file, the \fBtclsh\fR application
will read text up to but not including the character. An application
that requires this character in the file may safely encode it as
.QW \e032 ,
-.QW \ex1a ,
+.QW \ex1A ,
or
.QW \eu001a ;
or may generate it by use of commands such as \fBformat\fR or \fBbinary\fR.
diff --git a/generic/regc_lex.c b/generic/regc_lex.c
index 1b00b71..ec43497 100644
--- a/generic/regc_lex.c
+++ b/generic/regc_lex.c
@@ -1005,7 +1005,7 @@ brenext(
if (LASTTYPE(EMPTY) || LASTTYPE('(') || LASTTYPE('^')) {
RETV(PLAIN, c);
}
- RET('*');
+ RETV('*', 1);
break;
case CHR('['):
if (HAVE(6) && *(v->now+0) == CHR('[') &&
diff --git a/generic/tcl.decls b/generic/tcl.decls
index 23e8f6a..13e7326 100644
--- a/generic/tcl.decls
+++ b/generic/tcl.decls
@@ -5,9 +5,9 @@
# This file is used to generate the tclDecls.h, tclPlatDecls.h
# and tclStubInit.c files.
#
-# Copyright (c) 1998-1999 by Scriptics Corporation.
-# Copyright (c) 2001, 2002 by Kevin B. Kenny. All rights reserved.
-# Copyright (c) 2007 Daniel A. Steffen <das@users.sourceforge.net>
+# Copyright © 1998-1999 Scriptics Corporation.
+# Copyright © 2001, 2002 Kevin B. Kenny. All rights reserved.
+# Copyright © 2007 Daniel A. Steffen <das@users.sourceforge.net>
#
# See the file "license.terms" for information on usage and redistribution
# of this file, and for a DISCLAIMER OF ALL WARRANTIES.
diff --git a/generic/tcl.h b/generic/tcl.h
index a756a33..64dd8bae 100644
--- a/generic/tcl.h
+++ b/generic/tcl.h
@@ -51,10 +51,10 @@ extern "C" {
#define TCL_MAJOR_VERSION 8
#define TCL_MINOR_VERSION 6
#define TCL_RELEASE_LEVEL TCL_FINAL_RELEASE
-#define TCL_RELEASE_SERIAL 10
+#define TCL_RELEASE_SERIAL 11
#define TCL_VERSION "8.6"
-#define TCL_PATCH_LEVEL "8.6.10"
+#define TCL_PATCH_LEVEL "8.6.11"
/*
*----------------------------------------------------------------------------
@@ -131,13 +131,17 @@ extern "C" {
*/
#include <stdarg.h>
-#ifndef TCL_NO_DEPRECATED
+#if !defined(TCL_NO_DEPRECATED) && TCL_MAJOR_VERSION < 9
# define TCL_VARARGS(type, name) (type name, ...)
# define TCL_VARARGS_DEF(type, name) (type name, ...)
# define TCL_VARARGS_START(type, name, list) (va_start(list, name), name)
-#endif
+#endif /* !TCL_NO_DEPRECATED */
#if defined(__GNUC__) && (__GNUC__ > 2)
-# define TCL_FORMAT_PRINTF(a,b) __attribute__ ((__format__ (__printf__, a, b)))
+# if defined(_WIN32) && defined(__USE_MINGW_ANSI_STDIO) && __USE_MINGW_ANSI_STDIO
+# define TCL_FORMAT_PRINTF(a,b) __attribute__ ((__format__ (__MINGW_PRINTF_FORMAT, a, b)))
+# else
+# define TCL_FORMAT_PRINTF(a,b) __attribute__ ((__format__ (__printf__, a, b)))
+# endif
# define TCL_NORETURN __attribute__ ((noreturn))
# if defined(BUILD_tcl) || defined(BUILD_tk)
# define TCL_NORETURN1 __attribute__ ((noreturn))
@@ -216,7 +220,7 @@ extern "C" {
* to be included in a shared library, then it should have the DLLEXPORT
* storage class. If is being declared for use by a module that is going to
* link against the shared library, then it should have the DLLIMPORT storage
- * class. If the symbol is beind declared for a static build or for use from a
+ * class. If the symbol is being declared for a static build or for use from a
* stub library, then the storage class should be empty.
*
* The convention is that a macro called BUILD_xxxx, where xxxx is the name of
@@ -362,6 +366,15 @@ typedef long LONG;
# undef HAVE_STRUCT_STAT64
#endif /* __APPLE__ */
+/* Cross-compiling 32-bit on a 64-bit platform? Then our
+ * configure script does the wrong thing. Correct that here.
+ */
+#if defined(__GNUC__) && !defined(_WIN32) && !defined(__LP64__)
+# undef TCL_WIDE_INT_IS_LONG
+# undef TCL_WIDE_INT_TYPE
+# define TCL_WIDE_INT_TYPE long long
+#endif
+
/*
* Define Tcl_WideInt to be a type that is (at least) 64-bits wide, and define
* Tcl_WideUInt to be the unsigned variant of that type (assuming that where
@@ -384,13 +397,15 @@ typedef long LONG;
*/
#if !defined(TCL_WIDE_INT_TYPE)&&!defined(TCL_WIDE_INT_IS_LONG)
-# if defined(_WIN32) && (!defined(__USE_MINGW_ANSI_STDIO) || !__USE_MINGW_ANSI_STDIO)
-# define TCL_WIDE_INT_TYPE __int64
-# ifdef __BORLANDC__
-# define TCL_LL_MODIFIER "L"
-# else /* __BORLANDC__ */
-# define TCL_LL_MODIFIER "I64"
-# endif /* __BORLANDC__ */
+# ifdef _WIN32
+# define TCL_WIDE_INT_TYPE __int64
+# ifdef __BORLANDC__
+# define TCL_LL_MODIFIER "L"
+# elif defined(_WIN32) && (!defined(__USE_MINGW_ANSI_STDIO) || !__USE_MINGW_ANSI_STDIO)
+# define TCL_LL_MODIFIER "I64"
+# else
+# define TCL_LL_MODIFIER "ll"
+# endif
# elif defined(__GNUC__)
# define TCL_WIDE_INT_TYPE long long
# define TCL_LL_MODIFIER "ll"
@@ -437,7 +452,7 @@ typedef unsigned TCL_WIDE_INT_TYPE Tcl_WideUInt;
# define Tcl_DoubleAsWide(val) ((Tcl_WideInt)((double)(val)))
#endif /* TCL_WIDE_INT_IS_LONG */
-#if defined(_WIN32)
+#ifdef _WIN32
# ifdef __BORLANDC__
typedef struct stati64 Tcl_StatBuf;
# elif defined(_WIN64) || defined(_USE_64BIT_TIME_T)
@@ -491,7 +506,7 @@ typedef unsigned TCL_WIDE_INT_TYPE Tcl_WideUInt;
*/
typedef struct Tcl_Interp
-#ifndef TCL_NO_DEPRECATED
+#if !defined(TCL_NO_DEPRECATED) && TCL_MAJOR_VERSION < 9
{
/* TIP #330: Strongly discourage extensions from using the string
* result. */
@@ -521,7 +536,7 @@ typedef struct Tcl_Interp
int errorLineDontUse; /* Don't use in extensions! */
#endif
}
-#endif /* TCL_NO_DEPRECATED */
+#endif /* !TCL_NO_DEPRECATED */
Tcl_Interp;
typedef struct Tcl_AsyncHandler_ *Tcl_AsyncHandler;
@@ -1120,9 +1135,9 @@ typedef struct Tcl_DString {
* give the flag)
*/
-#ifndef TCL_NO_DEPRECATED
+#if !defined(TCL_NO_DEPRECATED) && TCL_MAJOR_VERSION < 9
# define TCL_PARSE_PART1 0x400
-#endif
+#endif /* !TCL_NO_DEPRECATED */
/*
* Types for linked variables:
@@ -1714,7 +1729,7 @@ typedef struct Tcl_FSVersion_ *Tcl_FSVersion;
* struct Tcl_Filesystem:
*
* One such structure exists for each type (kind) of filesystem. It collects
- * together in one place all the functions that are part of the specific
+ * together the functions that form the interface for a particulr the
* filesystem. Tcl always accesses the filesystem through one of these
* structures.
*
@@ -1729,147 +1744,119 @@ typedef struct Tcl_Filesystem {
* compatibility can be assured. */
Tcl_FSVersion version; /* Version of the filesystem type. */
Tcl_FSPathInFilesystemProc *pathInFilesystemProc;
- /* Function to check whether a path is in this
+ /* Determines whether the pathname is in this
* filesystem. This is the most important
* filesystem function. */
Tcl_FSDupInternalRepProc *dupInternalRepProc;
- /* Function to duplicate internal fs rep. May
- * be NULL (but then fs is less efficient). */
+ /* Duplicates the internal handle of the node.
+ * If it is NULL, the filesystem is less
+ * performant. */
Tcl_FSFreeInternalRepProc *freeInternalRepProc;
- /* Function to free internal fs rep. Must be
- * implemented if internal representations
- * need freeing, otherwise it can be NULL. */
+ /* Frees the internal handle of the node. NULL
+ * only if there is no need to free resources
+ * used for the internal handle. */
Tcl_FSInternalToNormalizedProc *internalToNormalizedProc;
- /* Function to convert internal representation
- * to a normalized path. Only required if the
- * fs creates pure path objects with no
- * string/path representation. */
+ /* Converts the internal handle to a normalized
+ * path. NULL if the filesystem creates nodes
+ * having no pathname. */
Tcl_FSCreateInternalRepProc *createInternalRepProc;
- /* Function to create a filesystem-specific
- * internal representation. May be NULL if
- * paths have no internal representation, or
- * if the Tcl_FSPathInFilesystemProc for this
- * filesystem always immediately creates an
- * internal representation for paths it
- * accepts. */
+ /* Creates an internal handle for a pathname.
+ * May be NULL if pathnames have no internal
+ * handle or if pathInFilesystemProc always
+ * immediately creates an internal
+ * representation for pathnames in the
+ * filesystem. */
Tcl_FSNormalizePathProc *normalizePathProc;
- /* Function to normalize a path. Should be
- * implemented for all filesystems which can
- * have multiple string representations for
- * the same path object. */
+ /* Normalizes a path. Should be implemented if
+ * the filesystems supports multiple paths to
+ * the same node. */
Tcl_FSFilesystemPathTypeProc *filesystemPathTypeProc;
- /* Function to determine the type of a path in
- * this filesystem. May be NULL. */
+ /* Determines the type of a path in this
+ * filesystem. May be NULL. */
Tcl_FSFilesystemSeparatorProc *filesystemSeparatorProc;
- /* Function to return the separator
- * character(s) for this filesystem. Must be
- * implemented. */
- Tcl_FSStatProc *statProc; /* Function to process a 'Tcl_FSStat()' call.
- * Must be implemented for any reasonable
- * filesystem. */
- Tcl_FSAccessProc *accessProc;
- /* Function to process a 'Tcl_FSAccess()'
- * call. Must be implemented for any
+ /* Produces the separator character(s) for this
+ * filesystem. Must not be NULL. */
+ Tcl_FSStatProc *statProc; /* Called by 'Tcl_FSStat()'. Provided by any
* reasonable filesystem. */
+ Tcl_FSAccessProc *accessProc;
+ /* Called by 'Tcl_FSAccess()'. Implemented by
+ * any reasonable filesystem. */
Tcl_FSOpenFileChannelProc *openFileChannelProc;
- /* Function to process a
- * 'Tcl_FSOpenFileChannel()' call. Must be
- * implemented for any reasonable
- * filesystem. */
+ /* Called by 'Tcl_FSOpenFileChannel()'.
+ * Provided by any reasonable filesystem. */
Tcl_FSMatchInDirectoryProc *matchInDirectoryProc;
- /* Function to process a
- * 'Tcl_FSMatchInDirectory()'. If not
- * implemented, then glob and recursive copy
- * functionality will be lacking in the
- * filesystem. */
- Tcl_FSUtimeProc *utimeProc; /* Function to process a 'Tcl_FSUtime()' call.
- * Required to allow setting (not reading) of
- * times with 'file mtime', 'file atime' and
- * the open-r/open-w/fcopy implementation of
- * 'file copy'. */
- Tcl_FSLinkProc *linkProc; /* Function to process a 'Tcl_FSLink()' call.
- * Should be implemented only if the
- * filesystem supports links (reading or
- * creating). */
+ /* Called by 'Tcl_FSMatchInDirectory()'. NULL
+ * if the filesystem does not support glob or
+ * recursive copy. */
+ Tcl_FSUtimeProc *utimeProc; /* Called by 'Tcl_FSUtime()', by 'file
+ * mtime' to set (not read) times, 'file
+ * atime', and the open-r/open-w/fcopy variant
+ * of 'file copy'. */
+ Tcl_FSLinkProc *linkProc; /* Called by 'Tcl_FSLink()'. NULL if reading or
+ * creating links is not supported. */
Tcl_FSListVolumesProc *listVolumesProc;
- /* Function to list any filesystem volumes
- * added by this filesystem. Should be
- * implemented only if the filesystem adds
- * volumes at the head of the filesystem. */
+ /* Lists filesystem volumes added by this
+ * filesystem. NULL if the filesystem does not
+ * use volumes. */
Tcl_FSFileAttrStringsProc *fileAttrStringsProc;
- /* Function to list all attributes strings
- * which are valid for this filesystem. If not
- * implemented the filesystem will not support
- * the 'file attributes' command. This allows
- * arbitrary additional information to be
- * attached to files in the filesystem. */
+ /* List all valid attributes strings. NULL if
+ * the filesystem does not support the 'file
+ * attributes' command. Can be used to attach
+ * arbitrary additional data to files in a
+ * filesystem. */
Tcl_FSFileAttrsGetProc *fileAttrsGetProc;
- /* Function to process a
- * 'Tcl_FSFileAttrsGet()' call, used by 'file
- * attributes'. */
+ /* Called by 'Tcl_FSFileAttrsGet()' and by
+ * 'file attributes'. */
Tcl_FSFileAttrsSetProc *fileAttrsSetProc;
- /* Function to process a
- * 'Tcl_FSFileAttrsSet()' call, used by 'file
- * attributes'. */
+ /* Called by 'Tcl_FSFileAttrsSet()' and by
+ * 'file attributes'. */
Tcl_FSCreateDirectoryProc *createDirectoryProc;
- /* Function to process a
- * 'Tcl_FSCreateDirectory()' call. Should be
- * implemented unless the FS is read-only. */
+ /* Called by 'Tcl_FSCreateDirectory()'. May be
+ * NULL if the filesystem is read-only. */
Tcl_FSRemoveDirectoryProc *removeDirectoryProc;
- /* Function to process a
- * 'Tcl_FSRemoveDirectory()' call. Should be
- * implemented unless the FS is read-only. */
+ /* Called by 'Tcl_FSRemoveDirectory()'. May be
+ * NULL if the filesystem is read-only. */
Tcl_FSDeleteFileProc *deleteFileProc;
- /* Function to process a 'Tcl_FSDeleteFile()'
- * call. Should be implemented unless the FS
- * is read-only. */
+ /* Called by 'Tcl_FSDeleteFile()' May be NULL
+ * if the filesystem is is read-only. */
Tcl_FSCopyFileProc *copyFileProc;
- /* Function to process a 'Tcl_FSCopyFile()'
- * call. If not implemented Tcl will fall back
- * on open-r, open-w and fcopy as a copying
- * mechanism, for copying actions initiated in
- * Tcl (not C). */
+ /* Called by 'Tcl_FSCopyFile()'. If NULL, for
+ * a copy operation at the script level (not
+ * C) Tcl uses open-r, open-w and fcopy. */
Tcl_FSRenameFileProc *renameFileProc;
- /* Function to process a 'Tcl_FSRenameFile()'
- * call. If not implemented, Tcl will fall
- * back on a copy and delete mechanism, for
- * rename actions initiated in Tcl (not C). */
+ /* Called by 'Tcl_FSRenameFile()'. If NULL, for
+ * a rename operation at the script level (not
+ * C) Tcl performs a copy operation followed
+ * by a delete operation. */
Tcl_FSCopyDirectoryProc *copyDirectoryProc;
- /* Function to process a
- * 'Tcl_FSCopyDirectory()' call. If not
- * implemented, Tcl will fall back on a
- * recursive create-dir, file copy mechanism,
- * for copying actions initiated in Tcl (not
- * C). */
- Tcl_FSLstatProc *lstatProc; /* Function to process a 'Tcl_FSLstat()' call.
- * If not implemented, Tcl will attempt to use
- * the 'statProc' defined above instead. */
+ /* Called by 'Tcl_FSCopyDirectory()'. If NULL,
+ * for a copy operation at the script level
+ * (not C) Tcl recursively creates directories
+ * and copies files. */
+ Tcl_FSLstatProc *lstatProc; /* Called by 'Tcl_FSLstat()'. If NULL, Tcl
+ * attempts to use 'statProc' instead. */
Tcl_FSLoadFileProc *loadFileProc;
- /* Function to process a 'Tcl_FSLoadFile()'
- * call. If not implemented, Tcl will fall
- * back on a copy to native-temp followed by a
- * Tcl_FSLoadFile on that temporary copy. */
+ /* Called by 'Tcl_FSLoadFile()'. If NULL, Tcl
+ * performs a copy to a temporary file in the
+ * native filesystem and then calls
+ * Tcl_FSLoadFile() on that temporary copy. */
Tcl_FSGetCwdProc *getCwdProc;
- /* Function to process a 'Tcl_FSGetCwd()'
- * call. Most filesystems need not implement
- * this. It will usually only be called once,
- * if 'getcwd' is called before 'chdir'. May
- * be NULL. */
- Tcl_FSChdirProc *chdirProc; /* Function to process a 'Tcl_FSChdir()' call.
- * If filesystems do not implement this, it
- * will be emulated by a series of directory
- * access checks. Otherwise, virtual
- * filesystems which do implement it need only
- * respond with a positive return result if
- * the dirName is a valid directory in their
- * filesystem. They need not remember the
- * result, since that will be automatically
- * remembered for use by GetCwd. Real
- * filesystems should carry out the correct
- * action (i.e. call the correct system
- * 'chdir' api). If not implemented, then 'cd'
- * and 'pwd' will fail inside the
- * filesystem. */
+ /* Called by 'Tcl_FSGetCwd()'. Normally NULL.
+ * Usually only called once: If 'getcwd' is
+ * called before 'chdir' is ever called. */
+ Tcl_FSChdirProc *chdirProc; /* Called by 'Tcl_FSChdir()'. For a virtual
+ * filesystem, chdirProc just returns zero
+ * (success) if the pathname is a valid
+ * directory, and some other value otherwise.
+ * For A real filesystem, chdirProc performs
+ * the correct action, e.g. calls the system
+ * 'chdir' function. If not implemented, then
+ * 'cd' and 'pwd' fail for a pathname in this
+ * filesystem. On success Tcl stores the
+ * pathname for use by GetCwd. If NULL, Tcl
+ * performs records the pathname as the new
+ * current directory if it passes a series of
+ * directory access checks. */
} Tcl_Filesystem;
/*
@@ -2130,29 +2117,28 @@ typedef struct Tcl_EncodingType {
* reset to an initial state. If the source
* buffer contains the entire input stream to be
* converted, this flag should be set.
- * TCL_ENCODING_STOPONERROR - If set, then the converter will return
- * immediately upon encountering an invalid byte
- * sequence or a source character that has no
- * mapping in the target encoding. If clear, then
- * the converter will skip the problem,
- * substituting one or more "close" characters in
- * the destination buffer and then continue to
+ * TCL_ENCODING_STOPONERROR - If set, the converter returns immediately upon
+ * encountering an invalid byte sequence or a
+ * source character that has no mapping in the
+ * target encoding. If clear, the converter
+ * substitues the problematic character(s) with
+ * one or more "close" characters in the
+ * destination buffer and then continues to
* convert the source.
- * TCL_ENCODING_NO_TERMINATE - If set, Tcl_ExternalToUtf will not append a
- * terminating NUL byte. Knowing that it will
- * not need space to do so, it will fill all
- * dstLen bytes with encoded UTF-8 content, as
- * other circumstances permit. If clear, the
- * default behavior is to reserve a byte in
- * the dst space for NUL termination, and to
- * append the NUL byte.
+ * TCL_ENCODING_NO_TERMINATE - If set, Tcl_ExternalToUtf does not append a
+ * terminating NUL byte. Since it does not need
+ * an extra byte for a terminating NUL, it fills
+ * all dstLen bytes with encoded UTF-8 content if
+ * needed. If clear, a byte is reserved in the
+ * dst space for NUL termination, and a
+ * terminating NUL is appended.
* TCL_ENCODING_CHAR_LIMIT - If set and dstCharsPtr is not NULL, then
- * Tcl_ExternalToUtf takes the initial value
- * of *dstCharsPtr is taken as a limit of the
- * maximum number of chars to produce in the
- * encoded UTF-8 content. Otherwise, the
- * number of chars produced is controlled only
- * by other limiting factors.
+ * Tcl_ExternalToUtf takes the initial value of
+ * *dstCharsPtr as a limit of the maximum number
+ * of chars to produce in the encoded UTF-8
+ * content. Otherwise, the number of chars
+ * produced is controlled only by other limiting
+ * factors.
*/
#define TCL_ENCODING_START 0x01
@@ -2387,9 +2373,6 @@ typedef int (Tcl_NRPostProc) (ClientData data[], Tcl_Interp *interp,
*----------------------------------------------------------------------------
* The following constant is used to test for older versions of Tcl in the
* stubs tables.
- *
- * Jan Nijtman's plus patch uses 0xFCA1BACF, so we need to pick a different
- * value since the stubs tables don't match.
*/
#define TCL_STUB_MAGIC ((int) 0xFCA3BACF)
@@ -2416,10 +2399,6 @@ const char * TclTomMathInitializeStubs(Tcl_Interp *interp,
#endif
/*
- * TODO - tommath stubs export goes here!
- */
-
-/*
* Public functions that are not accessible via the stubs table.
* Tcl_GetMemoryInfo is needed for AOLserver. [Bug 1868171]
*/
diff --git a/generic/tclAssembly.c b/generic/tclAssembly.c
index 94cb53c..7ecc1d5 100644
--- a/generic/tclAssembly.c
+++ b/generic/tclAssembly.c
@@ -497,7 +497,7 @@ static const TalInstDesc TalInstructionTable[] = {
{"variable", ASSEM_LVT4, INST_VARIABLE, 1, 0},
{"verifyDict", ASSEM_1BYTE, INST_DICT_VERIFY, 1, 0},
{"yield", ASSEM_1BYTE, INST_YIELD, 1, 1},
- {NULL, 0, 0, 0, 0}
+ {NULL, ASSEM_1BYTE, 0, 0, 0}
};
/*
@@ -848,7 +848,6 @@ CompileAssembleObj(
const char* source; /* String representation of the source code */
int sourceLen; /* Length of the source code in bytes */
-
/*
* Get the expression ByteCode from the object. If it exists, make sure it
* is valid in the current context.
@@ -856,7 +855,7 @@ CompileAssembleObj(
if (objPtr->typePtr == &assembleCodeType) {
namespacePtr = iPtr->varFramePtr->nsPtr;
- codePtr = objPtr->internalRep.twoPtrValue.ptr1;
+ codePtr = (ByteCode *)objPtr->internalRep.twoPtrValue.ptr1;
if (((Interp *) *codePtr->interpHandle == iPtr)
&& (codePtr->compileEpoch == iPtr->compileEpoch)
&& (codePtr->nsPtr == namespacePtr)
@@ -903,7 +902,7 @@ CompileAssembleObj(
* Record the local variable context to which the bytecode pertains
*/
- codePtr = objPtr->internalRep.twoPtrValue.ptr1;
+ codePtr = (ByteCode *)objPtr->internalRep.twoPtrValue.ptr1;
if (iPtr->varFramePtr->localCachePtr) {
codePtr->localCachePtr = iPtr->varFramePtr->localCachePtr;
codePtr->localCachePtr->refCount++;
@@ -1144,9 +1143,9 @@ NewAssemblyEnv(
{
Tcl_Interp* interp = (Tcl_Interp*) envPtr->iPtr;
/* Tcl interpreter */
- AssemblyEnv* assemEnvPtr = TclStackAlloc(interp, sizeof(AssemblyEnv));
+ AssemblyEnv* assemEnvPtr = (AssemblyEnv*)TclStackAlloc(interp, sizeof(AssemblyEnv));
/* Assembler environment under construction */
- Tcl_Parse* parsePtr = TclStackAlloc(interp, sizeof(Tcl_Parse));
+ Tcl_Parse* parsePtr = (Tcl_Parse*)TclStackAlloc(interp, sizeof(Tcl_Parse));
/* Parse of one line of assembly code */
assemEnvPtr->envPtr = envPtr;
@@ -1534,7 +1533,7 @@ AssembleOneLine(
goto cleanup;
}
- jtPtr = ckalloc(sizeof(JumptableInfo));
+ jtPtr = (JumptableInfo*)ckalloc(sizeof(JumptableInfo));
Tcl_InitHashTable(&jtPtr->hashTable, TCL_STRING_KEYS);
assemEnvPtr->curr_bb->jumpLine = assemEnvPtr->cmdLine;
@@ -1928,7 +1927,7 @@ MoveExceptionRangesToBasicBlock(
curr_bb->foreignExceptionBase = savedExceptArrayNext;
curr_bb->foreignExceptionCount = exceptionCount;
curr_bb->foreignExceptions =
- ckalloc(exceptionCount * sizeof(ExceptionRange));
+ (ExceptionRange*)ckalloc(exceptionCount * sizeof(ExceptionRange));
memcpy(curr_bb->foreignExceptions,
envPtr->exceptArrayPtr + savedExceptArrayNext,
exceptionCount * sizeof(ExceptionRange));
@@ -1993,7 +1992,7 @@ CreateMirrorJumpTable(
* Allocate the jumptable.
*/
- jtPtr = ckalloc(sizeof(JumptableInfo));
+ jtPtr = (JumptableInfo*)ckalloc(sizeof(JumptableInfo));
jtHashPtr = &jtPtr->hashTable;
Tcl_InitHashTable(jtHashPtr, TCL_STRING_KEYS);
@@ -2053,7 +2052,7 @@ DeleteMirrorJumpTable(
for (entry = Tcl_FirstHashEntry(jtHashPtr, &search);
entry != NULL;
entry = Tcl_NextHashEntry(&search)) {
- label = Tcl_GetHashValue(entry);
+ label = (Tcl_Obj*)Tcl_GetHashValue(entry);
Tcl_DecrRefCount(label);
Tcl_SetHashValue(entry, NULL);
}
@@ -2642,7 +2641,7 @@ AllocBB(
AssemblyEnv* assemEnvPtr) /* Assembly environment */
{
CompileEnv* envPtr = assemEnvPtr->envPtr;
- BasicBlock *bb = ckalloc(sizeof(BasicBlock));
+ BasicBlock *bb = (BasicBlock*)ckalloc(sizeof(BasicBlock));
bb->originalStartOffset =
bb->startOffset = envPtr->codeNext - envPtr->codeStart;
@@ -2833,7 +2832,7 @@ CalculateJumpRelocations(
* target is out of range.
*/
- jumpTarget = Tcl_GetHashValue(entry);
+ jumpTarget = (BasicBlock*)Tcl_GetHashValue(entry);
if (bbPtr->flags & BB_JUMP1) {
offset = jumpTarget->startOffset
- (bbPtr->jumpOffset + motion);
@@ -2900,7 +2899,7 @@ CheckJumpTableLabels(
for (symEntryPtr = Tcl_FirstHashEntry(symHash, &search);
symEntryPtr != NULL;
symEntryPtr = Tcl_NextHashEntry(&search)) {
- symbolObj = Tcl_GetHashValue(symEntryPtr);
+ symbolObj = (Tcl_Obj*)Tcl_GetHashValue(symEntryPtr);
valEntryPtr = Tcl_FindHashEntry(&assemEnvPtr->labelHash,
Tcl_GetString(symbolObj));
DEBUG_PRINT(" %s -> %s (%d)\n",
@@ -3029,7 +3028,7 @@ FillInJumpOffsets(
if (bbPtr->jumpTarget != NULL) {
entry = Tcl_FindHashEntry(&assemEnvPtr->labelHash,
Tcl_GetString(bbPtr->jumpTarget));
- jumpTarget = Tcl_GetHashValue(entry);
+ jumpTarget = (BasicBlock*)Tcl_GetHashValue(entry);
fromOffset = bbPtr->jumpOffset;
targetOffset = jumpTarget->startOffset;
if (bbPtr->flags & BB_JUMP1) {
@@ -3088,7 +3087,7 @@ ResolveJumpTableTargets(
auxDataIndex = TclGetInt4AtPtr(envPtr->codeStart + bbPtr->jumpOffset + 1);
DEBUG_PRINT("bbPtr = %p jumpOffset = %d auxDataIndex = %d\n",
bbPtr, bbPtr->jumpOffset, auxDataIndex);
- realJumpTablePtr = TclFetchAuxData(envPtr, auxDataIndex);
+ realJumpTablePtr = (JumptableInfo*)TclFetchAuxData(envPtr, auxDataIndex);
realJumpHashPtr = &realJumpTablePtr->hashTable;
/*
@@ -3099,12 +3098,12 @@ ResolveJumpTableTargets(
for (symEntryPtr = Tcl_FirstHashEntry(symHash, &search);
symEntryPtr != NULL;
symEntryPtr = Tcl_NextHashEntry(&search)) {
- symbolObj = Tcl_GetHashValue(symEntryPtr);
+ symbolObj = (Tcl_Obj*)Tcl_GetHashValue(symEntryPtr);
DEBUG_PRINT(" symbol %s\n", Tcl_GetString(symbolObj));
valEntryPtr = Tcl_FindHashEntry(&assemEnvPtr->labelHash,
Tcl_GetString(symbolObj));
- jumpTargetBBPtr = Tcl_GetHashValue(valEntryPtr);
+ jumpTargetBBPtr = (BasicBlock*)Tcl_GetHashValue(valEntryPtr);
realJumpEntryPtr = Tcl_CreateHashEntry(realJumpHashPtr,
Tcl_GetHashKey(symHash, symEntryPtr), &junk);
@@ -3483,7 +3482,7 @@ StackCheckBasicBlock(
if (result == TCL_OK && blockPtr->jumpTarget != NULL) {
entry = Tcl_FindHashEntry(&assemEnvPtr->labelHash,
Tcl_GetString(blockPtr->jumpTarget));
- jumpTarget = Tcl_GetHashValue(entry);
+ jumpTarget = (BasicBlock*)Tcl_GetHashValue(entry);
result = StackCheckBasicBlock(assemEnvPtr, jumpTarget, blockPtr,
stackDepth);
}
@@ -3497,10 +3496,10 @@ StackCheckBasicBlock(
&jtSearch);
result == TCL_OK && jtEntry != NULL;
jtEntry = Tcl_NextHashEntry(&jtSearch)) {
- targetLabel = Tcl_GetHashValue(jtEntry);
+ targetLabel = (Tcl_Obj*)Tcl_GetHashValue(jtEntry);
entry = Tcl_FindHashEntry(&assemEnvPtr->labelHash,
Tcl_GetString(targetLabel));
- jumpTarget = Tcl_GetHashValue(entry);
+ jumpTarget = (BasicBlock*)Tcl_GetHashValue(entry);
result = StackCheckBasicBlock(assemEnvPtr, jumpTarget,
blockPtr, stackDepth);
}
@@ -3805,7 +3804,7 @@ ProcessCatchesInBasicBlock(
if (result == TCL_OK && bbPtr->jumpTarget != NULL) {
entry = Tcl_FindHashEntry(&assemEnvPtr->labelHash,
Tcl_GetString(bbPtr->jumpTarget));
- jumpTarget = Tcl_GetHashValue(entry);
+ jumpTarget = (BasicBlock*)Tcl_GetHashValue(entry);
result = ProcessCatchesInBasicBlock(assemEnvPtr, jumpTarget,
jumpEnclosing, jumpState, catchDepth);
}
@@ -3818,10 +3817,10 @@ ProcessCatchesInBasicBlock(
for (jtEntry = Tcl_FirstHashEntry(&bbPtr->jtPtr->hashTable,&jtSearch);
result == TCL_OK && jtEntry != NULL;
jtEntry = Tcl_NextHashEntry(&jtSearch)) {
- targetLabel = Tcl_GetHashValue(jtEntry);
+ targetLabel = (Tcl_Obj*)Tcl_GetHashValue(jtEntry);
entry = Tcl_FindHashEntry(&assemEnvPtr->labelHash,
Tcl_GetString(targetLabel));
- jumpTarget = Tcl_GetHashValue(entry);
+ jumpTarget = (BasicBlock*)Tcl_GetHashValue(entry);
result = ProcessCatchesInBasicBlock(assemEnvPtr, jumpTarget,
jumpEnclosing, jumpState, catchDepth);
}
@@ -3920,8 +3919,8 @@ BuildExceptionRanges(
* Allocate memory for a stack of active catches.
*/
- catches = ckalloc(maxCatchDepth * sizeof(BasicBlock*));
- catchIndices = ckalloc(maxCatchDepth * sizeof(int));
+ catches = (BasicBlock**)ckalloc(maxCatchDepth * sizeof(BasicBlock*));
+ catchIndices = (int *)ckalloc(maxCatchDepth * sizeof(int));
for (i = 0; i < maxCatchDepth; ++i) {
catches[i] = NULL;
catchIndices[i] = -1;
@@ -3989,7 +3988,7 @@ UnstackExpiredCatches(
* corresponding to the catch contexts */
{
ExceptionRange* range; /* Exception range for a specific catch */
- BasicBlock* catch; /* Catch block being examined */
+ BasicBlock* block; /* Catch block being examined */
BasicBlockCatchState catchState;
/* State of the code relative to the catch
* block being examined ("in catch" or
@@ -4017,18 +4016,18 @@ UnstackExpiredCatches(
*/
catchState = bbPtr->catchState;
- catch = bbPtr->enclosingCatch;
+ block = bbPtr->enclosingCatch;
while (catchDepth > 0) {
--catchDepth;
if (catches[catchDepth] != NULL) {
- if (catches[catchDepth] != catch || catchState >= BBCS_CAUGHT) {
+ if (catches[catchDepth] != block || catchState >= BBCS_CAUGHT) {
range = envPtr->exceptArrayPtr + catchIndices[catchDepth];
range->numCodeBytes = bbPtr->startOffset - range->codeOffset;
catches[catchDepth] = NULL;
catchIndices[catchDepth] = -1;
}
- catchState = catch->catchState;
- catch = catch->enclosingCatch;
+ catchState = block->catchState;
+ block = block->enclosingCatch;
}
}
}
@@ -4057,19 +4056,19 @@ LookForFreshCatches(
BasicBlockCatchState catchState;
/* State ("in catch" or "caught") of the
* current catch. */
- BasicBlock* catch; /* Current enclosing catch */
+ BasicBlock* block; /* Current enclosing catch */
int catchDepth; /* Nesting depth of the current catch */
catchState = bbPtr->catchState;
- catch = bbPtr->enclosingCatch;
+ block = bbPtr->enclosingCatch;
catchDepth = bbPtr->catchDepth;
while (catchDepth > 0) {
--catchDepth;
- if (catches[catchDepth] != catch && catchState < BBCS_CAUGHT) {
- catches[catchDepth] = catch;
+ if (catches[catchDepth] != block && catchState < BBCS_CAUGHT) {
+ catches[catchDepth] = block;
}
- catchState = catch->catchState;
- catch = catch->enclosingCatch;
+ catchState = block->catchState;
+ block = block->enclosingCatch;
}
}
@@ -4097,7 +4096,7 @@ StackFreshCatches(
CompileEnv* envPtr = assemEnvPtr->envPtr;
/* Compilation environment */
ExceptionRange* range; /* Exception range for a specific catch */
- BasicBlock* catch; /* Catch block being examined */
+ BasicBlock* block; /* Catch block being examined */
BasicBlock* errorExit; /* Error exit from the catch block */
Tcl_HashEntry* entryPtr;
@@ -4114,7 +4113,7 @@ StackFreshCatches(
* Create an exception range for a block that needs one.
*/
- catch = catches[catchDepth];
+ block = catches[catchDepth];
catchIndices[catchDepth] =
TclCreateExceptRange(CATCH_EXCEPTION_RANGE, envPtr);
range = envPtr->exceptArrayPtr + catchIndices[catchDepth];
@@ -4124,13 +4123,13 @@ StackFreshCatches(
range->codeOffset = bbPtr->startOffset;
entryPtr = Tcl_FindHashEntry(&assemEnvPtr->labelHash,
- Tcl_GetString(catch->jumpTarget));
+ Tcl_GetString(block->jumpTarget));
if (entryPtr == NULL) {
Tcl_Panic("undefined label in tclAssembly.c:"
"BuildExceptionRanges, can't happen");
}
- errorExit = Tcl_GetHashValue(entryPtr);
+ errorExit = (BasicBlock*)Tcl_GetHashValue(entryPtr);
range->catchOffset = errorExit->startOffset;
}
}
@@ -4308,6 +4307,7 @@ DupAssembleCodeInternalRep(
{
(void)srcPtr;
(void)copyPtr;
+
return;
}
@@ -4333,10 +4333,9 @@ static void
FreeAssembleCodeInternalRep(
Tcl_Obj *objPtr)
{
- ByteCode *codePtr = objPtr->internalRep.twoPtrValue.ptr1;
+ ByteCode *codePtr = (ByteCode *)objPtr->internalRep.twoPtrValue.ptr1;
- codePtr->refCount--;
- if (codePtr->refCount <= 0) {
+ if (codePtr->refCount-- <= 1) {
TclCleanupByteCode(codePtr);
}
objPtr->typePtr = NULL;
diff --git a/generic/tclAsync.c b/generic/tclAsync.c
index 14804e4..d1871f9 100644
--- a/generic/tclAsync.c
+++ b/generic/tclAsync.c
@@ -118,7 +118,7 @@ Tcl_AsyncCreate(
AsyncHandler *asyncPtr;
ThreadSpecificData *tsdPtr = TCL_TSD_INIT(&dataKey);
- asyncPtr = ckalloc(sizeof(AsyncHandler));
+ asyncPtr = (AsyncHandler *)ckalloc(sizeof(AsyncHandler));
asyncPtr->ready = 0;
asyncPtr->nextPtr = NULL;
asyncPtr->proc = proc;
diff --git a/generic/tclBasic.c b/generic/tclBasic.c
index 062f281..895d160 100644
--- a/generic/tclBasic.c
+++ b/generic/tclBasic.c
@@ -864,6 +864,7 @@ Tcl_CreateInterp(void)
Tcl_Export(interp, nsPtr, "*", 1);
}
+
#ifdef USE_DTRACE
/*
* Register the tcl::dtrace command.
diff --git a/generic/tclBinary.c b/generic/tclBinary.c
index 8520ec7..eb85103 100644
--- a/generic/tclBinary.c
+++ b/generic/tclBinary.c
@@ -420,7 +420,7 @@ Tcl_SetByteArrayLength(
byteArrayPtr = GET_BYTEARRAY(objPtr);
if (length > byteArrayPtr->allocated) {
- byteArrayPtr = ckrealloc(byteArrayPtr, BYTEARRAY_SIZE(length));
+ byteArrayPtr = (ByteArray *)ckrealloc(byteArrayPtr, BYTEARRAY_SIZE(length));
byteArrayPtr->allocated = length;
SET_BYTEARRAY(objPtr, byteArrayPtr);
}
@@ -669,7 +669,7 @@ TclAppendBytesToByteArray(
*/
attempt = 2 * needed;
- ptr = attemptckrealloc(byteArrayPtr, BYTEARRAY_SIZE(attempt));
+ ptr = (ByteArray *)attemptckrealloc(byteArrayPtr, BYTEARRAY_SIZE(attempt));
}
if (ptr == NULL) {
/*
@@ -681,7 +681,7 @@ TclAppendBytesToByteArray(
int growth = (int) ((extra > limit) ? limit : extra);
attempt = needed + growth;
- ptr = attemptckrealloc(byteArrayPtr, BYTEARRAY_SIZE(attempt));
+ ptr = (ByteArray *)attemptckrealloc(byteArrayPtr, BYTEARRAY_SIZE(attempt));
}
if (ptr == NULL) {
/*
@@ -689,7 +689,7 @@ TclAppendBytesToByteArray(
*/
attempt = needed;
- ptr = ckrealloc(byteArrayPtr, BYTEARRAY_SIZE(attempt));
+ ptr = (ByteArray *)ckrealloc(byteArrayPtr, BYTEARRAY_SIZE(attempt));
}
byteArrayPtr = ptr;
byteArrayPtr->allocated = attempt;
@@ -1806,8 +1806,8 @@ CopyNumber(
memcpy(to, from, length);
break;
case 1: {
- const unsigned char *fromPtr = from;
- unsigned char *toPtr = to;
+ const unsigned char *fromPtr = (const unsigned char *)from;
+ unsigned char *toPtr = (unsigned char *)to;
switch (length) {
case 4:
@@ -1830,8 +1830,8 @@ CopyNumber(
break;
}
case 2: {
- const unsigned char *fromPtr = from;
- unsigned char *toPtr = to;
+ const unsigned char *fromPtr = (const unsigned char *)from;
+ unsigned char *toPtr = (unsigned char *)to;
toPtr[0] = fromPtr[4];
toPtr[1] = fromPtr[5];
@@ -1844,8 +1844,8 @@ CopyNumber(
break;
}
case 3: {
- const unsigned char *fromPtr = from;
- unsigned char *toPtr = to;
+ const unsigned char *fromPtr = (const unsigned char *)from;
+ unsigned char *toPtr = (unsigned char *)to;
toPtr[0] = fromPtr[3];
toPtr[1] = fromPtr[2];
@@ -2152,7 +2152,7 @@ ScanNumber(
hPtr = Tcl_CreateHashEntry(tablePtr, INT2PTR(value), &isNew);
if (!isNew) {
- return Tcl_GetHashValue(hPtr);
+ return (Tcl_Obj *)Tcl_GetHashValue(hPtr);
}
if (tablePtr->numEntries <= BINARY_SCAN_MAX_CACHE) {
Tcl_Obj *objPtr = Tcl_NewLongObj(value);
@@ -2274,7 +2274,7 @@ DeleteScanNumberCache(
hEntry = Tcl_FirstHashEntry(numberCachePtr, &search);
while (hEntry != NULL) {
- Tcl_Obj *value = Tcl_GetHashValue(hEntry);
+ Tcl_Obj *value = (Tcl_Obj *)Tcl_GetHashValue(hEntry);
if (value != NULL) {
Tcl_DecrRefCount(value);
@@ -2689,7 +2689,7 @@ BinaryEncodeUu(
* enough".
*/
- resultObj = Tcl_NewObj();
+ TclNewObj(resultObj);
offset = 0;
data = Tcl_GetByteArrayFromObj(objv[objc - 1], &count);
rawLength = (lineLength - 1) * 3 / 4;
diff --git a/generic/tclCkalloc.c b/generic/tclCkalloc.c
index 6d661f6..48832d9 100644
--- a/generic/tclCkalloc.c
+++ b/generic/tclCkalloc.c
@@ -252,7 +252,7 @@ ValidateMemory(
if (guard_failed) {
TclDumpMemoryInfo((ClientData) stderr, 0);
fprintf(stderr, "low guard failed at %lx, %s %d\n",
- (long unsigned) memHeaderP->body, file, line);
+ (unsigned long)(size_t)memHeaderP->body, file, line);
fflush(stderr); /* In case name pointer is bad. */
fprintf(stderr, "%ld bytes allocated at (%s %d)\n", memHeaderP->length,
memHeaderP->file, memHeaderP->line);
@@ -274,7 +274,7 @@ ValidateMemory(
if (guard_failed) {
TclDumpMemoryInfo((ClientData) stderr, 0);
fprintf(stderr, "high guard failed at %lx, %s %d\n",
- (long unsigned) memHeaderP->body, file, line);
+ (unsigned long)(size_t)memHeaderP->body, file, line);
fflush(stderr); /* In case name pointer is bad. */
fprintf(stderr, "%ld bytes allocated at (%s %d)\n",
memHeaderP->length, memHeaderP->file,
@@ -360,8 +360,8 @@ Tcl_DumpActiveMemory(
for (memScanP = allocHead; memScanP != NULL; memScanP = memScanP->flink) {
address = &memScanP->body[0];
fprintf(fileP, "%8lx - %8lx %7ld @ %s %d %s",
- (long unsigned) address,
- (long unsigned) address + memScanP->length - 1,
+ (unsigned long)(size_t)address,
+ (unsigned long)(size_t)address + memScanP->length - 1,
memScanP->length, memScanP->file, memScanP->line,
(memScanP->tagPtr == NULL) ? "" : memScanP->tagPtr->string);
(void) fputc('\n', fileP);
@@ -459,7 +459,7 @@ Tcl_DbCkalloc(
if (alloc_tracing) {
fprintf(stderr,"ckalloc %lx %u %s %d\n",
- (long unsigned int) result->body, size, file, line);
+ (unsigned long)(size_t)result->body, size, file, line);
}
if (break_on_malloc && (total_mallocs >= break_on_malloc)) {
@@ -548,7 +548,7 @@ Tcl_AttemptDbCkalloc(
if (alloc_tracing) {
fprintf(stderr,"ckalloc %lx %u %s %d\n",
- (long unsigned int) result->body, size, file, line);
+ (unsigned long)(size_t)result->body, size, file, line);
}
if (break_on_malloc && (total_mallocs >= break_on_malloc)) {
@@ -613,7 +613,7 @@ Tcl_DbCkfree(
if (alloc_tracing) {
fprintf(stderr, "ckfree %lx %ld %s %d\n",
- (long unsigned int) memp->body, memp->length, file, line);
+ (unsigned long)(size_t)memp->body, memp->length, file, line);
}
if (validate_memory) {
diff --git a/generic/tclClock.c b/generic/tclClock.c
index 87e3e4b..ff73a12 100644
--- a/generic/tclClock.c
+++ b/generic/tclClock.c
@@ -225,9 +225,9 @@ TclClockInit(
* Create the client data, which is a refcounted literal pool.
*/
- data = ckalloc(sizeof(ClockClientData));
+ data = (ClockClientData *)ckalloc(sizeof(ClockClientData));
data->refCount = 0;
- data->literals = ckalloc(LIT__END * sizeof(Tcl_Obj*));
+ data->literals = (Tcl_Obj **)ckalloc(LIT__END * sizeof(Tcl_Obj*));
for (i = 0; i < LIT__END; ++i) {
Tcl_InitObjRef(data->literals[i], Tcl_NewStringObj(Literals[i], -1));
}
@@ -367,7 +367,7 @@ static void
ClockDeleteCmdProc(
ClientData clientData) /* Opaque pointer to the client data */
{
- ClockClientData *data = clientData;
+ ClockClientData *data = (ClockClientData *)clientData;
int i;
if (data->refCount-- <= 1) {
@@ -726,7 +726,7 @@ NormLocaleObj(
Tcl_Obj *
ClockMCDict(ClockFmtScnCmdArgs *opts)
{
- ClockClientData *dataPtr = opts->clientData;
+ ClockClientData *dataPtr = (ClockClientData *)opts->clientData;
/* if dict not yet retrieved */
if (opts->mcDictObj == NULL) {
@@ -734,7 +734,7 @@ ClockMCDict(ClockFmtScnCmdArgs *opts)
/* if locale was not yet used */
if ( !(opts->flags & CLF_LOCALE_USED) ) {
- opts->localeObj = NormLocaleObj(opts->clientData, opts->interp,
+ opts->localeObj = NormLocaleObj((ClockClientData *)opts->clientData, opts->interp,
opts->localeObj, &opts->mcDictObj);
if (opts->localeObj == NULL) {
@@ -748,7 +748,7 @@ ClockMCDict(ClockFmtScnCmdArgs *opts)
/* check locale literals already available (on demand creation) */
if (dataPtr->mcLiterals == NULL) {
int i;
- dataPtr->mcLiterals = ckalloc(MCLIT__END * sizeof(Tcl_Obj*));
+ dataPtr->mcLiterals = (Tcl_Obj **)ckalloc(MCLIT__END * sizeof(Tcl_Obj*));
for (i = 0; i < MCLIT__END; ++i) {
Tcl_InitObjRef(dataPtr->mcLiterals[i],
Tcl_NewStringObj(MsgCtLiterals[i], -1));
@@ -835,7 +835,7 @@ ClockMCGet(
ClockFmtScnCmdArgs *opts,
int mcKey)
{
- ClockClientData *dataPtr = opts->clientData;
+ ClockClientData *dataPtr = (ClockClientData *)opts->clientData;
Tcl_Obj *valObj = NULL;
@@ -871,7 +871,7 @@ ClockMCGetIdx(
ClockFmtScnCmdArgs *opts,
int mcKey)
{
- ClockClientData *dataPtr = opts->clientData;
+ ClockClientData *dataPtr = (ClockClientData *)opts->clientData;
Tcl_Obj *valObj = NULL;
@@ -915,7 +915,7 @@ ClockMCSetIdx(
ClockFmtScnCmdArgs *opts,
int mcKey, Tcl_Obj *valObj)
{
- ClockClientData *dataPtr = opts->clientData;
+ ClockClientData *dataPtr = (ClockClientData *)opts->clientData;
if (opts->mcDictObj == NULL) {
ClockMCDict(opts);
@@ -926,7 +926,7 @@ ClockMCSetIdx(
/* if literal storage for indices not yet created */
if (dataPtr->mcLitIdxs == NULL) {
int i;
- dataPtr->mcLitIdxs = ckalloc(MCLIT__END * sizeof(Tcl_Obj*));
+ dataPtr->mcLitIdxs = (Tcl_Obj **)ckalloc(MCLIT__END * sizeof(Tcl_Obj*));
for (i = 0; i < MCLIT__END; ++i) {
Tcl_InitObjRef(dataPtr->mcLitIdxs[i],
Tcl_NewStringObj(MsgCtLitIdxs[i], -1));
@@ -985,7 +985,7 @@ ClockConfigureObjCmd(
int objc, /* Parameter count */
Tcl_Obj *const objv[]) /* Parameter vector */
{
- ClockClientData *dataPtr = clientData;
+ ClockClientData *dataPtr = (ClockClientData *)clientData;
static const char *const options[] = {
"-system-tz", "-setup-tz", "-default-locale", "-current-locale",
@@ -1190,7 +1190,7 @@ ClockGetTZData(
Tcl_Interp *interp, /* Tcl interpreter */
Tcl_Obj *timezoneObj) /* Name of the timezone */
{
- ClockClientData *dataPtr = clientData;
+ ClockClientData *dataPtr = (ClockClientData *)clientData;
Tcl_Obj *ret, **out = NULL;
/* if cached (if already setup this one) */
@@ -1268,7 +1268,7 @@ ClockGetSystemTimeZone(
ClientData clientData, /* Opaque pointer to literal pool, etc. */
Tcl_Interp *interp) /* Tcl interpreter */
{
- ClockClientData *dataPtr = clientData;
+ ClockClientData *dataPtr = (ClockClientData *)clientData;
/* if known (cached and same epoch) - return now */
if (dataPtr->systemTimeZone != NULL
@@ -1308,7 +1308,7 @@ ClockSetupTimeZone(
Tcl_Interp *interp, /* Tcl interpreter */
Tcl_Obj *timezoneObj)
{
- ClockClientData *dataPtr = clientData;
+ ClockClientData *dataPtr = (ClockClientData *)clientData;
int loaded;
Tcl_Obj *callargs[2];
@@ -1425,7 +1425,7 @@ ClockConvertlocaltoutcObjCmd(
int objc, /* Parameter count */
Tcl_Obj *const *objv) /* Parameter vector */
{
- ClockClientData *data = clientData;
+ ClockClientData *data = (ClockClientData *)clientData;
Tcl_Obj *secondsObj;
Tcl_Obj *dict;
int changeover;
@@ -1518,7 +1518,7 @@ ClockGetdatefieldsObjCmd(
{
TclDateFields fields;
Tcl_Obj *dict;
- ClockClientData *data = clientData;
+ ClockClientData *data = (ClockClientData *)clientData;
Tcl_Obj *const *lit = data->literals;
int changeover;
@@ -1668,9 +1668,10 @@ FetchEraField(
Tcl_Interp *interp,
Tcl_Obj *dict,
Tcl_Obj *key,
- int *storePtr)
+ ERA_ENUM *storePtr)
{
Tcl_Obj *value = NULL;
+ int result, era;
if (Tcl_DictObjGet(interp, dict, key, &value) != TCL_OK) {
return TCL_ERROR;
@@ -1680,7 +1681,11 @@ FetchEraField(
"expected key(s) not found in dictionary", -1));
return TCL_ERROR;
}
- return Tcl_GetIndexFromObj(interp, value, eras, "era", TCL_EXACT, storePtr);
+ result = Tcl_GetIndexFromObj(interp, value, eras, "era", TCL_EXACT, &era);
+ if (result == TCL_OK && storePtr) {
+ *storePtr = (ERA_ENUM)era;
+ }
+ return result;
}
static int
@@ -1712,12 +1717,12 @@ ClockGetjuliandayfromerayearmonthdayObjCmd(
{
TclDateFields fields;
Tcl_Obj *dict;
- ClockClientData *data = clientData;
+ ClockClientData *data = (ClockClientData *)clientData;
Tcl_Obj *const *lit = data->literals;
int changeover;
int copied = 0;
int status;
- int era = 0;
+ ERA_ENUM era = CE;
fields.tzName = NULL;
@@ -1798,12 +1803,12 @@ ClockGetjuliandayfromerayearweekdayObjCmd(
{
TclDateFields fields;
Tcl_Obj *dict;
- ClockClientData *data = clientData;
+ ClockClientData *data = (ClockClientData *)clientData;
Tcl_Obj *const *lit = data->literals;
int changeover;
int copied = 0;
int status;
- int era = 0;
+ ERA_ENUM era = CE;
fields.tzName = NULL;
@@ -1880,7 +1885,7 @@ ConvertLocalToUTC(
Tcl_Obj *timezoneObj, /* Time zone */
int changeover) /* Julian Day of the Gregorian transition */
{
- ClockClientData *dataPtr = clientData;
+ ClockClientData *dataPtr = (ClockClientData *)clientData;
Tcl_Obj *tzdata; /* Time zone data */
int rowc; /* Number of rows in tzdata */
Tcl_Obj **rowv; /* Pointers to the rows */
@@ -2176,7 +2181,7 @@ ConvertUTCToLocal(
Tcl_Obj *timezoneObj, /* Time zone */
int changeover) /* Julian Day of the Gregorian transition */
{
- ClockClientData *dataPtr = clientData;
+ ClockClientData *dataPtr = (ClockClientData *)clientData;
Tcl_Obj *tzdata; /* Time zone data */
int rowc; /* Number of rows in tzdata */
Tcl_Obj **rowv; /* Pointers to the rows */
@@ -3082,7 +3087,7 @@ ThreadSafeLocalTime(
* Get a thread-local buffer to hold the returned time.
*/
- struct tm *tmPtr = Tcl_GetThreadData(&tmKey, sizeof(struct tm));
+ struct tm *tmPtr = (struct tm *)Tcl_GetThreadData(&tmKey, sizeof(struct tm));
#ifdef HAVE_LOCALTIME_R
localtime_r(timePtr, tmPtr);
#else
@@ -3288,7 +3293,7 @@ ClockParseFmtScnArgs(
const char *syntax /* Syntax of the current command */
) {
Tcl_Interp *interp = opts->interp;
- ClockClientData *dataPtr = opts->clientData;
+ ClockClientData *dataPtr = (ClockClientData *)opts->clientData;
int gmtFlag = 0;
static const char *const options[] = {
"-base", "-format", "-gmt", "-locale", "-timezone", "-validate", NULL
@@ -3530,7 +3535,7 @@ ClockFormatObjCmd(
int objc, /* Parameter count */
Tcl_Obj *const objv[]) /* Parameter values */
{
- ClockClientData *dataPtr = clientData;
+ ClockClientData *dataPtr = (ClockClientData *)clientData;
static const char *syntax = "clock format clockval|-now "
"?-format string? "
@@ -3732,7 +3737,7 @@ ClockScanCommit(
/* some overflow checks */
if (info->flags & CLF_JULIANDAY) {
- ClockClientData *dataPtr = opts->clientData;
+ ClockClientData *dataPtr = (ClockClientData *)opts->clientData;
double curJDN = (double)yydate.julianDay
+ ((double)yySecondOfDay - SECONDS_PER_DAY/2) / SECONDS_PER_DAY;
if (curJDN > dataPtr->maxJDN) {
@@ -3791,7 +3796,7 @@ ClockValidDate(
const char *errMsg = "", *errCode = "";
TclDateFields temp;
int tempCpyFlg = 0;
- ClockClientData *dataPtr = opts->clientData;
+ ClockClientData *dataPtr = (ClockClientData *)opts->clientData;
#if 0
printf("yyMonth %d, yyDay %d, yyDayOfYear %d, yyHour %d, yyMinutes %d, yySeconds %d, "
@@ -3953,7 +3958,7 @@ ClockFreeScan(
ClockFmtScnCmdArgs *opts) /* Command options */
{
Tcl_Interp *interp = opts->interp;
- ClockClientData *dataPtr = opts->clientData;
+ ClockClientData *dataPtr = (ClockClientData *)opts->clientData;
int ret = TCL_ERROR;
@@ -4352,7 +4357,7 @@ ClockAddObjCmd(
static const char *syntax = "clock add clockval|-now ?number units?..."
"?-gmt boolean? "
"?-locale LOCALE? ?-timezone ZONE?";
- ClockClientData *dataPtr = clientData;
+ ClockClientData *dataPtr = (ClockClientData *)clientData;
int ret;
ClockFmtScnCmdArgs opts; /* Format, locale, timezone and base */
DateInfo yy; /* Common structure used for parsing */
@@ -4630,7 +4635,7 @@ ClockSafeCatchCmd(
static size_t
TzsetIfNecessary(void)
{
- static char* tzWas = INT2PTR(-1); /* Previous value of TZ, protected by
+ static char* tzWas = (char *)INT2PTR(-1); /* Previous value of TZ, protected by
* clockMutex. */
static long tzLastRefresh = 0; /* Used for latency before next refresh */
static size_t tzWasEpoch = 0; /* Epoch, signals that TZ changed */
@@ -4658,18 +4663,18 @@ TzsetIfNecessary(void)
if (tzIsNow == NULL) {
tzIsNow = getenv("TZ");
}
- if (tzIsNow != NULL && (tzWas == NULL || tzWas == INT2PTR(-1)
+ if (tzIsNow != NULL && (tzWas == NULL || tzWas == (char*)INT2PTR(-1)
|| strcmp(tzIsNow, tzWas) != 0)) {
tzset();
- if (tzWas != NULL && tzWas != INT2PTR(-1)) {
+ if (tzWas != NULL && tzWas != (char*)INT2PTR(-1)) {
ckfree(tzWas);
}
- tzWas = ckalloc(strlen(tzIsNow) + 1);
+ tzWas = (char *)ckalloc(strlen(tzIsNow) + 1);
strcpy(tzWas, tzIsNow);
tzWasEpoch++;
} else if (tzIsNow == NULL && tzWas != NULL) {
tzset();
- if (tzWas != INT2PTR(-1)) ckfree(tzWas);
+ if (tzWas != (char*)INT2PTR(-1)) ckfree(tzWas);
tzWas = NULL;
tzWasEpoch++;
}
diff --git a/generic/tclCmdIL.c b/generic/tclCmdIL.c
index 85416a1..7583775 100644
--- a/generic/tclCmdIL.c
+++ b/generic/tclCmdIL.c
@@ -248,9 +248,9 @@ IfConditionCallback(
{
Interp *iPtr = (Interp *) interp;
int objc = PTR2INT(data[0]);
- Tcl_Obj *const *objv = data[1];
+ Tcl_Obj *const *objv = (Tcl_Obj *const *)data[1];
int i = PTR2INT(data[2]);
- Tcl_Obj *boolObj = data[3];
+ Tcl_Obj *boolObj = (Tcl_Obj *)data[3];
int value, thenScriptIndex = 0;
const char *clause;
@@ -718,11 +718,11 @@ InfoCommandsCmd(
entryPtr = Tcl_FindHashEntry(&nsPtr->cmdTable, simplePattern);
if (entryPtr != NULL) {
if (specificNsInPattern) {
- cmd = Tcl_GetHashValue(entryPtr);
+ cmd = (Tcl_Command)Tcl_GetHashValue(entryPtr);
TclNewObj(elemObjPtr);
Tcl_GetCommandFullName(interp, cmd, elemObjPtr);
} else {
- cmdName = Tcl_GetHashKey(&nsPtr->cmdTable, entryPtr);
+ cmdName = (const char *)Tcl_GetHashKey(&nsPtr->cmdTable, entryPtr);
elemObjPtr = Tcl_NewStringObj(cmdName, -1);
}
Tcl_ListObjAppendElement(interp, listPtr, elemObjPtr);
@@ -749,7 +749,7 @@ InfoCommandsCmd(
entryPtr = Tcl_FindHashEntry(tablePtr, simplePattern);
}
if (entryPtr != NULL) {
- cmdName = Tcl_GetHashKey(tablePtr, entryPtr);
+ cmdName = (const char *)Tcl_GetHashKey(tablePtr, entryPtr);
Tcl_ListObjAppendElement(interp, listPtr,
Tcl_NewStringObj(cmdName, -1));
Tcl_SetObjResult(interp, listPtr);
@@ -765,11 +765,11 @@ InfoCommandsCmd(
entryPtr = Tcl_FirstHashEntry(&nsPtr->cmdTable, &search);
while (entryPtr != NULL) {
- cmdName = Tcl_GetHashKey(&nsPtr->cmdTable, entryPtr);
+ cmdName = (const char *)Tcl_GetHashKey(&nsPtr->cmdTable, entryPtr);
if ((simplePattern == NULL)
|| Tcl_StringMatch(cmdName, simplePattern)) {
if (specificNsInPattern) {
- cmd = Tcl_GetHashValue(entryPtr);
+ cmd = (Tcl_Command)Tcl_GetHashValue(entryPtr);
TclNewObj(elemObjPtr);
Tcl_GetCommandFullName(interp, cmd, elemObjPtr);
} else {
@@ -791,7 +791,7 @@ InfoCommandsCmd(
if ((nsPtr != globalNsPtr) && !specificNsInPattern) {
entryPtr = Tcl_FirstHashEntry(&globalNsPtr->cmdTable, &search);
while (entryPtr != NULL) {
- cmdName = Tcl_GetHashKey(&globalNsPtr->cmdTable, entryPtr);
+ cmdName = (const char *)Tcl_GetHashKey(&globalNsPtr->cmdTable, entryPtr);
if ((simplePattern == NULL)
|| Tcl_StringMatch(cmdName, simplePattern)) {
if (Tcl_FindHashEntry(&nsPtr->cmdTable,cmdName) == NULL) {
@@ -822,7 +822,7 @@ InfoCommandsCmd(
entryPtr = Tcl_FirstHashEntry(&nsPtr->cmdTable, &search);
while (entryPtr != NULL) {
- cmdName = Tcl_GetHashKey(&nsPtr->cmdTable, entryPtr);
+ cmdName = (const char *)Tcl_GetHashKey(&nsPtr->cmdTable, entryPtr);
if ((simplePattern == NULL)
|| Tcl_StringMatch(cmdName, simplePattern)) {
elemObjPtr = Tcl_NewStringObj(cmdName, -1);
@@ -848,7 +848,7 @@ InfoCommandsCmd(
}
entryPtr = Tcl_FirstHashEntry(&pathNsPtr->cmdTable, &search);
while (entryPtr != NULL) {
- cmdName = Tcl_GetHashKey(&pathNsPtr->cmdTable, entryPtr);
+ cmdName = (const char *)Tcl_GetHashKey(&pathNsPtr->cmdTable, entryPtr);
if ((simplePattern == NULL)
|| Tcl_StringMatch(cmdName, simplePattern)) {
elemObjPtr = Tcl_NewStringObj(cmdName, -1);
@@ -875,7 +875,7 @@ InfoCommandsCmd(
if (!foundGlobal) {
entryPtr = Tcl_FirstHashEntry(&globalNsPtr->cmdTable, &search);
while (entryPtr != NULL) {
- cmdName = Tcl_GetHashKey(&globalNsPtr->cmdTable, entryPtr);
+ cmdName = (const char *)Tcl_GetHashKey(&globalNsPtr->cmdTable, entryPtr);
if ((simplePattern == NULL)
|| Tcl_StringMatch(cmdName, simplePattern)) {
elemObjPtr = Tcl_NewStringObj(cmdName, -1);
@@ -1321,7 +1321,7 @@ TclInfoFrame(
* Execution of bytecode. Talk to the BC engine to fill out the frame.
*/
- CmdFrame *fPtr = TclStackAlloc(interp, sizeof(CmdFrame));
+ CmdFrame *fPtr = (CmdFrame *)TclStackAlloc(interp, sizeof(CmdFrame));
*fPtr = *framePtr;
@@ -1403,7 +1403,7 @@ TclInfoFrame(
procNameObj);
ADD_PAIR("proc", procNameObj);
} else if (procPtr->cmdPtr->clientData) {
- ExtraFrameInfo *efiPtr = procPtr->cmdPtr->clientData;
+ ExtraFrameInfo *efiPtr = (ExtraFrameInfo *)procPtr->cmdPtr->clientData;
int i;
/*
@@ -1417,7 +1417,7 @@ TclInfoFrame(
lv[lc++] =
efiPtr->fields[i].proc(efiPtr->fields[i].clientData);
} else {
- lv[lc++] = efiPtr->fields[i].clientData;
+ lv[lc++] = (Tcl_Obj *)efiPtr->fields[i].clientData;
}
}
}
@@ -1898,7 +1898,7 @@ InfoProcsCmd(
if (simplePattern != NULL && TclMatchIsTrivial(simplePattern)) {
entryPtr = Tcl_FindHashEntry(&nsPtr->cmdTable, simplePattern);
if (entryPtr != NULL) {
- cmdPtr = Tcl_GetHashValue(entryPtr);
+ cmdPtr = (Command *)Tcl_GetHashValue(entryPtr);
if (!TclIsProc(cmdPtr)) {
realCmdPtr = (Command *)
@@ -1923,10 +1923,10 @@ InfoProcsCmd(
{
entryPtr = Tcl_FirstHashEntry(&nsPtr->cmdTable, &search);
while (entryPtr != NULL) {
- cmdName = Tcl_GetHashKey(&nsPtr->cmdTable, entryPtr);
+ cmdName = (const char *)Tcl_GetHashKey(&nsPtr->cmdTable, entryPtr);
if ((simplePattern == NULL)
|| Tcl_StringMatch(cmdName, simplePattern)) {
- cmdPtr = Tcl_GetHashValue(entryPtr);
+ cmdPtr = (Command *)Tcl_GetHashValue(entryPtr);
if (!TclIsProc(cmdPtr)) {
realCmdPtr = (Command *)
@@ -3085,7 +3085,7 @@ Tcl_LsearchObjCmd(
sortInfo.indexv = &sortInfo.singleIndex;
break;
default:
- sortInfo.indexv =
+ sortInfo.indexv = (int *)
TclStackAlloc(interp, sizeof(int) * sortInfo.indexc);
}
@@ -3843,7 +3843,7 @@ Tcl_LsortObjCmd(
sortInfo.indexv = &sortInfo.singleIndex;
break;
default:
- sortInfo.indexv =
+ sortInfo.indexv = (int *)
TclStackAlloc(interp, sizeof(int) * sortInfo.indexc);
allocatedIndexVector = 1; /* Cannot use indexc field, as it
* might be decreased by 1 later. */
@@ -3982,9 +3982,9 @@ Tcl_LsortObjCmd(
elmArrSize = length * sizeof(SortElement);
if (elmArrSize <= MAXCALLOC) {
- elementArray = ckalloc(elmArrSize);
+ elementArray = (SortElement *)ckalloc(elmArrSize);
} else {
- elementArray = malloc(elmArrSize);
+ elementArray = (SortElement *)malloc(elmArrSize);
}
if (!elementArray) {
Tcl_SetObjResult(interp, Tcl_ObjPrintf(
diff --git a/generic/tclCmdMZ.c b/generic/tclCmdMZ.c
index 081b036..ee30a7a 100644
--- a/generic/tclCmdMZ.c
+++ b/generic/tclCmdMZ.c
@@ -36,31 +36,31 @@ static int UniCharIsHexDigit(int character);
*/
const char tclDefaultTrimSet[] =
- "\x09\x0a\x0b\x0c\x0d " /* ASCII */
- "\xc0\x80" /* nul (U+0000) */
- "\xc2\x85" /* next line (U+0085) */
- "\xc2\xa0" /* non-breaking space (U+00a0) */
- "\xe1\x9a\x80" /* ogham space mark (U+1680) */
- "\xe1\xa0\x8e" /* mongolian vowel separator (U+180e) */
- "\xe2\x80\x80" /* en quad (U+2000) */
- "\xe2\x80\x81" /* em quad (U+2001) */
- "\xe2\x80\x82" /* en space (U+2002) */
- "\xe2\x80\x83" /* em space (U+2003) */
- "\xe2\x80\x84" /* three-per-em space (U+2004) */
- "\xe2\x80\x85" /* four-per-em space (U+2005) */
- "\xe2\x80\x86" /* six-per-em space (U+2006) */
- "\xe2\x80\x87" /* figure space (U+2007) */
- "\xe2\x80\x88" /* punctuation space (U+2008) */
- "\xe2\x80\x89" /* thin space (U+2009) */
- "\xe2\x80\x8a" /* hair space (U+200a) */
- "\xe2\x80\x8b" /* zero width space (U+200b) */
- "\xe2\x80\xa8" /* line separator (U+2028) */
- "\xe2\x80\xa9" /* paragraph separator (U+2029) */
- "\xe2\x80\xaf" /* narrow no-break space (U+202f) */
- "\xe2\x81\x9f" /* medium mathematical space (U+205f) */
- "\xe2\x81\xa0" /* word joiner (U+2060) */
- "\xe3\x80\x80" /* ideographic space (U+3000) */
- "\xef\xbb\xbf" /* zero width no-break space (U+feff) */
+ "\x09\x0A\x0B\x0C\x0D " /* ASCII */
+ "\xC0\x80" /* nul (U+0000) */
+ "\xC2\x85" /* next line (U+0085) */
+ "\xC2\xA0" /* non-breaking space (U+00a0) */
+ "\xE1\x9A\x80" /* ogham space mark (U+1680) */
+ "\xE1\xA0\x8E" /* mongolian vowel separator (U+180e) */
+ "\xE2\x80\x80" /* en quad (U+2000) */
+ "\xE2\x80\x81" /* em quad (U+2001) */
+ "\xE2\x80\x82" /* en space (U+2002) */
+ "\xE2\x80\x83" /* em space (U+2003) */
+ "\xE2\x80\x84" /* three-per-em space (U+2004) */
+ "\xE2\x80\x85" /* four-per-em space (U+2005) */
+ "\xE2\x80\x86" /* six-per-em space (U+2006) */
+ "\xE2\x80\x87" /* figure space (U+2007) */
+ "\xE2\x80\x88" /* punctuation space (U+2008) */
+ "\xE2\x80\x89" /* thin space (U+2009) */
+ "\xE2\x80\x8A" /* hair space (U+200a) */
+ "\xE2\x80\x8B" /* zero width space (U+200b) */
+ "\xE2\x80\xA8" /* line separator (U+2028) */
+ "\xE2\x80\xA9" /* paragraph separator (U+2029) */
+ "\xE2\x80\xAF" /* narrow no-break space (U+202f) */
+ "\xE2\x81\x9F" /* medium mathematical space (U+205f) */
+ "\xE2\x81\xA0" /* word joiner (U+2060) */
+ "\xE3\x80\x80" /* ideographic space (U+3000) */
+ "\xEF\xBB\xBF" /* zero width no-break space (U+feff) */
;
/*
diff --git a/generic/tclEncoding.c b/generic/tclEncoding.c
index 557f241..f1529e1 100644
--- a/generic/tclEncoding.c
+++ b/generic/tclEncoding.c
@@ -2580,7 +2580,7 @@ UtfToUnicodeProc(
*dst++ = (((*chPtr - 0x10000) >> 10) & 0xFF);
*dst++ = (((*chPtr - 0x10000) >> 18) & 0x3) | 0xD8;
*dst++ = (*chPtr & 0xFF);
- *dst++ = ((*chPtr & 0x3) >> 8) | 0xDC;
+ *dst++ = ((*chPtr >> 8) & 0x3) | 0xDC;
}
#else
*dst++ = (*chPtr & 0xFF);
@@ -2592,10 +2592,10 @@ UtfToUnicodeProc(
*dst++ = (*chPtr >> 8);
*dst++ = (*chPtr & 0xFF);
} else {
- *dst++ = ((*chPtr & 0x3) >> 8) | 0xDC;
- *dst++ = (*chPtr & 0xFF);
*dst++ = (((*chPtr - 0x10000) >> 18) & 0x3) | 0xD8;
*dst++ = (((*chPtr - 0x10000) >> 10) & 0xFF);
+ *dst++ = ((*chPtr >> 8) & 0x3) | 0xDC;
+ *dst++ = (*chPtr & 0xFF);
}
#else
*dst++ = (*chPtr >> 8);
diff --git a/generic/tclExecute.c b/generic/tclExecute.c
index 0a293bd..1d5a0e8 100644
--- a/generic/tclExecute.c
+++ b/generic/tclExecute.c
@@ -8924,7 +8924,7 @@ ExecuteExtendedBinaryMathOp(
* We refuse to accept exponent arguments that exceed one mp_digit
* which means the max exponent value is 2**28-1 = 0x0FFFFFFF =
* 268435455, which fits into a signed 32 bit int which is within the
- * range of the long int type. This means any numeric Tcl_Obj value
+ * range of the long type. This means any numeric Tcl_Obj value
* not using TCL_NUMBER_LONG type must hold a value larger than we
* accept.
*/
@@ -9675,20 +9675,20 @@ ValidatePcAndStackTop(
{
int stackUpperBound = codePtr->maxStackDepth;
/* Greatest legal value for stackTop. */
- unsigned relativePc = (unsigned) (pc - codePtr->codeStart);
- unsigned long codeStart = (unsigned long) codePtr->codeStart;
- unsigned long codeEnd = (unsigned long)
+ size_t relativePc = (size_t) (pc - codePtr->codeStart);
+ size_t codeStart = (size_t) codePtr->codeStart;
+ size_t codeEnd = (size_t)
(codePtr->codeStart + codePtr->numCodeBytes);
unsigned char opCode = *pc;
- if (((unsigned long) pc < codeStart) || ((unsigned long) pc > codeEnd)) {
+ if (((size_t) pc < codeStart) || ((size_t) pc > codeEnd)) {
fprintf(stderr, "\nBad instruction pc 0x%p in TclNRExecuteByteCode\n",
pc);
Tcl_Panic("TclNRExecuteByteCode execution failure: bad pc");
}
if ((unsigned) opCode > LAST_INST_OPCODE) {
- fprintf(stderr, "\nBad opcode %d at pc %u in TclNRExecuteByteCode\n",
- (unsigned) opCode, relativePc);
+ fprintf(stderr, "\nBad opcode %d at pc %lu in TclNRExecuteByteCode\n",
+ (unsigned) opCode, (unsigned long)relativePc);
Tcl_Panic("TclNRExecuteByteCode execution failure: bad opcode");
}
if (checkStack &&
@@ -9696,8 +9696,8 @@ ValidatePcAndStackTop(
int numChars;
const char *cmd = GetSrcInfoForPc(pc, codePtr, &numChars, NULL, NULL);
- fprintf(stderr, "\nBad stack top %d at pc %u in TclNRExecuteByteCode (min 0, max %i)",
- stackTop, relativePc, stackUpperBound);
+ fprintf(stderr, "\nBad stack top %d at pc %lu in TclNRExecuteByteCode (min 0, max %i)",
+ stackTop, (unsigned long)relativePc, stackUpperBound);
if (cmd != NULL) {
Tcl_Obj *message;
@@ -10284,7 +10284,7 @@ EvalStatsCmd(
Tcl_AppendPrintfToObj(objPtr, "\n----------------------------------------------------------------\n");
Tcl_AppendPrintfToObj(objPtr,
"Compilation and execution statistics for interpreter %#lx\n",
- (long int)iPtr);
+ (unsigned long)(size_t)iPtr);
Tcl_AppendPrintfToObj(objPtr, "\nNumber ByteCodes executed\t%ld\n",
statsPtr->numExecutions);
diff --git a/generic/tclFileName.c b/generic/tclFileName.c
index 15f93f4..cfd76e6 100644
--- a/generic/tclFileName.c
+++ b/generic/tclFileName.c
@@ -242,7 +242,7 @@ ExtractWinRoot(
if (path[4] == '\0') {
abs = 4;
- } else if (path [4] == ':' && path[5] == '\0') {
+ } else if (path[4] == ':' && path[5] == '\0') {
abs = 5;
}
@@ -264,7 +264,7 @@ ExtractWinRoot(
if (path[4] == '\0') {
abs = 4;
- } else if (path [4] == ':' && path[5] == '\0') {
+ } else if (path[4] == ':' && path[5] == '\0') {
abs = 5;
}
}
diff --git a/generic/tclIOUtil.c b/generic/tclIOUtil.c
index 513f1fb..5566f3e 100644
--- a/generic/tclIOUtil.c
+++ b/generic/tclIOUtil.c
@@ -1798,7 +1798,7 @@ Tcl_FSEvalFileEx(
*/
if (Tcl_ReadChars(chan, objPtr, -1,
- memcmp(string, "\xef\xbb\xbf", 3)) < 0) {
+ memcmp(string, "\xEF\xBB\xBF", 3)) < 0) {
Tcl_Close(interp, chan);
Tcl_SetObjResult(interp, Tcl_ObjPrintf(
"couldn't read file \"%s\": %s",
@@ -1933,7 +1933,7 @@ TclNREvalFile(
*/
if (Tcl_ReadChars(chan, objPtr, -1,
- memcmp(string, "\xef\xbb\xbf", 3)) < 0) {
+ memcmp(string, "\xEF\xBB\xBF", 3)) < 0) {
Tcl_Close(interp, chan);
Tcl_SetObjResult(interp, Tcl_ObjPrintf(
"couldn't read file \"%s\": %s",
diff --git a/generic/tclInt.decls b/generic/tclInt.decls
index b858dfa..b6f7b75 100644
--- a/generic/tclInt.decls
+++ b/generic/tclInt.decls
@@ -5,9 +5,9 @@
# is used to generate the tclIntDecls.h, tclIntPlatDecls.h
# and tclStubInit.c files
#
-# Copyright (c) 1998-1999 by Scriptics Corporation.
-# Copyright (c) 2001 by Kevin B. Kenny. All rights reserved.
-# Copyright (c) 2007 Daniel A. Steffen <das@users.sourceforge.net>
+# Copyright © 1998-1999 Scriptics Corporation.
+# Copyright © 2001 Kevin B. Kenny. All rights reserved.
+# Copyright © 2007 Daniel A. Steffen <das@users.sourceforge.net>
#
# See the file "license.terms" for information on usage and redistribution
# of this file, and for a DISCLAIMER OF ALL WARRANTIES.
diff --git a/generic/tclInt.h b/generic/tclInt.h
index e8c0f7c..e949af9 100644
--- a/generic/tclInt.h
+++ b/generic/tclInt.h
@@ -4216,7 +4216,7 @@ MODULE_SCOPE void TclpFreeAllocCache(void *);
(objPtr) = TclThreadAllocObj(); \
} else { \
(objPtr) = cachePtr->firstObjPtr; \
- cachePtr->firstObjPtr = (objPtr)->internalRep.twoPtrValue.ptr1; \
+ cachePtr->firstObjPtr = (Tcl_Obj *)(objPtr)->internalRep.twoPtrValue.ptr1; \
--cachePtr->numObjects; \
} \
} while (0)
diff --git a/generic/tclOO.decls b/generic/tclOO.decls
index 265ba88..5d37994 100644
--- a/generic/tclOO.decls
+++ b/generic/tclOO.decls
@@ -5,7 +5,7 @@
# library via the stubs table. This file is used to generate the
# tclOODecls.h, tclOOIntDecls.h and tclOOStubInit.c files.
#
-# Copyright (c) 2008-2013 by Donal K. Fellows.
+# Copyright © 2008-2013 Donal K. Fellows.
#
# See the file "license.terms" for information on usage and redistribution of
# this file, and for a DISCLAIMER OF ALL WARRANTIES.
diff --git a/generic/tclStringObj.c b/generic/tclStringObj.c
index 33b2139..0e1acf0 100644
--- a/generic/tclStringObj.c
+++ b/generic/tclStringObj.c
@@ -2899,6 +2899,9 @@ TclStringReverse(
{
String *stringPtr;
Tcl_UniChar ch = 0;
+#if TCL_UTF_MAX <= 4
+ int needFlip = 0;
+#endif
if (TclIsPureByteArray(objPtr)) {
int numBytes;
@@ -2917,10 +2920,9 @@ TclStringReverse(
if (stringPtr->hasUnicode) {
Tcl_UniChar *from = Tcl_GetUnicode(objPtr);
Tcl_UniChar *src = from + stringPtr->numChars;
+ Tcl_UniChar *to;
if (Tcl_IsShared(objPtr)) {
- Tcl_UniChar *to;
-
/*
* Create a non-empty, pure unicode value, so we can coax
* Tcl_SetObjLength into growing the unicode rep buffer.
@@ -2930,19 +2932,54 @@ TclStringReverse(
Tcl_SetObjLength(objPtr, stringPtr->numChars);
to = Tcl_GetUnicode(objPtr);
while (--src >= from) {
+#if TCL_UTF_MAX <= 4
+ ch = *src;
+ if ((ch & 0xF800) == 0xD800) {
+ needFlip = 1;
+ }
+ *to++ = ch;
+#else
*to++ = *src;
+#endif
}
} else {
/*
* Reversing in place.
*/
+#if TCL_UTF_MAX <= 4
+ to = src;
+#endif
while (--src > from) {
ch = *src;
+#if TCL_UTF_MAX <= 4
+ if ((ch & 0xF800) == 0xD800) {
+ needFlip = 1;
+ }
+#endif
*src = *from;
*from++ = ch;
}
}
+#if TCL_UTF_MAX <= 4
+ if (needFlip) {
+ /*
+ * Flip back surrogate pairs.
+ */
+
+ from = to - stringPtr->numChars;
+ while (--to >= from) {
+ ch = *to;
+ if ((ch & 0xFC00) == 0xD800) {
+ if ((to-1 >= from) && ((to[-1] & 0xFC00) == 0xDC00)) {
+ to[0] = to[-1];
+ to[-1] = ch;
+ --to;
+ }
+ }
+ }
+ }
+#endif
}
if (objPtr->bytes) {
@@ -2966,8 +3003,8 @@ TclStringReverse(
* Pass 1. Reverse the bytes of each multi-byte character.
*/
- int charCount = 0;
int bytesLeft = numBytes;
+ int chw;
while (bytesLeft) {
/*
@@ -2976,18 +3013,16 @@ TclStringReverse(
* skip calling Tcl_UtfCharComplete() here.
*/
- int bytesInChar = TclUtfToUniChar(from, &ch);
+ int bytesInChar = TclUtfToUCS4(from, &chw);
ReverseBytes((unsigned char *)to, (unsigned char *)from,
bytesInChar);
to += bytesInChar;
from += bytesInChar;
bytesLeft -= bytesInChar;
- charCount++;
}
from = to = objPtr->bytes;
- stringPtr->numChars = charCount;
}
/* Pass 2. Reverse all the bytes. */
ReverseBytes((unsigned char *)to, (unsigned char *)from, numBytes);
diff --git a/generic/tclStubInit.c b/generic/tclStubInit.c
index 51e6a81..f05db0a 100644
--- a/generic/tclStubInit.c
+++ b/generic/tclStubInit.c
@@ -104,7 +104,7 @@ static mp_err TclBN_mp_div_ld(const mp_int *a, Tcl_WideUInt b, mp_int *c, Tcl_Wi
if ((b | (mp_digit)-1) != (mp_digit)-1) {
return MP_VAL;
}
- result = mp_div_d(a, b, c, (d ? &d2 : NULL));
+ result = mp_div_d(a, (mp_digit)b, c, (d ? &d2 : NULL));
if (d) {
*d = d2;
}
diff --git a/generic/tclTomMath.decls b/generic/tclTomMath.decls
index 2511e3a..02d3581 100644
--- a/generic/tclTomMath.decls
+++ b/generic/tclTomMath.decls
@@ -7,7 +7,7 @@
# If you edit this file, advance the revision number (and the epoch
# if the new stubs are not backward compatible) in tclTomMathDecls.h
#
-# Copyright (c) 2005 by Kevin B. Kenny. All rights reserved.
+# Copyright © 2005 Kevin B. Kenny. All rights reserved.
#
# See the file "license.terms" for information on usage and redistribution
# of this file, and for a DISCLAIMER OF ALL WARRANTIES.
diff --git a/generic/tclUtf.c b/generic/tclUtf.c
index 5ae977a..f99c497 100644
--- a/generic/tclUtf.c
+++ b/generic/tclUtf.c
@@ -888,7 +888,7 @@ Tcl_UtfPrev(
/* Continue the search backwards... */
look--;
- } while (trailBytesSeen < 3);
+ } while (trailBytesSeen < (TCL_UTF_MAX < 4 ? 3 : 4));
/*
* We've seen 3 trail bytes, so we know there will not be a
diff --git a/generic/tclUtil.c b/generic/tclUtil.c
index d7baedd..450f3bf 100644
--- a/generic/tclUtil.c
+++ b/generic/tclUtil.c
@@ -1686,7 +1686,7 @@ TclTrimRight(
* rely on (trim[numTrim] == '\0'). */
{
const char *pp, *p = bytes + numBytes;
- Tcl_UniChar ch1 = 0;
+ int ch1, ch2;
/* Empty strings -> nothing to do */
if ((numBytes == 0) || (numTrim == 0)) {
@@ -1700,12 +1700,14 @@ TclTrimRight(
do {
const char *q = trim;
int pInc = 0, bytesLeft = numTrim;
- Tcl_UniChar ch2 = 0;
pp = TclUtfPrev(p, bytes);
+#if TCL_UTF_MAX < 4
+ pp = TclUtfPrev(pp, bytes);
+#endif
do {
pp += pInc;
- pInc = TclUtfToUniChar(pp, &ch1);
+ pInc = TclUtfToUCS4(pp, &ch1);
} while (pp + pInc < p);
/*
@@ -1713,14 +1715,14 @@ TclTrimRight(
*/
do {
- int qInc = TclUtfToUniChar(q, &ch2);
+ pInc = TclUtfToUCS4(q, &ch2);
if (ch1 == ch2) {
break;
}
- q += qInc;
- bytesLeft -= qInc;
+ q += pInc;
+ bytesLeft -= pInc;
} while (bytesLeft);
if (bytesLeft == 0) {
@@ -1766,7 +1768,7 @@ TclTrimLeft(
* rely on (trim[numTrim] == '\0'). */
{
const char *p = bytes;
- Tcl_UniChar ch1 = 0;
+ int ch1, ch2;
/* Empty strings -> nothing to do */
if ((numBytes == 0) || (numTrim == 0)) {
@@ -1778,8 +1780,7 @@ TclTrimLeft(
*/
do {
- Tcl_UniChar ch2 = 0;
- int pInc = TclUtfToUniChar(p, &ch1);
+ int pInc = TclUtfToUCS4(p, &ch1);
const char *q = trim;
int bytesLeft = numTrim;
@@ -1788,7 +1789,7 @@ TclTrimLeft(
*/
do {
- int qInc = TclUtfToUniChar(q, &ch2);
+ int qInc = TclUtfToUCS4(q, &ch2);
if (ch1 == ch2) {
break;
diff --git a/library/init.tcl b/library/init.tcl
index 4bda572..ccc2f4f 100644
--- a/library/init.tcl
+++ b/library/init.tcl
@@ -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.10
+package require -exact Tcl 8.6.11
# Compute the auto path to use in this interpreter.
# The values on the path come from several locations:
diff --git a/library/opt/optparse.tcl b/library/opt/optparse.tcl
index 1639379..454b923 100644
--- a/library/opt/optparse.tcl
+++ b/library/opt/optparse.tcl
@@ -601,7 +601,7 @@ proc ::tcl::OptCheckType {arg type {typeArgs ""}} {
return [expr {$arg ? 1 : 0}]
}
choice {
- if {[lsearch -exact $typeArgs $arg] < 0} {
+ if {$arg ni $typeArgs} {
error "invalid choice"
}
return $arg
diff --git a/library/platform/pkgIndex.tcl b/library/platform/pkgIndex.tcl
index 5970a3f..7983831 100644
--- a/library/platform/pkgIndex.tcl
+++ b/library/platform/pkgIndex.tcl
@@ -1,3 +1,3 @@
-package ifneeded platform 1.0.14 [list source [file join $dir platform.tcl]]
+package ifneeded platform 1.0.17 [list source [file join $dir platform.tcl]]
package ifneeded platform::shell 1.1.4 [list source [file join $dir shell.tcl]]
diff --git a/library/platform/platform.tcl b/library/platform/platform.tcl
index 35a22a3..e01334e 100644
--- a/library/platform/platform.tcl
+++ b/library/platform/platform.tcl
@@ -29,8 +29,10 @@
# are on "Windows NT" or "Windows XP" or whatever.
#
# Machine specific
+# % amd64 -> x86_64
# % arm* -> arm
# % sun4* -> sparc
+# % ia32* -> ix86
# % intel -> ix86
# % i*86* -> ix86
# % Power* -> powerpc
@@ -71,6 +73,7 @@ proc ::platform::generic {} {
set cpu sparc
}
intel -
+ ia32* -
i*86* {
set cpu ix86
}
@@ -80,6 +83,7 @@ proc ::platform::generic {} {
set cpu ix86
}
}
+ ppc -
"Power*" {
set cpu powerpc
}
@@ -94,9 +98,6 @@ proc ::platform::generic {} {
}
switch -glob -- $plat {
- cygwin* {
- set plat cygwin
- }
windows {
if {$tcl_platform(platform) == "unix"} {
set plat cygwin
@@ -149,6 +150,9 @@ proc ::platform::generic {} {
osf1 {
set plat tru64
}
+ default {
+ set plat [lindex [split $plat _-] 0]
+ }
}
return "${plat}-${cpu}"
@@ -175,11 +179,16 @@ proc ::platform::identify {} {
}
macosx {
set major [lindex [split $tcl_platform(osVersion) .] 0]
- if {$major > 8} {
+ if {$major > 19} {
+ set minor [lindex [split $tcl_platform(osVersion) .] 1]
+ incr major -9
+ append plat $major.[expr {$minor - 1}]
+ } else {
incr major -4
append plat 10.$major
return "${plat}-${cpu}"
}
+ return "${plat}-${cpu}"
}
linux {
# Look for the libc*.so and determine its version
@@ -330,7 +339,7 @@ proc ::platform::patterns {id} {
lappend res macosx-universal macosx-i386-x86_64
}
macosx*-* {
- # 10.5+
+ # 10.5+,11.0+
if {[regexp {macosx([^-]*)-(.*)} $id -> v cpu]} {
switch -exact -- $cpu {
@@ -338,17 +347,39 @@ proc ::platform::patterns {id} {
lappend alt i386-x86_64
lappend alt universal
}
- x86_64 { lappend alt i386-x86_64 }
+ x86_64 {
+ if {[lindex [split $::tcl_platform(osVersion) .] 0] < 19} {
+ set alt i386-x86_64
+ } else {
+ set alt {}
+ }
+ }
+ arm {
+ lappend alt x86_64
+ }
default { set alt {} }
}
if {$v ne ""} {
foreach {major minor} [split $v .] break
- # Add 10.5 to 10.minor to patterns.
set res {}
+ if {$major eq 11} {
+ # Add 11.0 to 11.minor to patterns.
+ for {set j $minor} {$j >= 0} {incr j -1} {
+ lappend res macosx${major}.${j}-${cpu}
+ foreach a $alt {
+ lappend res macosx${major}.${j}-$a
+ }
+ }
+ set major 10
+ set minor 15
+ }
+ # Add 10.5 to 10.minor to patterns.
for {set j $minor} {$j >= 5} {incr j -1} {
- lappend res macosx${major}.${j}-${cpu}
+ if {$cpu ne "arm"} {
+ lappend res macosx${major}.${j}-${cpu}
+ }
foreach a $alt {
lappend res macosx${major}.${j}-$a
}
@@ -378,7 +409,7 @@ proc ::platform::patterns {id} {
# ### ### ### ######### ######### #########
## Ready
-package provide platform 1.0.14
+package provide platform 1.0.17
# ### ### ### ######### ######### #########
## Demo application
diff --git a/library/tcltest/tcltest.tcl b/library/tcltest/tcltest.tcl
index 285a33d..dedcd7a 100644
--- a/library/tcltest/tcltest.tcl
+++ b/library/tcltest/tcltest.tcl
@@ -41,7 +41,9 @@ namespace eval tcltest {
outputChannel testConstraint
# Export commands that are duplication (candidates for deprecation)
- namespace export bytestring ;# dups [encoding convertfrom identity]
+ if {![package vsatisfies [package provide Tcl] 8.7-]} {
+ namespace export bytestring ;# dups [encoding convertfrom identity]
+ }
namespace export debug ;# [configure -debug]
namespace export errorFile ;# [configure -errfile]
namespace export limitConstraints ;# [configure -limitconstraints]
@@ -640,7 +642,7 @@ namespace eval tcltest {
proc IsVerbose {level} {
variable Option
- return [expr {[lsearch -exact $Option(-verbose) $level] >= 0}]
+ return [expr {$level in $Option(-verbose)}]
}
# Default verbosity is to show bodies of failed tests
@@ -1269,7 +1271,7 @@ proc tcltest::DefineConstraintInitializers {} {
ConstraintInitializer nonBlockFiles {
set code [expr {[catch {set f [open defs r]}]
- || [catch {chan configure $f -blocking off}]}]
+ || [catch {fconfigure $f -blocking off}]}]
catch {close $f}
set code
}
@@ -3079,7 +3081,10 @@ proc tcltest::makeFile {contents name {directory ""}} {
putting ``$contents'' into $fullName"
set fd [open $fullName w]
- chan configure $fd -translation lf
+ fconfigure $fd -translation lf
+ if {[package vsatisfies [package provide Tcl] 8.7-]} {
+ fconfigure $fd -encoding utf-8
+ }
if {[string index $contents end] eq "\n"} {
puts -nonewline $fd $contents
} else {
@@ -3228,6 +3233,9 @@ proc tcltest::viewFile {name {directory ""}} {
}
set fullName [file join $directory $name]
set f [open $fullName]
+ if {[package vsatisfies [package provide Tcl] 8.7-]} {
+ fconfigure $f -encoding utf-8
+ }
set data [read -nonewline $f]
close $f
return $data
@@ -3249,6 +3257,9 @@ proc tcltest::viewFile {name {directory ""}} {
# construct improperly formed strings in this manner, because it involves
# exposing that Tcl uses UTF-8 internally.
#
+# This function doesn't work any more in Tcl 8.7, since the 'identity'
+# is gone (TIP #345)
+#
# Arguments:
# string being converted
#
@@ -3258,8 +3269,10 @@ proc tcltest::viewFile {name {directory ""}} {
# Side effects:
# None
-proc tcltest::bytestring {string} {
- return [encoding convertfrom identity $string]
+if {![package vsatisfies [package provide Tcl] 8.7-]} {
+ proc tcltest::bytestring {string} {
+ return [encoding convertfrom identity $string]
+ }
}
# tcltest::OpenFiles --
diff --git a/library/tzdata/Africa/Accra b/library/tzdata/Africa/Accra
index f43f751..3f755f6 100644
--- a/library/tzdata/Africa/Accra
+++ b/library/tzdata/Africa/Accra
@@ -2,51 +2,65 @@
set TZData(:Africa/Accra) {
{-9223372036854775808 -52 0 LMT}
- {-1640995148 0 0 GMT}
- {-1556841600 1200 1 GMT}
- {-1546388400 0 0 GMT}
- {-1525305600 1200 1 GMT}
- {-1514852400 0 0 GMT}
- {-1493769600 1200 1 GMT}
- {-1483316400 0 0 GMT}
- {-1462233600 1200 1 GMT}
- {-1451780400 0 0 GMT}
- {-1430611200 1200 1 GMT}
- {-1420158000 0 0 GMT}
- {-1399075200 1200 1 GMT}
- {-1388622000 0 0 GMT}
- {-1367539200 1200 1 GMT}
- {-1357086000 0 0 GMT}
- {-1336003200 1200 1 GMT}
- {-1325550000 0 0 GMT}
- {-1304380800 1200 1 GMT}
- {-1293927600 0 0 GMT}
- {-1272844800 1200 1 GMT}
- {-1262391600 0 0 GMT}
- {-1241308800 1200 1 GMT}
- {-1230855600 0 0 GMT}
- {-1209772800 1200 1 GMT}
- {-1199319600 0 0 GMT}
- {-1178150400 1200 1 GMT}
- {-1167697200 0 0 GMT}
- {-1146614400 1200 1 GMT}
- {-1136161200 0 0 GMT}
- {-1115078400 1200 1 GMT}
- {-1104625200 0 0 GMT}
- {-1083542400 1200 1 GMT}
- {-1073089200 0 0 GMT}
- {-1051920000 1200 1 GMT}
- {-1041466800 0 0 GMT}
- {-1020384000 1200 1 GMT}
- {-1009930800 0 0 GMT}
- {-988848000 1200 1 GMT}
- {-978394800 0 0 GMT}
- {-957312000 1200 1 GMT}
- {-946858800 0 0 GMT}
- {-925689600 1200 1 GMT}
- {-915236400 0 0 GMT}
- {-894153600 1200 1 GMT}
- {-883700400 0 0 GMT}
- {-862617600 1200 1 GMT}
- {-852164400 0 0 GMT}
+ {-1709337548 0 0 GMT}
+ {-1581206400 1200 1 +0020}
+ {-1577917200 0 0 GMT}
+ {-1556834400 1200 1 +0020}
+ {-1546294800 0 0 GMT}
+ {-1525298400 1200 1 +0020}
+ {-1514758800 0 0 GMT}
+ {-1493762400 1200 1 +0020}
+ {-1483222800 0 0 GMT}
+ {-1462226400 1200 1 +0020}
+ {-1451686800 0 0 GMT}
+ {-1430604000 1200 1 +0020}
+ {-1420064400 0 0 GMT}
+ {-1399068000 1200 1 +0020}
+ {-1388528400 0 0 GMT}
+ {-1367532000 1200 1 +0020}
+ {-1356992400 0 0 GMT}
+ {-1335996000 1200 1 +0020}
+ {-1325456400 0 0 GMT}
+ {-1304373600 1200 1 +0020}
+ {-1293834000 0 0 GMT}
+ {-1272837600 1200 1 +0020}
+ {-1262298000 0 0 GMT}
+ {-1241301600 1200 1 +0020}
+ {-1230762000 0 0 GMT}
+ {-1209765600 1200 1 +0020}
+ {-1199226000 0 0 GMT}
+ {-1178143200 1200 1 +0020}
+ {-1167603600 0 0 GMT}
+ {-1146607200 1200 1 +0020}
+ {-1136067600 0 0 GMT}
+ {-1115071200 1200 1 +0020}
+ {-1104531600 0 0 GMT}
+ {-1083535200 1200 1 +0020}
+ {-1072995600 0 0 GMT}
+ {-1051912800 1200 1 +0020}
+ {-1041373200 0 0 GMT}
+ {-1020376800 1200 1 +0020}
+ {-1009837200 0 0 GMT}
+ {-988840800 1200 1 +0020}
+ {-978301200 0 0 GMT}
+ {-957304800 1200 1 +0020}
+ {-946765200 0 0 GMT}
+ {-936309600 1200 1 +0020}
+ {-915142800 0 0 GMT}
+ {-904773600 1200 1 +0020}
+ {-883606800 0 0 GMT}
+ {-880329600 1800 0 +0030}
+ {-756952200 0 0 GMT}
+ {-610149600 1800 1 +0030}
+ {-599610600 0 0 GMT}
+ {-578613600 1800 1 +0030}
+ {-568074600 0 0 GMT}
+ {-546991200 1800 1 +0030}
+ {-536452200 0 0 GMT}
+ {-515455200 1800 1 +0030}
+ {-504916200 0 0 GMT}
+ {-483919200 1800 1 +0030}
+ {-473380200 0 0 GMT}
+ {-452383200 1800 1 +0030}
+ {-441844200 0 0 GMT}
}
diff --git a/library/tzdata/Africa/Juba b/library/tzdata/Africa/Juba
index a0dbf5e..043d95f 100644
--- a/library/tzdata/Africa/Juba
+++ b/library/tzdata/Africa/Juba
@@ -36,4 +36,5 @@ set TZData(:Africa/Juba) {
{483487200 10800 1 CAST}
{498171600 7200 0 CAT}
{947930400 10800 0 EAT}
+ {1612126800 7200 0 CAT}
}
diff --git a/library/tzdata/Africa/Lagos b/library/tzdata/Africa/Lagos
index 079572f..8750661 100644
--- a/library/tzdata/Africa/Lagos
+++ b/library/tzdata/Africa/Lagos
@@ -1,6 +1,9 @@
# created by tools/tclZIC.tcl - do not edit
set TZData(:Africa/Lagos) {
- {-9223372036854775808 816 0 LMT}
- {-1588464816 3600 0 WAT}
+ {-9223372036854775808 815 0 LMT}
+ {-2035584815 0 0 GMT}
+ {-1940889600 815 0 LMT}
+ {-1767226415 1800 0 +0030}
+ {-1588465800 3600 0 WAT}
}
diff --git a/library/tzdata/Africa/Nairobi b/library/tzdata/Africa/Nairobi
index 715dc45..b4c3b97 100644
--- a/library/tzdata/Africa/Nairobi
+++ b/library/tzdata/Africa/Nairobi
@@ -2,8 +2,9 @@
set TZData(:Africa/Nairobi) {
{-9223372036854775808 8836 0 LMT}
- {-1309746436 10800 0 EAT}
- {-1262314800 9000 0 +0230}
- {-946780200 9900 0 +0245}
- {-315629100 10800 0 EAT}
+ {-1946168836 9000 0 +0230}
+ {-1309746600 10800 0 EAT}
+ {-1261969200 9000 0 +0230}
+ {-1041388200 9900 0 +0245}
+ {-865305900 10800 0 EAT}
}
diff --git a/library/tzdata/America/Belize b/library/tzdata/America/Belize
index 5b46388..3b3f9e4 100644
--- a/library/tzdata/America/Belize
+++ b/library/tzdata/America/Belize
@@ -51,8 +51,51 @@ set TZData(:America/Belize) {
{-911759400 -21600 0 CST}
{-891194400 -19800 1 -0530}
{-879705000 -21600 0 CST}
- {-859744800 -19800 1 -0530}
- {-848255400 -21600 0 CST}
+ {-868212000 -18000 1 CWT}
+ {-769395600 -18000 1 CPT}
+ {-758746800 -21600 0 CST}
+ {-701892000 -19800 1 -0530}
+ {-690402600 -21600 0 CST}
+ {-670442400 -19800 1 -0530}
+ {-658953000 -21600 0 CST}
+ {-638992800 -19800 1 -0530}
+ {-627503400 -21600 0 CST}
+ {-606938400 -19800 1 -0530}
+ {-596053800 -21600 0 CST}
+ {-575488800 -19800 1 -0530}
+ {-564604200 -21600 0 CST}
+ {-544039200 -19800 1 -0530}
+ {-532549800 -21600 0 CST}
+ {-512589600 -19800 1 -0530}
+ {-501100200 -21600 0 CST}
+ {-481140000 -19800 1 -0530}
+ {-469650600 -21600 0 CST}
+ {-449690400 -19800 1 -0530}
+ {-438201000 -21600 0 CST}
+ {-417636000 -19800 1 -0530}
+ {-406751400 -21600 0 CST}
+ {-386186400 -19800 1 -0530}
+ {-375301800 -21600 0 CST}
+ {-354736800 -19800 1 -0530}
+ {-343247400 -21600 0 CST}
+ {-323287200 -19800 1 -0530}
+ {-311797800 -21600 0 CST}
+ {-291837600 -19800 1 -0530}
+ {-280348200 -21600 0 CST}
+ {-259783200 -19800 1 -0530}
+ {-248898600 -21600 0 CST}
+ {-228333600 -19800 1 -0530}
+ {-217449000 -21600 0 CST}
+ {-196884000 -19800 1 -0530}
+ {-185999400 -21600 0 CST}
+ {-165434400 -19800 1 -0530}
+ {-153945000 -21600 0 CST}
+ {-133984800 -19800 1 -0530}
+ {-122495400 -21600 0 CST}
+ {-102535200 -19800 1 -0530}
+ {-91045800 -21600 0 CST}
+ {-70480800 -19800 1 -0530}
+ {-59596200 -21600 0 CST}
{123919200 -18000 1 CDT}
{129618000 -21600 0 CST}
{409039200 -18000 1 CDT}
diff --git a/library/tzdata/America/Grand_Turk b/library/tzdata/America/Grand_Turk
index da5f09b..414b0f9 100644
--- a/library/tzdata/America/Grand_Turk
+++ b/library/tzdata/America/Grand_Turk
@@ -77,8 +77,7 @@ set TZData(:America/Grand_Turk) {
{1383458400 -18000 0 EST}
{1394348400 -14400 1 EDT}
{1414908000 -18000 0 EST}
- {1425798000 -14400 1 EDT}
- {1446361200 -14400 0 AST}
+ {1425798000 -14400 0 AST}
{1520751600 -14400 0 EDT}
{1541311200 -18000 0 EST}
{1552201200 -14400 1 EDT}
diff --git a/library/tzdata/America/Nassau b/library/tzdata/America/Nassau
index 1c35e93..292c56d 100644
--- a/library/tzdata/America/Nassau
+++ b/library/tzdata/America/Nassau
@@ -3,6 +3,11 @@
set TZData(:America/Nassau) {
{-9223372036854775808 -18570 0 LMT}
{-1825095030 -18000 0 EST}
+ {-873140400 -14400 1 EWT}
+ {-788904000 -18000 0 EST}
+ {-786222000 -14400 1 EWT}
+ {-769395600 -14400 1 EPT}
+ {-763848000 -18000 0 EST}
{-179341200 -14400 1 EDT}
{-163620000 -18000 0 EST}
{-147891600 -14400 1 EDT}
diff --git a/library/tzdata/Antarctica/Macquarie b/library/tzdata/Antarctica/Macquarie
index e8ed043..82b2b9f 100644
--- a/library/tzdata/Antarctica/Macquarie
+++ b/library/tzdata/Antarctica/Macquarie
@@ -5,7 +5,7 @@ set TZData(:Antarctica/Macquarie) {
{-2214259200 36000 0 AEST}
{-1680508800 39600 1 AEDT}
{-1669892400 39600 0 AEDT}
- {-1665392400 36000 0 AEST}
+ {-1665388800 36000 0 AEST}
{-1601719200 0 0 -00}
{-94730400 36000 0 AEST}
{-71136000 39600 1 AEDT}
diff --git a/library/tzdata/Asia/Gaza b/library/tzdata/Asia/Gaza
index ae86505..95523c9 100644
--- a/library/tzdata/Asia/Gaza
+++ b/library/tzdata/Asia/Gaza
@@ -3,16 +3,18 @@
set TZData(:Asia/Gaza) {
{-9223372036854775808 8272 0 LMT}
{-2185409872 7200 0 EEST}
- {-933645600 10800 1 EEST}
- {-857358000 7200 0 EEST}
+ {-933638400 10800 1 EEST}
+ {-923097600 7200 0 EEST}
+ {-919036800 10800 1 EEST}
+ {-857347200 7200 0 EEST}
{-844300800 10800 1 EEST}
- {-825822000 7200 0 EEST}
- {-812685600 10800 1 EEST}
- {-794199600 7200 0 EEST}
- {-779853600 10800 1 EEST}
- {-762656400 7200 0 EEST}
+ {-825811200 7200 0 EEST}
+ {-812678400 10800 1 EEST}
+ {-794188800 7200 0 EEST}
+ {-779846400 10800 1 EEST}
+ {-762652800 7200 0 EEST}
{-748310400 10800 1 EEST}
- {-731127600 7200 0 EEST}
+ {-731116800 7200 0 EEST}
{-682653600 7200 0 EET}
{-399088800 10800 1 EEST}
{-386650800 7200 0 EET}
@@ -40,12 +42,12 @@ set TZData(:Asia/Gaza) {
{150843600 7200 0 IST}
{167176800 10800 1 IDT}
{178664400 7200 0 IST}
- {334015200 10800 1 IDT}
- {337644000 7200 0 IST}
- {452556000 10800 1 IDT}
- {462232800 7200 0 IST}
+ {334101600 10800 1 IDT}
+ {337730400 7200 0 IST}
+ {452642400 10800 1 IDT}
+ {462319200 7200 0 IST}
{482277600 10800 1 IDT}
- {495579600 7200 0 IST}
+ {494370000 7200 0 IST}
{516751200 10800 1 IDT}
{526424400 7200 0 IST}
{545436000 10800 1 IDT}
diff --git a/library/tzdata/Asia/Hebron b/library/tzdata/Asia/Hebron
index aa028d8..3fdcd65 100644
--- a/library/tzdata/Asia/Hebron
+++ b/library/tzdata/Asia/Hebron
@@ -3,16 +3,18 @@
set TZData(:Asia/Hebron) {
{-9223372036854775808 8423 0 LMT}
{-2185410023 7200 0 EEST}
- {-933645600 10800 1 EEST}
- {-857358000 7200 0 EEST}
+ {-933638400 10800 1 EEST}
+ {-923097600 7200 0 EEST}
+ {-919036800 10800 1 EEST}
+ {-857347200 7200 0 EEST}
{-844300800 10800 1 EEST}
- {-825822000 7200 0 EEST}
- {-812685600 10800 1 EEST}
- {-794199600 7200 0 EEST}
- {-779853600 10800 1 EEST}
- {-762656400 7200 0 EEST}
+ {-825811200 7200 0 EEST}
+ {-812678400 10800 1 EEST}
+ {-794188800 7200 0 EEST}
+ {-779846400 10800 1 EEST}
+ {-762652800 7200 0 EEST}
{-748310400 10800 1 EEST}
- {-731127600 7200 0 EEST}
+ {-731116800 7200 0 EEST}
{-682653600 7200 0 EET}
{-399088800 10800 1 EEST}
{-386650800 7200 0 EET}
@@ -40,12 +42,12 @@ set TZData(:Asia/Hebron) {
{150843600 7200 0 IST}
{167176800 10800 1 IDT}
{178664400 7200 0 IST}
- {334015200 10800 1 IDT}
- {337644000 7200 0 IST}
- {452556000 10800 1 IDT}
- {462232800 7200 0 IST}
+ {334101600 10800 1 IDT}
+ {337730400 7200 0 IST}
+ {452642400 10800 1 IDT}
+ {462319200 7200 0 IST}
{482277600 10800 1 IDT}
- {495579600 7200 0 IST}
+ {494370000 7200 0 IST}
{516751200 10800 1 IDT}
{526424400 7200 0 IST}
{545436000 10800 1 IDT}
diff --git a/library/tzdata/Asia/Jerusalem b/library/tzdata/Asia/Jerusalem
index e1e84f4..596deb3 100644
--- a/library/tzdata/Asia/Jerusalem
+++ b/library/tzdata/Asia/Jerusalem
@@ -4,47 +4,49 @@ set TZData(:Asia/Jerusalem) {
{-9223372036854775808 8454 0 LMT}
{-2840149254 8440 0 JMT}
{-1641003640 7200 0 IST}
- {-933645600 10800 1 IDT}
- {-857358000 7200 0 IST}
+ {-933638400 10800 1 IDT}
+ {-923097600 7200 0 IST}
+ {-919036800 10800 1 IDT}
+ {-857347200 7200 0 IST}
{-844300800 10800 1 IDT}
- {-825822000 7200 0 IST}
- {-812685600 10800 1 IDT}
- {-794199600 7200 0 IST}
- {-779853600 10800 1 IDT}
- {-762656400 7200 0 IST}
+ {-825811200 7200 0 IST}
+ {-812678400 10800 1 IDT}
+ {-794188800 7200 0 IST}
+ {-779846400 10800 1 IDT}
+ {-762652800 7200 0 IST}
{-748310400 10800 1 IDT}
- {-731127600 7200 0 IST}
- {-681962400 14400 1 IDDT}
- {-673243200 10800 1 IDT}
- {-667962000 7200 0 IST}
- {-652327200 10800 1 IDT}
- {-636426000 7200 0 IST}
- {-622087200 10800 1 IDT}
+ {-731116800 7200 0 IST}
+ {-681955200 14400 1 IDDT}
+ {-673228800 10800 1 IDT}
+ {-667958400 7200 0 IST}
+ {-652320000 10800 1 IDT}
+ {-636422400 7200 0 IST}
+ {-622080000 10800 1 IDT}
{-608947200 7200 0 IST}
- {-591847200 10800 1 IDT}
+ {-591840000 10800 1 IDT}
{-572486400 7200 0 IST}
{-558576000 10800 1 IDT}
{-542851200 7200 0 IST}
{-527731200 10800 1 IDT}
{-514425600 7200 0 IST}
- {-490845600 10800 1 IDT}
- {-482986800 7200 0 IST}
- {-459475200 10800 1 IDT}
- {-451537200 7200 0 IST}
- {-428551200 10800 1 IDT}
+ {-490838400 10800 1 IDT}
+ {-482976000 7200 0 IST}
+ {-459388800 10800 1 IDT}
+ {-451526400 7200 0 IST}
+ {-428544000 10800 1 IDT}
{-418262400 7200 0 IST}
- {-400032000 10800 1 IDT}
- {-387428400 7200 0 IST}
+ {-400118400 10800 1 IDT}
+ {-387417600 7200 0 IST}
{142380000 10800 1 IDT}
{150843600 7200 0 IST}
{167176800 10800 1 IDT}
{178664400 7200 0 IST}
- {334015200 10800 1 IDT}
- {337644000 7200 0 IST}
- {452556000 10800 1 IDT}
- {462232800 7200 0 IST}
+ {334101600 10800 1 IDT}
+ {337730400 7200 0 IST}
+ {452642400 10800 1 IDT}
+ {462319200 7200 0 IST}
{482277600 10800 1 IDT}
- {495579600 7200 0 IST}
+ {494370000 7200 0 IST}
{516751200 10800 1 IDT}
{526424400 7200 0 IST}
{545436000 10800 1 IDT}
diff --git a/library/tzdata/Atlantic/Bermuda b/library/tzdata/Atlantic/Bermuda
index 2d4d983..40ab5d7 100644
--- a/library/tzdata/Atlantic/Bermuda
+++ b/library/tzdata/Atlantic/Bermuda
@@ -2,7 +2,34 @@
set TZData(:Atlantic/Bermuda) {
{-9223372036854775808 -15558 0 LMT}
- {-1262281242 -14400 0 AST}
+ {-2524506042 -15558 0 BMT}
+ {-1664307642 -11958 1 BMT}
+ {-1648932042 -15558 0 BMT}
+ {-1632080442 -11958 1 BMT}
+ {-1618692042 -15558 0 BST}
+ {-1262281242 -14400 0 AT}
+ {-882727200 -10800 1 ADT}
+ {-858538800 -14400 0 AST}
+ {-845229600 -10800 1 ADT}
+ {-825879600 -14400 0 AST}
+ {-814384800 -10800 1 ADT}
+ {-793825200 -14400 0 AST}
+ {-782935200 -10800 1 ADT}
+ {-762375600 -14400 0 AST}
+ {-713988000 -10800 1 ADT}
+ {-703710000 -14400 0 AST}
+ {-681933600 -10800 1 ADT}
+ {-672865200 -14400 0 AST}
+ {-650484000 -10800 1 ADT}
+ {-641415600 -14400 0 AST}
+ {-618429600 -10800 1 ADT}
+ {-609966000 -14400 0 AST}
+ {-586980000 -10800 1 ADT}
+ {-578516400 -14400 0 AST}
+ {-555530400 -10800 1 ADT}
+ {-546462000 -14400 0 AST}
+ {-429127200 -10800 1 ADT}
+ {-415825200 -14400 0 AST}
{136360800 -10800 0 ADT}
{152082000 -14400 0 AST}
{167810400 -10800 1 ADT}
diff --git a/library/tzdata/Australia/Adelaide b/library/tzdata/Australia/Adelaide
index 7e1b04e..5f7c1a4 100644
--- a/library/tzdata/Australia/Adelaide
+++ b/library/tzdata/Australia/Adelaide
@@ -4,14 +4,14 @@ set TZData(:Australia/Adelaide) {
{-9223372036854775808 33260 0 LMT}
{-2364110060 32400 0 ACST}
{-2230189200 34200 0 ACST}
- {-1672565340 37800 1 ACDT}
- {-1665390600 34200 0 ACST}
+ {-1672558200 37800 1 ACDT}
+ {-1665387000 34200 0 ACST}
{-883639800 37800 1 ACDT}
- {-876126600 34200 0 ACST}
+ {-876123000 34200 0 ACST}
{-860398200 37800 1 ACDT}
- {-844677000 34200 0 ACST}
+ {-844673400 34200 0 ACST}
{-828343800 37800 1 ACDT}
- {-813227400 34200 0 ACST}
+ {-813223800 34200 0 ACST}
{31501800 34200 0 ACST}
{57688200 37800 1 ACDT}
{67969800 34200 0 ACST}
diff --git a/library/tzdata/Australia/Brisbane b/library/tzdata/Australia/Brisbane
index 8422ae6..325313a 100644
--- a/library/tzdata/Australia/Brisbane
+++ b/library/tzdata/Australia/Brisbane
@@ -3,14 +3,14 @@
set TZData(:Australia/Brisbane) {
{-9223372036854775808 36728 0 LMT}
{-2366791928 36000 0 AEST}
- {-1672567140 39600 1 AEDT}
- {-1665392400 36000 0 AEST}
+ {-1672560000 39600 1 AEDT}
+ {-1665388800 36000 0 AEST}
{-883641600 39600 1 AEDT}
- {-876128400 36000 0 AEST}
+ {-876124800 36000 0 AEST}
{-860400000 39600 1 AEDT}
- {-844678800 36000 0 AEST}
+ {-844675200 36000 0 AEST}
{-828345600 39600 1 AEDT}
- {-813229200 36000 0 AEST}
+ {-813225600 36000 0 AEST}
{31500000 36000 0 AEST}
{57686400 39600 1 AEDT}
{67968000 36000 0 AEST}
diff --git a/library/tzdata/Australia/Broken_Hill b/library/tzdata/Australia/Broken_Hill
index c428061..2534b70 100644
--- a/library/tzdata/Australia/Broken_Hill
+++ b/library/tzdata/Australia/Broken_Hill
@@ -5,14 +5,14 @@ set TZData(:Australia/Broken_Hill) {
{-2364110748 36000 0 AEST}
{-2314951200 32400 0 ACST}
{-2230189200 34200 0 ACST}
- {-1672565340 37800 1 ACDT}
- {-1665390600 34200 0 ACST}
+ {-1672558200 37800 1 ACDT}
+ {-1665387000 34200 0 ACST}
{-883639800 37800 1 ACDT}
- {-876126600 34200 0 ACST}
+ {-876123000 34200 0 ACST}
{-860398200 37800 1 ACDT}
- {-844677000 34200 0 ACST}
+ {-844673400 34200 0 ACST}
{-828343800 37800 1 ACDT}
- {-813227400 34200 0 ACST}
+ {-813223800 34200 0 ACST}
{31501800 34200 0 ACST}
{57688200 37800 1 ACDT}
{67969800 34200 0 ACST}
diff --git a/library/tzdata/Australia/Currie b/library/tzdata/Australia/Currie
index 936327b..3315aa3 100644
--- a/library/tzdata/Australia/Currie
+++ b/library/tzdata/Australia/Currie
@@ -1,273 +1,5 @@
# created by tools/tclZIC.tcl - do not edit
-
-set TZData(:Australia/Currie) {
- {-9223372036854775808 34528 0 LMT}
- {-2345794528 36000 0 AEST}
- {-1680508800 39600 1 AEDT}
- {-1669892400 39600 0 AEDT}
- {-1665392400 36000 0 AEST}
- {-883641600 39600 1 AEDT}
- {-876128400 36000 0 AEST}
- {-860400000 39600 1 AEDT}
- {-844678800 36000 0 AEST}
- {-828345600 39600 1 AEDT}
- {-813229200 36000 0 AEST}
- {47138400 36000 0 AEST}
- {57686400 39600 1 AEDT}
- {67968000 36000 0 AEST}
- {89136000 39600 1 AEDT}
- {100022400 36000 0 AEST}
- {120585600 39600 1 AEDT}
- {131472000 36000 0 AEST}
- {152035200 39600 1 AEDT}
- {162921600 36000 0 AEST}
- {183484800 39600 1 AEDT}
- {194976000 36000 0 AEST}
- {215539200 39600 1 AEDT}
- {226425600 36000 0 AEST}
- {246988800 39600 1 AEDT}
- {257875200 36000 0 AEST}
- {278438400 39600 1 AEDT}
- {289324800 36000 0 AEST}
- {309888000 39600 1 AEDT}
- {320774400 36000 0 AEST}
- {341337600 39600 1 AEDT}
- {352224000 36000 0 AEST}
- {372787200 39600 1 AEDT}
- {386092800 36000 0 AEST}
- {404841600 39600 1 AEDT}
- {417542400 36000 0 AEST}
- {436291200 39600 1 AEDT}
- {447177600 36000 0 AEST}
- {467740800 39600 1 AEDT}
- {478627200 36000 0 AEST}
- {499190400 39600 1 AEDT}
- {510076800 36000 0 AEST}
- {530035200 39600 1 AEDT}
- {542736000 36000 0 AEST}
- {562089600 39600 1 AEDT}
- {574790400 36000 0 AEST}
- {594144000 39600 1 AEDT}
- {606240000 36000 0 AEST}
- {625593600 39600 1 AEDT}
- {637689600 36000 0 AEST}
- {657043200 39600 1 AEDT}
- {670348800 36000 0 AEST}
- {686678400 39600 1 AEDT}
- {701798400 36000 0 AEST}
- {718128000 39600 1 AEDT}
- {733248000 36000 0 AEST}
- {749577600 39600 1 AEDT}
- {764697600 36000 0 AEST}
- {781027200 39600 1 AEDT}
- {796147200 36000 0 AEST}
- {812476800 39600 1 AEDT}
- {828201600 36000 0 AEST}
- {844531200 39600 1 AEDT}
- {859651200 36000 0 AEST}
- {875980800 39600 1 AEDT}
- {891100800 36000 0 AEST}
- {907430400 39600 1 AEDT}
- {922550400 36000 0 AEST}
- {938880000 39600 1 AEDT}
- {954000000 36000 0 AEST}
- {967305600 39600 1 AEDT}
- {985449600 36000 0 AEST}
- {1002384000 39600 1 AEDT}
- {1017504000 36000 0 AEST}
- {1033833600 39600 1 AEDT}
- {1048953600 36000 0 AEST}
- {1065283200 39600 1 AEDT}
- {1080403200 36000 0 AEST}
- {1096732800 39600 1 AEDT}
- {1111852800 36000 0 AEST}
- {1128182400 39600 1 AEDT}
- {1143907200 36000 0 AEST}
- {1159632000 39600 1 AEDT}
- {1174752000 36000 0 AEST}
- {1191686400 39600 1 AEDT}
- {1207411200 36000 0 AEST}
- {1223136000 39600 1 AEDT}
- {1238860800 36000 0 AEST}
- {1254585600 39600 1 AEDT}
- {1270310400 36000 0 AEST}
- {1286035200 39600 1 AEDT}
- {1301760000 36000 0 AEST}
- {1317484800 39600 1 AEDT}
- {1333209600 36000 0 AEST}
- {1349539200 39600 1 AEDT}
- {1365264000 36000 0 AEST}
- {1380988800 39600 1 AEDT}
- {1396713600 36000 0 AEST}
- {1412438400 39600 1 AEDT}
- {1428163200 36000 0 AEST}
- {1443888000 39600 1 AEDT}
- {1459612800 36000 0 AEST}
- {1475337600 39600 1 AEDT}
- {1491062400 36000 0 AEST}
- {1506787200 39600 1 AEDT}
- {1522512000 36000 0 AEST}
- {1538841600 39600 1 AEDT}
- {1554566400 36000 0 AEST}
- {1570291200 39600 1 AEDT}
- {1586016000 36000 0 AEST}
- {1601740800 39600 1 AEDT}
- {1617465600 36000 0 AEST}
- {1633190400 39600 1 AEDT}
- {1648915200 36000 0 AEST}
- {1664640000 39600 1 AEDT}
- {1680364800 36000 0 AEST}
- {1696089600 39600 1 AEDT}
- {1712419200 36000 0 AEST}
- {1728144000 39600 1 AEDT}
- {1743868800 36000 0 AEST}
- {1759593600 39600 1 AEDT}
- {1775318400 36000 0 AEST}
- {1791043200 39600 1 AEDT}
- {1806768000 36000 0 AEST}
- {1822492800 39600 1 AEDT}
- {1838217600 36000 0 AEST}
- {1853942400 39600 1 AEDT}
- {1869667200 36000 0 AEST}
- {1885996800 39600 1 AEDT}
- {1901721600 36000 0 AEST}
- {1917446400 39600 1 AEDT}
- {1933171200 36000 0 AEST}
- {1948896000 39600 1 AEDT}
- {1964620800 36000 0 AEST}
- {1980345600 39600 1 AEDT}
- {1996070400 36000 0 AEST}
- {2011795200 39600 1 AEDT}
- {2027520000 36000 0 AEST}
- {2043244800 39600 1 AEDT}
- {2058969600 36000 0 AEST}
- {2075299200 39600 1 AEDT}
- {2091024000 36000 0 AEST}
- {2106748800 39600 1 AEDT}
- {2122473600 36000 0 AEST}
- {2138198400 39600 1 AEDT}
- {2153923200 36000 0 AEST}
- {2169648000 39600 1 AEDT}
- {2185372800 36000 0 AEST}
- {2201097600 39600 1 AEDT}
- {2216822400 36000 0 AEST}
- {2233152000 39600 1 AEDT}
- {2248876800 36000 0 AEST}
- {2264601600 39600 1 AEDT}
- {2280326400 36000 0 AEST}
- {2296051200 39600 1 AEDT}
- {2311776000 36000 0 AEST}
- {2327500800 39600 1 AEDT}
- {2343225600 36000 0 AEST}
- {2358950400 39600 1 AEDT}
- {2374675200 36000 0 AEST}
- {2390400000 39600 1 AEDT}
- {2406124800 36000 0 AEST}
- {2422454400 39600 1 AEDT}
- {2438179200 36000 0 AEST}
- {2453904000 39600 1 AEDT}
- {2469628800 36000 0 AEST}
- {2485353600 39600 1 AEDT}
- {2501078400 36000 0 AEST}
- {2516803200 39600 1 AEDT}
- {2532528000 36000 0 AEST}
- {2548252800 39600 1 AEDT}
- {2563977600 36000 0 AEST}
- {2579702400 39600 1 AEDT}
- {2596032000 36000 0 AEST}
- {2611756800 39600 1 AEDT}
- {2627481600 36000 0 AEST}
- {2643206400 39600 1 AEDT}
- {2658931200 36000 0 AEST}
- {2674656000 39600 1 AEDT}
- {2690380800 36000 0 AEST}
- {2706105600 39600 1 AEDT}
- {2721830400 36000 0 AEST}
- {2737555200 39600 1 AEDT}
- {2753280000 36000 0 AEST}
- {2769609600 39600 1 AEDT}
- {2785334400 36000 0 AEST}
- {2801059200 39600 1 AEDT}
- {2816784000 36000 0 AEST}
- {2832508800 39600 1 AEDT}
- {2848233600 36000 0 AEST}
- {2863958400 39600 1 AEDT}
- {2879683200 36000 0 AEST}
- {2895408000 39600 1 AEDT}
- {2911132800 36000 0 AEST}
- {2926857600 39600 1 AEDT}
- {2942582400 36000 0 AEST}
- {2958912000 39600 1 AEDT}
- {2974636800 36000 0 AEST}
- {2990361600 39600 1 AEDT}
- {3006086400 36000 0 AEST}
- {3021811200 39600 1 AEDT}
- {3037536000 36000 0 AEST}
- {3053260800 39600 1 AEDT}
- {3068985600 36000 0 AEST}
- {3084710400 39600 1 AEDT}
- {3100435200 36000 0 AEST}
- {3116764800 39600 1 AEDT}
- {3132489600 36000 0 AEST}
- {3148214400 39600 1 AEDT}
- {3163939200 36000 0 AEST}
- {3179664000 39600 1 AEDT}
- {3195388800 36000 0 AEST}
- {3211113600 39600 1 AEDT}
- {3226838400 36000 0 AEST}
- {3242563200 39600 1 AEDT}
- {3258288000 36000 0 AEST}
- {3274012800 39600 1 AEDT}
- {3289737600 36000 0 AEST}
- {3306067200 39600 1 AEDT}
- {3321792000 36000 0 AEST}
- {3337516800 39600 1 AEDT}
- {3353241600 36000 0 AEST}
- {3368966400 39600 1 AEDT}
- {3384691200 36000 0 AEST}
- {3400416000 39600 1 AEDT}
- {3416140800 36000 0 AEST}
- {3431865600 39600 1 AEDT}
- {3447590400 36000 0 AEST}
- {3463315200 39600 1 AEDT}
- {3479644800 36000 0 AEST}
- {3495369600 39600 1 AEDT}
- {3511094400 36000 0 AEST}
- {3526819200 39600 1 AEDT}
- {3542544000 36000 0 AEST}
- {3558268800 39600 1 AEDT}
- {3573993600 36000 0 AEST}
- {3589718400 39600 1 AEDT}
- {3605443200 36000 0 AEST}
- {3621168000 39600 1 AEDT}
- {3636892800 36000 0 AEST}
- {3653222400 39600 1 AEDT}
- {3668947200 36000 0 AEST}
- {3684672000 39600 1 AEDT}
- {3700396800 36000 0 AEST}
- {3716121600 39600 1 AEDT}
- {3731846400 36000 0 AEST}
- {3747571200 39600 1 AEDT}
- {3763296000 36000 0 AEST}
- {3779020800 39600 1 AEDT}
- {3794745600 36000 0 AEST}
- {3810470400 39600 1 AEDT}
- {3826195200 36000 0 AEST}
- {3842524800 39600 1 AEDT}
- {3858249600 36000 0 AEST}
- {3873974400 39600 1 AEDT}
- {3889699200 36000 0 AEST}
- {3905424000 39600 1 AEDT}
- {3921148800 36000 0 AEST}
- {3936873600 39600 1 AEDT}
- {3952598400 36000 0 AEST}
- {3968323200 39600 1 AEDT}
- {3984048000 36000 0 AEST}
- {4000377600 39600 1 AEDT}
- {4016102400 36000 0 AEST}
- {4031827200 39600 1 AEDT}
- {4047552000 36000 0 AEST}
- {4063276800 39600 1 AEDT}
- {4079001600 36000 0 AEST}
- {4094726400 39600 1 AEDT}
+if {![info exists TZData(Australia/Hobart)]} {
+ LoadTimeZoneFile Australia/Hobart
}
+set TZData(:Australia/Currie) $TZData(:Australia/Hobart)
diff --git a/library/tzdata/Australia/Darwin b/library/tzdata/Australia/Darwin
index e77605d..13f13ee 100644
--- a/library/tzdata/Australia/Darwin
+++ b/library/tzdata/Australia/Darwin
@@ -4,12 +4,12 @@ set TZData(:Australia/Darwin) {
{-9223372036854775808 31400 0 LMT}
{-2364108200 32400 0 ACST}
{-2230189200 34200 0 ACST}
- {-1672565340 37800 1 ACDT}
- {-1665390600 34200 0 ACST}
+ {-1672558200 37800 1 ACDT}
+ {-1665387000 34200 0 ACST}
{-883639800 37800 1 ACDT}
- {-876126600 34200 0 ACST}
+ {-876123000 34200 0 ACST}
{-860398200 37800 1 ACDT}
- {-844677000 34200 0 ACST}
+ {-844673400 34200 0 ACST}
{-828343800 37800 1 ACDT}
- {-813227400 34200 0 ACST}
+ {-813223800 34200 0 ACST}
}
diff --git a/library/tzdata/Australia/Eucla b/library/tzdata/Australia/Eucla
index 8008980..1d81a3d 100644
--- a/library/tzdata/Australia/Eucla
+++ b/library/tzdata/Australia/Eucla
@@ -3,12 +3,12 @@
set TZData(:Australia/Eucla) {
{-9223372036854775808 30928 0 LMT}
{-2337928528 31500 0 +0945}
- {-1672562640 35100 1 +0945}
- {-1665387900 31500 0 +0945}
+ {-1672555500 35100 1 +0945}
+ {-1665384300 31500 0 +0945}
{-883637100 35100 1 +0945}
- {-876123900 31500 0 +0945}
+ {-876120300 31500 0 +0945}
{-860395500 35100 1 +0945}
- {-844674300 31500 0 +0945}
+ {-844670700 31500 0 +0945}
{-836473500 35100 0 +0945}
{152039700 35100 1 +0945}
{162926100 31500 0 +0945}
diff --git a/library/tzdata/Australia/Hobart b/library/tzdata/Australia/Hobart
index bf5adf0..5ff675e 100644
--- a/library/tzdata/Australia/Hobart
+++ b/library/tzdata/Australia/Hobart
@@ -4,14 +4,18 @@ set TZData(:Australia/Hobart) {
{-9223372036854775808 35356 0 LMT}
{-2345795356 36000 0 AEST}
{-1680508800 39600 1 AEDT}
- {-1669892400 39600 0 AEDT}
- {-1665392400 36000 0 AEST}
+ {-1665388800 36000 0 AEST}
+ {-1646640000 39600 1 AEDT}
+ {-1635753600 36000 0 AEST}
+ {-1615190400 39600 1 AEDT}
+ {-1604304000 36000 0 AEST}
+ {-1583920800 36000 0 AEST}
{-883641600 39600 1 AEDT}
- {-876128400 36000 0 AEST}
+ {-876124800 36000 0 AEST}
{-860400000 39600 1 AEDT}
- {-844678800 36000 0 AEST}
+ {-844675200 36000 0 AEST}
{-828345600 39600 1 AEDT}
- {-813229200 36000 0 AEST}
+ {-813225600 36000 0 AEST}
{-94730400 36000 0 AEST}
{-71136000 39600 1 AEDT}
{-55411200 36000 0 AEST}
diff --git a/library/tzdata/Australia/Lindeman b/library/tzdata/Australia/Lindeman
index 91ad0a6..1be6962 100644
--- a/library/tzdata/Australia/Lindeman
+++ b/library/tzdata/Australia/Lindeman
@@ -3,14 +3,14 @@
set TZData(:Australia/Lindeman) {
{-9223372036854775808 35756 0 LMT}
{-2366790956 36000 0 AEST}
- {-1672567140 39600 1 AEDT}
- {-1665392400 36000 0 AEST}
+ {-1672560000 39600 1 AEDT}
+ {-1665388800 36000 0 AEST}
{-883641600 39600 1 AEDT}
- {-876128400 36000 0 AEST}
+ {-876124800 36000 0 AEST}
{-860400000 39600 1 AEDT}
- {-844678800 36000 0 AEST}
+ {-844675200 36000 0 AEST}
{-828345600 39600 1 AEDT}
- {-813229200 36000 0 AEST}
+ {-813225600 36000 0 AEST}
{31500000 36000 0 AEST}
{57686400 39600 1 AEDT}
{67968000 36000 0 AEST}
diff --git a/library/tzdata/Australia/Melbourne b/library/tzdata/Australia/Melbourne
index 81777df..77e9067 100644
--- a/library/tzdata/Australia/Melbourne
+++ b/library/tzdata/Australia/Melbourne
@@ -3,14 +3,14 @@
set TZData(:Australia/Melbourne) {
{-9223372036854775808 34792 0 LMT}
{-2364111592 36000 0 AEST}
- {-1672567140 39600 1 AEDT}
- {-1665392400 36000 0 AEST}
+ {-1672560000 39600 1 AEDT}
+ {-1665388800 36000 0 AEST}
{-883641600 39600 1 AEDT}
- {-876128400 36000 0 AEST}
+ {-876124800 36000 0 AEST}
{-860400000 39600 1 AEDT}
- {-844678800 36000 0 AEST}
+ {-844675200 36000 0 AEST}
{-828345600 39600 1 AEDT}
- {-813229200 36000 0 AEST}
+ {-813225600 36000 0 AEST}
{31500000 36000 0 AEST}
{57686400 39600 1 AEDT}
{67968000 36000 0 AEST}
diff --git a/library/tzdata/Australia/Perth b/library/tzdata/Australia/Perth
index 6ccbca8..4ed3cba 100644
--- a/library/tzdata/Australia/Perth
+++ b/library/tzdata/Australia/Perth
@@ -3,12 +3,12 @@
set TZData(:Australia/Perth) {
{-9223372036854775808 27804 0 LMT}
{-2337925404 28800 0 AWST}
- {-1672559940 32400 1 AWDT}
- {-1665385200 28800 0 AWST}
+ {-1672552800 32400 1 AWDT}
+ {-1665381600 28800 0 AWST}
{-883634400 32400 1 AWDT}
- {-876121200 28800 0 AWST}
+ {-876117600 28800 0 AWST}
{-860392800 32400 1 AWDT}
- {-844671600 28800 0 AWST}
+ {-844668000 28800 0 AWST}
{-836470800 32400 0 AWST}
{152042400 32400 1 AWDT}
{162928800 28800 0 AWST}
diff --git a/library/tzdata/Australia/Sydney b/library/tzdata/Australia/Sydney
index b1c4411..fd01af6 100644
--- a/library/tzdata/Australia/Sydney
+++ b/library/tzdata/Australia/Sydney
@@ -3,14 +3,14 @@
set TZData(:Australia/Sydney) {
{-9223372036854775808 36292 0 LMT}
{-2364113092 36000 0 AEST}
- {-1672567140 39600 1 AEDT}
- {-1665392400 36000 0 AEST}
+ {-1672560000 39600 1 AEDT}
+ {-1665388800 36000 0 AEST}
{-883641600 39600 1 AEDT}
- {-876128400 36000 0 AEST}
+ {-876124800 36000 0 AEST}
{-860400000 39600 1 AEDT}
- {-844678800 36000 0 AEST}
+ {-844675200 36000 0 AEST}
{-828345600 39600 1 AEDT}
- {-813229200 36000 0 AEST}
+ {-813225600 36000 0 AEST}
{31500000 36000 0 AEST}
{57686400 39600 1 AEDT}
{67968000 36000 0 AEST}
diff --git a/library/tzdata/Europe/Volgograd b/library/tzdata/Europe/Volgograd
index 3938683..2ce2dfe 100644
--- a/library/tzdata/Europe/Volgograd
+++ b/library/tzdata/Europe/Volgograd
@@ -69,4 +69,5 @@ set TZData(:Europe/Volgograd) {
{1301180400 14400 0 +04}
{1414274400 10800 0 +03}
{1540681200 14400 0 +04}
+ {1609020000 10800 0 +03}
}
diff --git a/library/tzdata/Indian/Mahe b/library/tzdata/Indian/Mahe
index 3dd5b40..dcafc36 100644
--- a/library/tzdata/Indian/Mahe
+++ b/library/tzdata/Indian/Mahe
@@ -2,5 +2,5 @@
set TZData(:Indian/Mahe) {
{-9223372036854775808 13308 0 LMT}
- {-2006653308 14400 0 +04}
+ {-1988163708 14400 0 +04}
}
diff --git a/library/tzdata/Pacific/Efate b/library/tzdata/Pacific/Efate
index a026ee1..5a22546 100644
--- a/library/tzdata/Pacific/Efate
+++ b/library/tzdata/Pacific/Efate
@@ -3,9 +3,11 @@
set TZData(:Pacific/Efate) {
{-9223372036854775808 40396 0 LMT}
{-1829387596 39600 0 +11}
+ {125409600 43200 1 +11}
+ {133876800 39600 0 +11}
{433256400 43200 1 +11}
{448977600 39600 0 +11}
- {467298000 43200 1 +11}
+ {464706000 43200 1 +11}
{480427200 39600 0 +11}
{496760400 43200 1 +11}
{511876800 39600 0 +11}
diff --git a/tests/apply.test b/tests/apply.test
index 0a64aa0..8696245 100644
--- a/tests/apply.test
+++ b/tests/apply.test
@@ -228,7 +228,7 @@ test apply-8.3 {args treatment} {
apply [list {x args} $applyBody] 1 2 3
} {{x 1} {args {2 3}}}
test apply-8.4 {default values} {
- apply [list {{x 1} {y 2}} $applyBody]
+ apply [list {{x 1} {y 2}} $applyBody]
} {{x 1} {y 2}}
test apply-8.5 {default values} {
apply [list {{x 1} {y 2}} $applyBody] 3 4
diff --git a/tests/assemble.test b/tests/assemble.test
index d2e626b..42c268a 100644
--- a/tests/assemble.test
+++ b/tests/assemble.test
@@ -301,12 +301,12 @@ test assemble-7.1 {add, wrong # args} {
-result {wrong # args*}
}
test assemble-7.2 {add} {
- -body {
+ -body {
assemble {
push 2
push 2
add
- }
+ }
}
-result {4}
}
@@ -349,7 +349,7 @@ test assemble-7.5 {bitwise ops} {
}
test assemble-7.6 {div} {
-body {
- assemble {push 999999; push 7; div}
+ assemble {push 999999; push 7; div}
}
-result 142857
}
@@ -360,7 +360,7 @@ test assemble-7.7 {dup} {
}
}
-result 9
-}
+}
test assemble-7.8 {eq} {
-body {
list \
@@ -638,7 +638,7 @@ test assemble-7.24 {lsetList} {
test assemble-7.25 {lshift} {
-body {
assemble {push 16; push 4; lshift}
- }
+ }
-result 256
}
test assemble-7.26 {mod} {
@@ -678,7 +678,7 @@ test assemble-7.30 {pop} {
test assemble-7.31 {rshift} {
-body {
assemble {push 257; push 4; rshift}
- }
+ }
-result 16
}
test assemble-7.32 {storeArrayStk} {
@@ -1201,7 +1201,7 @@ test assemble-10.7 {expr - noncompilable} {
# assemble-11 - ASSEM_LVT4 (exist, existArray, dictAppend, dictLappend,
# nsupvar, variable, upvar)
-
+
test assemble-11.1 {exist - wrong # args} {
-body {
assemble {exist}
@@ -1310,7 +1310,7 @@ test assemble-11.10 {variable} {
}
# assemble-12 - ASSEM_LVT1 (incr and incrArray)
-
+
test assemble-12.1 {incr - wrong # args} {
-body {
assemble {incr}
@@ -1723,16 +1723,16 @@ test assemble-17.9 {jump - resolve a label multiple times} {
set result {}
assemble {
jump common
-
+
label zero
- pop
+ pop
incrImm case 1
pop
push a
append result
pop
jump common
-
+
label one
pop
incrImm case 1
@@ -1741,7 +1741,7 @@ test assemble-17.9 {jump - resolve a label multiple times} {
append result
pop
jump common
-
+
label common
load case
dup
@@ -1760,7 +1760,7 @@ test assemble-17.9 {jump - resolve a label multiple times} {
push 3
eq
jumpTrue three
-
+
label two
pop
incrImm case 1
@@ -1769,7 +1769,7 @@ test assemble-17.9 {jump - resolve a label multiple times} {
append result
pop
jump common
-
+
label three
pop
incrImm case 1
@@ -1867,7 +1867,7 @@ test assemble-17.15 {multiple passes of code resizing} {
append body {label b15; push b; concat 2; nop; nop; jump c} \n
append body {label d}
proc x {} [list assemble $body]
- }
+ }
-body {
x
}
@@ -2060,7 +2060,7 @@ test assemble-20.5 {lsetFlat - negative operand count} {
test assemble-20.6 {lsetFlat} {
-body {
assemble {push b; push a; lsetFlat 2}
- }
+ }
-result b
}
test assemble-20.7 {lsetFlat} {
@@ -3046,12 +3046,12 @@ test assemble-40.1 {unbalanced stack} {
[catch {
assemble {
push 3
- dup
- mult
+ dup
+ mult
push 4
- dup
- mult
- pop
+ dup
+ mult
+ pop
expon
}
} result] $result $::errorInfo
@@ -3150,7 +3150,7 @@ test assemble-50.1 {Ulam's 3n+1 problem, TAL implementation} {
load n; # max
dup; # max n
jump start; # max n
-
+
label loop; # max n
over 1; # max n max
over 1; # max in max n
@@ -3160,29 +3160,29 @@ test assemble-50.1 {Ulam's 3n+1 problem, TAL implementation} {
reverse 2; # n max
pop; # n
dup; # n n
-
+
label skip; # max n
dup; # max n n
push 2; # max n n 2
mod; # max n n%2
jumpTrue odd; # max n
-
+
push 2; # max n 2
div; # max n/2 -> max n
jump start; # max n
-
+
label odd; # max n
push 3; # max n 3
mult; # max 3*n
push 1; # max 3*n 1
add; # max 3*n+1
-
+
label start; # max n
dup; # max n n
push 1; # max n n 1
neq; # max n n>1
jumpTrue loop; # max n
-
+
pop; # max
}
}
@@ -3212,7 +3212,7 @@ test assemble-51.3 {memory leak testing} memory {
load n; # max
dup; # max n
jump start; # max n
-
+
label loop; # max n
over 1; # max n max
over 1; # max in max n
@@ -3222,29 +3222,29 @@ test assemble-51.3 {memory leak testing} memory {
reverse 2; # n max
pop; # n
dup; # n n
-
+
label skip; # max n
dup; # max n n
push 2; # max n n 2
mod; # max n n%2
jumpTrue odd; # max n
-
+
push 2; # max n 2
div; # max n/2 -> max n
jump start; # max n
-
+
label odd; # max n
push 3; # max n 3
mult; # max 3*n
push 1; # max 3*n 1
add; # max 3*n+1
-
+
label start; # max n
dup; # max n n
push 1; # max n n 1
neq; # max n n>1
jumpTrue loop; # max n
-
+
pop; # max
}
}} 1
@@ -3277,7 +3277,7 @@ test assemble-52.1 {Bug 3154ea2759} {
label @okLabel
endCatch
pop
-
+
beginCatch @badLabel2
push error
push testing
@@ -3290,7 +3290,7 @@ test assemble-52.1 {Bug 3154ea2759} {
label @okLabel2
endCatch
pop
-
+
beginCatch @badLabel3
push error
push testing
@@ -3303,7 +3303,7 @@ test assemble-52.1 {Bug 3154ea2759} {
label @okLabel3
endCatch
pop
-
+
beginCatch @badLabel4
push error
push testing
@@ -3316,7 +3316,7 @@ test assemble-52.1 {Bug 3154ea2759} {
label @okLabel4
endCatch
pop
-
+
beginCatch @badLabel5
push error
push testing
@@ -3329,7 +3329,7 @@ test assemble-52.1 {Bug 3154ea2759} {
label @okLabel5
endCatch
pop
-
+
beginCatch @badLabel6
push error
push testing
diff --git a/tests/assemble1.bench b/tests/assemble1.bench
index 18fd3a9..e294108 100644
--- a/tests/assemble1.bench
+++ b/tests/assemble1.bench
@@ -20,7 +20,7 @@ proc ulam2 {n} {
load n; # max
dup; # max n
jump start; # max n
-
+
label loop; # max n
over 1; # max n max
over 1; # max in max n
@@ -30,29 +30,29 @@ proc ulam2 {n} {
reverse 2; # n max
pop; # n
dup; # n n
-
+
label skip; # max n
dup; # max n n
push 2; # max n n 2
mod; # max n n%2
jumpTrue odd; # max n
-
+
push 2; # max n 2
div; # max n/2 -> max n
jump start; # max n
-
+
label odd; # max n
push 3; # max n 3
mult; # max 3*n
push 1; # max 3*n 1
add; # max 3*n+1
-
+
label start; # max n
dup; # max n n
push 1; # max n n 1
neq; # max n n>1
jumpTrue loop; # max n
-
+
pop; # max
}
}
@@ -60,12 +60,12 @@ set tcl_traceCompile 2; ulam2 1; set tcl_traceCompile 0
proc test1 {n} {
for {set i 1} {$i <= $n} {incr i} {
- ulam1 $i
+ ulam1 $i
}
}
proc test2 {n} {
for {set i 1} {$i <= $n} {incr i} {
- ulam2 $i
+ ulam2 $i
}
}
@@ -75,11 +75,10 @@ for {set j 0} {$j < 10} {incr j} {
test1 30000
set after [clock microseconds]
puts "compiled: [expr {1e-6 * ($after - $before)}]"
-
+
test2 1
set before [clock microseconds]
test2 30000
set after [clock microseconds]
puts "assembled: [expr {1e-6 * ($after - $before)}]"
}
- \ No newline at end of file
diff --git a/tests/chan.test b/tests/chan.test
index 49afdc6..5d05935 100644
--- a/tests/chan.test
+++ b/tests/chan.test
@@ -135,7 +135,7 @@ test chan-16.4 {chan command: pending subcommand} -body {
chan pending {input output} stdout
} -returnCodes error -result "bad mode \"input output\": must be input or output"
test chan-16.5 {chan command: pending input subcommand} -body {
- chan pending input stdout
+ chan pending input stdout
} -result -1
test chan-16.6 {chan command: pending input subcommand} -body {
chan pending input stdin
@@ -194,7 +194,7 @@ test chan-16.9 {chan command: pending input subcommand} -setup {
set ::chan-16.9-data [list]
set ::chan-16.9-done 0
} -body {
- after idle chan-16.9-client
+ after idle chan-16.9-client
vwait ::chan-16.9-done
set ::chan-16.9-data
} -result {-1 0 0 1 36 -1 0 0 1 72 -1 0 0 1 108 -1 0 0 1 144 ABC 890} -cleanup {
diff --git a/tests/chanio.test b/tests/chanio.test
index 1f9e19b..5381a88 100644
--- a/tests/chanio.test
+++ b/tests/chanio.test
@@ -5334,24 +5334,24 @@ test chan-io-40.1 {POSIX open access modes: RDWR} -setup {
test chan-io-40.2 {POSIX open access modes: CREAT} -setup {
file delete $path(test3)
} -constraints {unix} -body {
- set f [open $path(test3) {WRONLY CREAT} 0600]
+ set f [open $path(test3) {WRONLY CREAT} 0o600]
file stat $path(test3) stats
- set x [format "%#o" [expr {$stats(mode) & 0o777}]]
+ set x [format 0o%03o [expr {$stats(mode) & 0o777}]]
chan puts $f "line 1"
chan close $f
set f [open $path(test3) r]
lappend x [chan gets $f]
} -cleanup {
chan close $f
-} -result {0600 {line 1}}
+} -result {0o600 {line 1}}
test chan-io-40.3 {POSIX open access modes: CREAT} -setup {
file delete $path(test3)
} -constraints {unix umask} -body {
# This test only works if your umask is 2, like ouster's.
chan close [open $path(test3) {WRONLY CREAT}]
file stat $path(test3) stats
- format "%#o" [expr {$stats(mode) & 0o777}]
-} -result [format %#4o [expr {0o666 & ~ $umaskValue}]]
+ format "0o%03o" [expr {$stats(mode) & 0o777}]
+} -result [format 0o%03o [expr {0o666 & ~ $umaskValue}]]
test chan-io-40.4 {POSIX open access modes: CREAT} -setup {
file delete $path(test3)
} -body {
@@ -6497,10 +6497,10 @@ test chan-io-50.5 {testing handler deletion vs reentrant calls} -setup {
set u recursive
lappend z "del calling recursive"
set timer [after 50 lappend z timeout]
- set mode [test servicemode 1]
+ set mode [testservicemode 1]
vwait z
after cancel $timer
- test servicemode $mode
+ testservicemode $mode
lappend z "del after update"
}
}
diff --git a/tests/cmdAH.test b/tests/cmdAH.test
index d64ebbb..bb3ad98 100644
--- a/tests/cmdAH.test
+++ b/tests/cmdAH.test
@@ -965,10 +965,10 @@ test cmdAH-19.11 {Tcl_FileObjCmd: exists} -constraints {unix notRoot} -setup {
} -body {
makeDirectory /tmp/tcl.foo.dir
makeFile 12345 /tmp/tcl.foo.dir/file
- file attributes /tmp/tcl.foo.dir -permissions 0000
+ file attributes /tmp/tcl.foo.dir -permissions 0o000
file exists /tmp/tcl.foo.dir/file
} -cleanup {
- file attributes /tmp/tcl.foo.dir -permissions 0775
+ file attributes /tmp/tcl.foo.dir -permissions 0o775
removeFile /tmp/tcl.foo.dir/file
removeDirectory /tmp/tcl.foo.dir
} -result 0
@@ -991,7 +991,7 @@ test cmdAH-19.12 {Bug 3608360: [file exists] mustn't do globbing} -setup {
catch {testsetplatform $platform}
removeFile $gorpfile
set gorpfile [makeFile "Test string" gorp.file]
-catch {file attributes $gorpfile -permissions 0765}
+catch {file attributes $gorpfile -permissions 0o765}
# avoid problems with non-local filesystems
if {[testConstraint unix] && [file exists /tmp]} {
@@ -1407,7 +1407,7 @@ test cmdAH-27.4.1 {
catch {testsetplatform $platform}
removeFile $gorpfile
set gorpfile [makeFile "Test string" gorp.file]
-catch {file attributes $gorpfile -permissions 0765}
+catch {file attributes $gorpfile -permissions 0o765}
# stat
test cmdAH-28.1 {Tcl_FileObjCmd: stat} -returnCodes error -body {
@@ -1434,8 +1434,8 @@ test cmdAH-28.5 {Tcl_FileObjCmd: stat} -constraints {unix} -setup {
unset -nocomplain stat
} -body {
file stat $gorpfile stat
- expr {$stat(mode) & 0o777}
-} -result {501}
+ format 0o%03o [expr {$stat(mode) & 0o777}]
+} -result 0o765
test cmdAH-28.6 {Tcl_FileObjCmd: stat} {
list [catch {file stat _bogus_ stat} msg] [string tolower $msg] $errorCode
} {1 {could not read "_bogus_": no such file or directory} {POSIX ENOENT {no such file or directory}}}
@@ -1715,7 +1715,7 @@ unset -nocomplain platform
# Tcl_ForObjCmd is tested in for.test
-catch {file attributes $dirfile -permissions 0777}
+catch {file attributes $dirfile -permissions 0o777}
removeDirectory $dirfile
removeFile $gorpfile
# No idea how well [removeFile] copes with links...
diff --git a/tests/cmdMZ.test b/tests/cmdMZ.test
index 0f42f2f..61203c1 100644
--- a/tests/cmdMZ.test
+++ b/tests/cmdMZ.test
@@ -63,7 +63,7 @@ test cmdMZ-1.4 {Tcl_PwdObjCmd: failure} -setup {
# This test fails on various unix platforms (eg Linux) where permissions
# caching causes this to fail. The caching is strictly incorrect, but we
# have no control over that.
- file attr . -permissions 000
+ file attr . -permissions 0o000
pwd
} -returnCodes error -cleanup {
cd $cwd
@@ -321,7 +321,7 @@ test cmdMZ-4.13 {Tcl_SplitObjCmd: basic split commands} {
# The tests for Tcl_SubstObjCmd are in subst.test
# The tests for Tcl_SwitchObjCmd are in switch.test
-# todo: rewrite this if monotonic clock is provided resp. command "after"
+# todo: rewrite this if monotonic clock is provided resp. command "after"
# gets microsecond accuracy (RFE [fdfbd5e10] gets merged):
proc _nrt_sleep {msec} {
set usec [expr {$msec * 1000}]
diff --git a/tests/env.test b/tests/env.test
index 036c7a2..e4e209f 100644
--- a/tests/env.test
+++ b/tests/env.test
@@ -419,8 +419,8 @@ test env-8.0 {
# cleanup
-rename getenv {}
-rename envrestore {}
+rename getenv {}
+rename envrestore {}
rename envprep {}
rename encodingrestore {}
rename encodingswitch {}
diff --git a/tests/exec.test b/tests/exec.test
index af7aae5..0f5db76 100644
--- a/tests/exec.test
+++ b/tests/exec.test
@@ -111,7 +111,7 @@ set path(sh2) [makeFile {
exit
} sh2]
set path(sleep) [makeFile {
- after [expr $argv*1000]
+ after [expr {$argv*1000}]
exit
} sleep]
set path(exit) [makeFile {
diff --git a/tests/expr-old.test b/tests/expr-old.test
index 28ec346..6f85748 100644
--- a/tests/expr-old.test
+++ b/tests/expr-old.test
@@ -420,13 +420,13 @@ test expr-old-21.3 {parenthesization} {expr +(3-4)} -1
# Embedded commands and variable names.
-set a 16
-test expr-old-22.1 {embedded variables} {expr {2*$a}} 32
+set a 16
+test expr-old-22.1 {embedded variables} {expr {2*$a}} 32
test expr-old-22.2 {embedded variables} {
set x -5
set y 10
expr {$x + $y}
-} {5}
+} {5}
test expr-old-22.3 {embedded variables} {
set x " -5"
set y " +10"
@@ -1120,7 +1120,7 @@ test expr-old-37.25 {Tcl_ExprDouble and NaN} \
{ieeeFloatingPoint testexprdouble} {
list [catch {testexprdouble 0.0/0.0} result] $result
} {1 {domain error: argument not in valid range}}
-
+
test expr-old-38.1 {Verify Tcl_ExprString's basic operation} -constraints {testexprstring} -body {
list [testexprstring "1+4"] [testexprstring "2*3+4.2"] \
[catch {testexprstring "1+"} msg] $msg
diff --git a/tests/expr.test b/tests/expr.test
index 37d8fe3..b81c4a7 100644
--- a/tests/expr.test
+++ b/tests/expr.test
@@ -19,7 +19,7 @@ if {"::tcltest" ni [namespace children]} {
catch [list package require -exact Tcltest [info patchlevel]]
testConstraint testmathfunctions [expr {
- ([catch {expr T1()} msg] != 1) || ($msg ne {invalid command name "tcl::mathfunc::T1"})
+ ([catch {expr {T1()}} msg] != 1) || ($msg ne {invalid command name "tcl::mathfunc::T1"})
}]
# Determine if "long int" type is a 32 bit number and if the wide
@@ -1438,7 +1438,7 @@ test expr-23.74.3 {INST_EXPON: Bug 2798543} {
expr {(-14)**17 == (-14)**65553}
} 0
-
+
# Some compilers get this wrong; ensure that we work around it correctly
test expr-24.1 {expr edge cases; shifting} {expr int(5)>>32} 0
test expr-24.2 {expr edge cases; shifting} {expr int(5)>>63} 0
@@ -5786,7 +5786,7 @@ test expr-32.1 {expr mod basics} {
0 1 0 3 3 \
0 -1 0 -1 -2 \
]
-
+
test expr-32.2 {expr div basics} {
set mod_nums [list \
{-3 1} {-3 2} {-3 3} {-3 4} {-3 5} \
@@ -6794,7 +6794,7 @@ test expr-39.16 {Tcl_ExprLongObj handles overflows} \
list [catch {testexprlongobj 4294967296.} result] $result
} \
-result {1 {integer value too large to represent*}}
-
+
test expr-39.17 {Check that Tcl_ExprDoubleObj doesn't modify interpreter result if no error} testexprdoubleobj {
testexprdoubleobj 4.+1.
} {This is a result: 5.0}
@@ -6881,19 +6881,19 @@ test expr-41.13 {exponent overflow} {
} 0.0
test expr-41.14 {exponent overflow} {
expr 100e-2147483651
-} 0.0
+} 0.0
test expr-41.15 {exponent overflow} {
expr 1.0e-2147483648
-} 0.0
+} 0.0
test expr-41.16 {exponent overflow} {
expr 1.0e-2147483649
-} 0.0
+} 0.0
test expr-41.17 {exponent overflow} {
expr 1.23e-2147483646
} 0.0
test expr-41.18 {exponent overflow} {
expr 1.23e-2147483647
-} 0.0
+} 0.0
test expr-41.19 {numSigDigs == 0} {
expr 0e309
@@ -7269,7 +7269,7 @@ test expr-52.1 {
list [expr {$a eq {}}] [expr {$a < {}}] [expr {$a > {}}] [
string match {*no string representation*} [
::tcl::unsupported::representation $a]]
-} {0 0 1 1}
+} {0 0 1 1}
diff --git a/tests/fCmd.test b/tests/fCmd.test
index 09f91f7..f175e41 100644
--- a/tests/fCmd.test
+++ b/tests/fCmd.test
@@ -24,6 +24,7 @@ testConstraint testsetplatform [llength [info commands testsetplatform]]
testConstraint testchmod [llength [info commands testchmod]]
testConstraint winVista 0
testConstraint win2000orXP 0
+testConstraint winLessThan10 0
# Don't know how to determine this constraint correctly
testConstraint notNetworkFilesystem 0
testConstraint reg 0
@@ -64,13 +65,16 @@ if {[testConstraint unix]} {
}
# Also used in winFCmd...
-if {[testConstraint win]} {
- if {[testConstraint nt] && $::tcl_platform(osVersion) >= 5.0} {
- if {$::tcl_platform(osVersion) >= 6.0} {
- testConstraint winVista 1
- } else {
- testConstraint win2000orXP 1
- }
+if {[testConstraint win] && [testConstraint nt]} {
+ if {$::tcl_platform(osVersion) >= 5.0} {
+ if {$::tcl_platform(osVersion) < 10.0} {
+ testConstraint winLessThan10 1
+ }
+ if {$::tcl_platform(osVersion) >= 6.0} {
+ testConstraint winVista 1
+ } else {
+ testConstraint win2000orXP 1
+ }
}
}
@@ -624,10 +628,10 @@ test fCmd-6.23 {CopyRenameOneFile: TclpCopyDirectory failed} -setup {
cleanup $tmpspace
} -constraints {xdev notRoot} -body {
file mkdir td1/td2/td3
- file attributes td1 -permissions 0000
+ file attributes td1 -permissions 0o000
file rename td1 $tmpspace
} -returnCodes error -cleanup {
- file attributes td1 -permissions 0755
+ file attributes td1 -permissions 0o755
cleanup
} -match regexp -result {^error renaming "td1"( to "/tmp/tcl\d+/td1")?: permission denied$}
test fCmd-6.24 {CopyRenameOneFile: error uses original name} -setup {
@@ -635,10 +639,10 @@ test fCmd-6.24 {CopyRenameOneFile: error uses original name} -setup {
} -constraints {unix notRoot} -body {
file mkdir ~/td1/td2
set td1name [file join [file dirname ~] [file tail ~] td1]
- file attributes $td1name -permissions 0000
+ file attributes $td1name -permissions 0o000
file copy ~/td1 td1
} -returnCodes error -cleanup {
- file attributes $td1name -permissions 0755
+ file attributes $td1name -permissions 0o755
file delete -force ~/td1
} -result {error copying "~/td1": permission denied}
test fCmd-6.25 {CopyRenameOneFile: error uses original name} -setup {
@@ -647,10 +651,10 @@ test fCmd-6.25 {CopyRenameOneFile: error uses original name} -setup {
file mkdir td2
file mkdir ~/td1
set td1name [file join [file dirname ~] [file tail ~] td1]
- file attributes $td1name -permissions 0000
+ file attributes $td1name -permissions 0o000
file copy td2 ~/td1
} -returnCodes error -cleanup {
- file attributes $td1name -permissions 0755
+ file attributes $td1name -permissions 0o755
file delete -force ~/td1
} -result {error copying "td2" to "~/td1/td2": permission denied}
test fCmd-6.26 {CopyRenameOneFile: doesn't use original name} -setup {
@@ -658,10 +662,10 @@ test fCmd-6.26 {CopyRenameOneFile: doesn't use original name} -setup {
} -constraints {unix notRoot} -body {
file mkdir ~/td1/td2
set td2name [file join [file dirname ~] [file tail ~] td1 td2]
- file attributes $td2name -permissions 0000
+ file attributes $td2name -permissions 0o000
file copy ~/td1 td1
} -returnCodes error -cleanup {
- file attributes $td2name -permissions 0755
+ file attributes $td2name -permissions 0o755
file delete -force ~/td1
} -result "error copying \"~/td1\" to \"td1\": \"[file join $::env(HOME) td1 td2]\": permission denied"
test fCmd-6.27 {CopyRenameOneFile: TclpCopyDirectory failed} -setup {
@@ -676,10 +680,10 @@ test fCmd-6.28 {CopyRenameOneFile: TclpCopyDirectory failed} -setup {
cleanup $tmpspace
} -constraints {notRoot xdev} -body {
file mkdir td1/td2/td3
- file attributes td1/td2/td3 -permissions 0000
+ file attributes td1/td2/td3 -permissions 0o000
file rename td1 $tmpspace
} -returnCodes error -cleanup {
- file attributes td1/td2/td3 -permissions 0755
+ file attributes td1/td2/td3 -permissions 0o755
cleanup $tmpspace
} -match glob -result {error renaming "td1" to "/tmp/tcl*/td1": "td1/td2/td3": permission denied}
test fCmd-6.29 {CopyRenameOneFile: TclpCopyDirectory passed} -setup {
@@ -1343,10 +1347,10 @@ test fCmd-12.8 {renamefile: generic error} -setup {
} -constraints {unix notRoot} -body {
file mkdir tfa
file mkdir tfa/dir
- file attributes tfa -permissions 0555
+ file attributes tfa -permissions 0o555
catch {file rename tfa/dir tfa2}
} -cleanup {
- catch {file attributes tfa -permissions 0777}
+ catch {file attributes tfa -permissions 0o777}
file delete -force tfa
} -result {1}
test fCmd-12.9 {renamefile: moving a file across volumes} -setup {
@@ -1529,10 +1533,10 @@ test fCmd-14.8 {copyfile: copy directory failing} -setup {
catch {file delete -force -- tfa}
} -constraints {unix notRoot} -body {
file mkdir tfa/dir/a/b/c
- file attributes tfa/dir -permissions 0000
+ file attributes tfa/dir -permissions 0o000
catch {file copy tfa tfa2}
} -cleanup {
- file attributes tfa/dir -permissions 0777
+ file attributes tfa/dir -permissions 0o777
file delete -force tfa tfa2
} -result {1}
@@ -1572,10 +1576,10 @@ test fCmd-15.4 {TclMakeDirsCmd - stat failing} -setup {
} -constraints {unix notRoot} -body {
file mkdir tfa
createfile tfa/file
- file attributes tfa -permissions 0000
+ file attributes tfa -permissions 0o000
catch {file mkdir tfa/file}
} -cleanup {
- file attributes tfa -permissions 0777
+ file attributes tfa -permissions 0o777
file delete -force tfa
} -result {1}
test fCmd-15.5 {TclMakeDirsCmd: - making a directory several levels deep} -setup {
@@ -1672,7 +1676,7 @@ test fCmd-16.9 {error while deleting file} -setup {
} -constraints {unix notRoot} -body {
file mkdir tfa
createfile tfa/a
- file attributes tfa -permissions 0555
+ file attributes tfa -permissions 0o555
catch {file delete tfa/a}
#######
####### If any directory in a tree that is being removed does not have
@@ -1680,7 +1684,7 @@ test fCmd-16.9 {error while deleting file} -setup {
####### with "rm -rf"
#######
} -cleanup {
- file attributes tfa -permissions 0777
+ file attributes tfa -permissions 0o777
file delete -force tfa
} -result {1}
test fCmd-16.10 {deleting multiple files} -constraints {notRoot} -setup {
@@ -1702,10 +1706,10 @@ test fCmd-17.1 {mkdir stat failing on target but not ENOENT} -setup {
catch {file delete -force -- tfa1}
} -constraints {unix notRoot} -body {
file mkdir tfa1
- file attributes tfa1 -permissions 0555
+ file attributes tfa1 -permissions 0o555
catch {file mkdir tfa1/tfa2}
} -cleanup {
- file attributes tfa1 -permissions 0777
+ file attributes tfa1 -permissions 0o777
file delete -force tfa1
} -result {1}
test fCmd-17.2 {mkdir several levels deep - relative} -setup {
@@ -1913,10 +1917,10 @@ test fCmd-19.2 {rmdir error besides EEXIST} -setup {
} -constraints {unix notRoot} -body {
file mkdir tfa
file mkdir tfa/a
- file attributes tfa -permissions 0555
+ file attributes tfa -permissions 0o555
catch {file delete tfa/a}
} -cleanup {
- file attributes tfa -permissions 0777
+ file attributes tfa -permissions 0o777
file delete -force tfa
} -result {1}
test fCmd-19.3 {recursive remove} -constraints {notRoot} -setup {
@@ -1941,10 +1945,10 @@ test fCmd-20.1 {TraverseUnixTree : failure opening a subdirectory directory} -se
} -constraints {unix notRoot} -body {
file mkdir tfa
file mkdir tfa/a
- file attributes tfa/a -permissions 0000
+ file attributes tfa/a -permissions 0o000
catch {file delete -force tfa}
} -cleanup {
- file attributes tfa/a -permissions 0777
+ file attributes tfa/a -permissions 0o777
file delete -force tfa
} -result {1}
test fCmd-20.2 {TraverseUnixTree : recursive delete of large directory: Bug 1034337} -setup {
@@ -2355,13 +2359,15 @@ test fCmd-28.7 {file link: source already exists} -setup {
} -returnCodes error -cleanup {
cd [workingDirectory]
} -result {could not create new link "abc.file": that path already exists}
-test fCmd-28.8 {file link} -constraints {linkFile win} -setup {
+# In Windows 10 developer mode, we _can_ create symbolic links to files!
+test fCmd-28.8 {file link} -constraints {linkFile winLessThan10} -setup {
cd [temporaryDirectory]
} -body {
file link -symbolic abc.link abc.file
-} -returnCodes error -cleanup {
+} -cleanup {
+ file delete -force abc.link
cd [workingDirectory]
-} -result {could not create new link "abc.link" pointing to "abc.file": not a directory}
+} -returnCodes error -result {could not create new link "abc.link" pointing to "abc.file": invalid argument}
test fCmd-28.9 {file link: success with file} -constraints {linkFile} -setup {
cd [temporaryDirectory]
file delete -force abc.link
diff --git a/tests/fileName.test b/tests/fileName.test
index 0411ea8..7a8ae61 100644
--- a/tests/fileName.test
+++ b/tests/fileName.test
@@ -1061,10 +1061,10 @@ test filename-11.45 {Tcl_GlobCmd on root volume} -setup {
set tmpd [pwd]
} -body {
catch {
- set res1 [glob -dir [lindex [file volumes] 0] -tails *]
+ set res1 [glob -dir [lindex [file volumes] end] -tails *]
}
catch {
- cd [lindex [file volumes] 0]
+ cd [lindex [file volumes] end]
set res2 [glob *]
}
list $res1 $res2
@@ -1327,7 +1327,7 @@ unset globname
# AFS, "000" protection doesn't prevent access by owner, so the following test
# is not portable.
-catch {file attributes globTest/a1 -permissions 0000}
+catch {file attributes globTest/a1 -permissions 0o000}
test filename-15.1 {unix specific globbing} {unix nonPortable} {
string tolower [list [catch {glob globTest/a1/*} msg] $msg $errorCode]
} {1 {couldn't read directory "globtest/a1": permission denied} {posix eacces {permission denied}}}
@@ -1339,7 +1339,7 @@ test filename-15.3 {unix specific no complain: no errors, good result} \
# test fails because if an error occurs, the interp's result is reset...
glob -nocomplain globTest/a2 globTest/a1/* globTest/a3
} {globTest/a2 globTest/a3}
-catch {file attributes globTest/a1 -permissions 0755}
+catch {file attributes globTest/a1 -permissions 0o755}
test filename-15.4 {unix specific no complain: no errors, good result} \
{unix nonPortable} {
# test fails because if an error occurs, the interp's result is reset...
diff --git a/tests/fileSystem.test b/tests/fileSystem.test
index 7e06a23..f363d86 100644
--- a/tests/fileSystem.test
+++ b/tests/fileSystem.test
@@ -153,7 +153,7 @@ test filesystem-1.10 {link normalisation: double link} -constraints {
[file normalize [file join dir2.link inside.file foo]]
} -cleanup {
file delete dir2.link
-} -result ok
+} -result ok
makeDirectory dir2.file
test filesystem-1.11 {link normalisation: double link, back in tree} {unix hasLinks} {
file link dir2.link dir.link
@@ -168,7 +168,7 @@ test filesystem-1.12 {file new native path} {} {
}
}
# If we reach here we've succeeded. We used to crash above.
- expr 1
+ expr {1}
} {1}
test filesystem-1.13 {file normalisation} {win} {
# This used to be broken
@@ -695,7 +695,7 @@ test filesystem-7.5 {cross-filesystem file copy with -force} -setup {
# First copy should succeed
set res [catch {file copy simplefs:/simplefile file2} err]
lappend res $err
- file attributes file2 -permissions 0000
+ file attributes file2 -permissions 0o000
# Second copy should fail (no -force)
lappend res [catch {file copy simplefs:/simplefile file2} err]
lappend res $err
@@ -913,7 +913,7 @@ test filesystem-9.5 {path objects and file tail and object rep} -setup {
}
return $res
} -cleanup {
- file delete -force dgp
+ file delete -force dgp
cd $origdir
} -result {test test}
test filesystem-9.6 {path objects and file tail and object rep} win {
diff --git a/tests/fileSystemEncoding.test b/tests/fileSystemEncoding.test
index 40a0090..6561bef 100644
--- a/tests/fileSystemEncoding.test
+++ b/tests/fileSystemEncoding.test
@@ -42,7 +42,7 @@ namespace eval ::tcl::test::fileSystemEncoding {
set globbed [lindex [glob -directory $dir *] 0]
encoding system utf-8
set res [file exists $globbed]
- encoding system iso8859-1
+ encoding system iso8859-1
lappend res [file exists $globbed]
return $res
} -cleanup {
diff --git a/tests/foreach.test b/tests/foreach.test
index cdbfc85..bb06b80 100644
--- a/tests/foreach.test
+++ b/tests/foreach.test
@@ -165,7 +165,7 @@ test foreach-4.1 {noncompiled foreach and shared variable or value list objects
catch {unset x}
foreach {12.0} {a b c} {
set x 12.0
- set x [expr $x + 1]
+ set x [expr {$x + 1}]
}
set x
} 13.0
diff --git a/tests/format.test b/tests/format.test
index 11cb4b7..20006ef 100644
--- a/tests/format.test
+++ b/tests/format.test
@@ -460,7 +460,7 @@ test format-13.1 {tcl_precision fuzzy comparison} {
set a 0.0000000000001
set b 0.00000000000001
set c 0.00000000000000001
- set d [expr $a + $b + $c]
+ set d [expr {$a + $b + $c}]
format {%0.10f %0.12f %0.15f %0.17f} $d $d $d $d
} {0.0000000000 0.000000000000 0.000000000000110 0.00000000000011001}
test format-13.2 {tcl_precision fuzzy comparison} {
@@ -471,7 +471,7 @@ test format-13.2 {tcl_precision fuzzy comparison} {
set a 0.000000000001
set b 0.000000000000005
set c 0.0000000000000008
- set d [expr $a + $b + $c]
+ set d [expr {$a + $b + $c}]
format {%0.10f %0.12f %0.15f %0.17f} $d $d $d $d
} {0.0000000000 0.000000000001 0.000000000001006 0.00000000000100580}
test format-13.3 {tcl_precision fuzzy comparison} {
@@ -480,7 +480,7 @@ test format-13.3 {tcl_precision fuzzy comparison} {
catch {unset c}
set a 0.00000000000099
set b 0.000000000000011
- set c [expr $a + $b]
+ set c [expr {$a + $b}]
format {%0.10f %0.12f %0.15f %0.17f} $c $c $c $c
} {0.0000000000 0.000000000001 0.000000000001001 0.00000000000100100}
test format-13.4 {tcl_precision fuzzy comparison} {
@@ -489,7 +489,7 @@ test format-13.4 {tcl_precision fuzzy comparison} {
catch {unset c}
set a 0.444444444444
set b 0.33333333333333
- set c [expr $a + $b]
+ set c [expr {$a + $b}]
format {%0.10f %0.12f %0.15f %0.16f} $c $c $c $c
} {0.7777777778 0.777777777777 0.777777777777330 0.7777777777773300}
test format-13.5 {tcl_precision fuzzy comparison} {
@@ -498,7 +498,7 @@ test format-13.5 {tcl_precision fuzzy comparison} {
catch {unset c}
set a 0.444444444444
set b 0.99999999999999
- set c [expr $a + $b]
+ set c [expr {$a + $b}]
format {%0.10f %0.12f %0.15f} $c $c $c
} {1.4444444444 1.444444444444 1.444444444443990}
@@ -534,7 +534,7 @@ for {set i 0} {$i < 290} {incr i} {
append b $a
}
for {set i 290} {$i < 400} {incr i} {
- test format-16.[expr $i -289] {testing MAX_FLOAT_SIZE} {
+ test format-16.[expr {$i -289}] {testing MAX_FLOAT_SIZE} {
format {%s} $b
} $b
append b "x"
diff --git a/tests/history.test b/tests/history.test
index b6a2755..813f84f 100644
--- a/tests/history.test
+++ b/tests/history.test
@@ -10,7 +10,7 @@
#
# See the file "license.terms" for information on usage and redistribution of
# this file, and for a DISCLAIMER OF ALL WARRANTIES.
-
+
if {"::tcltest" ni [namespace children]} {
package require tcltest 2.5
namespace import -force ::tcltest::*
diff --git a/tests/http.test b/tests/http.test
index d1b2d22..c45a45a 100644
--- a/tests/http.test
+++ b/tests/http.test
@@ -38,13 +38,10 @@ proc bgerror {args} {
puts stderr $errorInfo
}
-if {$::tcl_platform(os) eq "Darwin"} {
- # Name resolution often a problem on OSX; not focus of HTTP package anyway
- set HOST localhost
-} else {
- set HOST [info hostname]
-}
-
+# Do not use [info hostname].
+# Name resolution is often a problem on OSX; not focus of HTTP package anyway.
+# Also a problem on other platforms for http-4.14 (test with bad port number).
+set HOST localhost
set port 8010
set bindata "This is binary data\x0d\x0amore\x0dmore\x0amore\x00null"
catch {unset data}
@@ -81,6 +78,8 @@ if {[catch {package present Thread}] == 0 && [file exists $httpdFile]} {
unset port
return
} else {
+ # Running httpd in the current thread overwrites the values of port
+ # (here) and HOST (in the sourced server file).
set port [lindex [fconfigure $listen -sockname] 2]
}
}
diff --git a/tests/httpd b/tests/httpd
index 16e0382..3cf2170 100644
--- a/tests/httpd
+++ b/tests/httpd
@@ -10,12 +10,10 @@
#set httpLog 1
-if {$::tcl_platform(os) eq "Darwin"} {
- # Name resolution often a problem on OSX; not focus of HTTP package anyway
- set HOST localhost
-} else {
- set HOST [info hostname]
-}
+# Do not use [info hostname].
+# Name resolution is often a problem on OSX; not focus of HTTP package anyway.
+# Also a problem on other platforms for http-4.14 (test with bad port number).
+set HOST localhost
proc httpd_init {{port 8015}} {
socket -server httpdAccept $port
@@ -216,7 +214,7 @@ proc httpdRespond { sock } {
}
# Catch errors from premature client closes
-
+
catch {
if {$data(proto) == "HEAD"} {
puts $sock "HTTP/1.0 200 OK"
diff --git a/tests/httpold.test b/tests/httpold.test
index 1b07c90..67ab119 100644
--- a/tests/httpold.test
+++ b/tests/httpold.test
@@ -33,18 +33,17 @@ if {[catch {package require http 1.0}]} {
}
}
-if {$::tcl_platform(os) eq "Darwin"} {
- # Name resolution often a problem on OSX; not focus of HTTP package anyway
- set HOST localhost
-} else {
- set HOST [info hostname]
-}
+# Do not use [info hostname].
+# Name resolution is often a problem on OSX; not focus of HTTP package anyway.
+# Also a problem on other platforms for http-4.14 (test with bad port number).
+set HOST localhost
set bindata "This is binary data\x0d\x0amore\x0dmore\x0amore\x00null"
catch {unset data}
##
## The httpd script implement a stub http server
+## Sourcing httpd overwrites the value of HOST.
##
source [file join [file dirname [info script]] httpd]
@@ -168,7 +167,7 @@ test httpold-4.1 {httpEvent} {
set token [http_get $url]
upvar #0 $token data
array set meta $data(meta)
- expr ($data(totalsize) == $meta(Content-Length))
+ expr {$data(totalsize) == $meta(Content-Length)}
} 1
test httpold-4.2 {httpEvent} {
@@ -205,7 +204,7 @@ test httpold-4.5 {httpEvent} {
close $out
upvar #0 $token data
removeFile $testfile
- expr $data(currentsize) == $data(totalsize)
+ expr {$data(currentsize) == $data(totalsize)}
} 1
test httpold-4.6 {httpEvent} {
diff --git a/tests/info.test b/tests/info.test
index fb9e0de..69be6a3 100644
--- a/tests/info.test
+++ b/tests/info.test
@@ -657,7 +657,7 @@ test info-19.6 {info vars: Bug 1072654} -setup {
set functions {abs acos asin atan atan2 bool ceil cos cosh double entier exp floor fmod hypot int isqrt log log10 max min pow rand round sin sinh sqrt srand tan tanh wide}
# Check whether the extra testing functions are defined...
-if {!([catch {expr T1()} msg] && ($msg eq {invalid command name "tcl::mathfunc::T1"}))} {
+if {!([catch {expr {T1()}} msg] && ($msg eq {invalid command name "tcl::mathfunc::T1"}))} {
set functions "T1 T2 T3 $functions" ;# A lazy way of prepending!
}
test info-20.1 {info functions option} {info functions sin} sin
diff --git a/tests/init.test b/tests/init.test
index e8d484b..91df4a1 100644
--- a/tests/init.test
+++ b/tests/init.test
@@ -41,7 +41,7 @@ test init-1.2 {auto_qualify - absolute cmd - global} {
} global
test init-1.3 {auto_qualify - no colons cmd - global} {
auto_qualify nocolons ::
-} nocolons
+} nocolons
test init-1.4 {auto_qualify - no colons cmd - namespace} {
auto_qualify nocolons ::sub
} {::sub::nocolons nocolons}
@@ -106,11 +106,11 @@ test init-2.5 {load safe:::setLogCmd - stage 2} {
auto_reset
catch {rename ::safe::setLogCmd {}}
test init-2.6 {load setLogCmd from safe:: - stage 1} {
- namespace eval safe setLogCmd
+ namespace eval safe setLogCmd
rename ::safe::setLogCmd {} ;# should not fail
} {}
test init-2.7 {oad setLogCmd from safe:: - stage 2} {
- namespace eval safe setLogCmd
+ namespace eval safe setLogCmd
rename ::safe::setLogCmd {} ;# should not fail
} {}
test init-2.8 {load tcl::HistAdd} -setup {
@@ -145,12 +145,12 @@ foreach arg [subst -nocommands -novariables {
and is long enough to be truncated and
" <- includes a false lead in the prune point search
and must be longer still to force truncation}
- {contrived example: rare circumstance
+ {contrived example: rare circumstance
where the point at which to prune the
error stack cannot be uniquely determined.
foo bar foo
"}
- {contrived example: rare circumstance
+ {contrived example: rare circumstance
where the point at which to prune the
error stack cannot be uniquely determined.
foo bar
diff --git a/tests/internals.tcl b/tests/internals.tcl
index 6b5bb87..e859afe 100644
--- a/tests/internals.tcl
+++ b/tests/internals.tcl
@@ -21,7 +21,7 @@ namespace path ::tcltest
# Options:
# -addmem - set additional memory limit (in bytes) as difference (extra memory needed to run a test)
# -maxmem - set absolute maximum address space limit (in bytes)
-#
+#
proc testWithLimit args {
set body [lindex $args end]
array set in [lrange $args 0 end-1]
@@ -45,7 +45,7 @@ proc testWithLimit args {
incr in(-addmem) 20000000
# + size of locale-archive (may be up to 100MB):
incr in(-addmem) [expr {
- [file exists /usr/lib/locale/locale-archive] ?
+ [file exists /usr/lib/locale/locale-archive] ?
[file size /usr/lib/locale/locale-archive] : 0
}]
}
diff --git a/tests/io.test b/tests/io.test
index e45b5ef..a86527b 100644
--- a/tests/io.test
+++ b/tests/io.test
@@ -77,7 +77,7 @@ set path(cat) [makeFile {
if {$argv != ""} {
set f [open [lindex $argv 0]]
}
- fconfigure $f -encoding binary -translation lf -blocking 0 -eofchar \x1a
+ fconfigure $f -encoding binary -translation lf -blocking 0 -eofchar \x1A
fconfigure stdout -encoding binary -translation lf -buffering none
fileevent $f readable "foo $f"
proc foo {f} {
@@ -499,10 +499,10 @@ test io-6.7 {Tcl_GetsObj: error in input} stdio {
} {-1}
test io-6.8 {Tcl_GetsObj: remember if EOF is seen} {
set f [open $path(test1) w]
- puts $f "abcdef\x1aghijk\nwombat"
+ puts $f "abcdef\x1Aghijk\nwombat"
close $f
set f [open $path(test1)]
- fconfigure $f -eofchar \x1a
+ fconfigure $f -eofchar \x1A
set x [list [gets $f line] $line [gets $f line] $line]
close $f
set x
@@ -512,7 +512,7 @@ test io-6.9 {Tcl_GetsObj: remember if EOF is seen} {
puts $f "abcdefghijk\nwom\u001abat"
close $f
set f [open $path(test1)]
- fconfigure $f -eofchar \x1a
+ fconfigure $f -eofchar \x1A
set x [list [gets $f line] $line [gets $f line] $line]
close $f
set x
@@ -895,7 +895,7 @@ test io-6.43 {Tcl_GetsObj: input saw cr} {stdio testchannel fileevent} {
fconfigure $f -blocking 0
lappend x [gets $f line] $line [testchannel queuedcr $f]
fconfigure $f -blocking 1
- puts -nonewline $f "\nabcd\refg\x1a"
+ puts -nonewline $f "\nabcd\refg\x1A"
lappend x [gets $f line] $line [testchannel queuedcr $f]
lappend x [gets $f line] $line
close $f
@@ -912,7 +912,7 @@ test io-6.44 {Tcl_GetsObj: input saw cr, not followed by cr} {stdio testchannel
fconfigure $f -blocking 0
lappend x [gets $f line] $line [testchannel queuedcr $f]
fconfigure $f -blocking 1
- puts -nonewline $f "abcd\refg\x1a"
+ puts -nonewline $f "abcd\refg\x1A"
lappend x [gets $f line] $line [testchannel queuedcr $f]
lappend x [gets $f line] $line
close $f
@@ -946,7 +946,7 @@ test io-6.46 {Tcl_GetsObj: input saw cr, followed by just \n should give eof} {s
fconfigure $f -blocking 0
set x [list [gets $f line] $line [testchannel queuedcr $f]]
fconfigure $f -blocking 1
- puts -nonewline $f "\n\x1a"
+ puts -nonewline $f "\n\x1A"
lappend x [gets $f line] $line [testchannel queuedcr $f]
close $f
set x
@@ -1018,10 +1018,10 @@ test io-6.52 {Tcl_GetsObj: saw EOF character} {testchannel} {
set f [open $path(test1) w]
fconfigure $f -translation lf
- puts -nonewline $f "123456\x1ak9012345\r"
+ puts -nonewline $f "123456\x1Ak9012345\r"
close $f
set f [open $path(test1)]
- fconfigure $f -eofchar \x1a
+ fconfigure $f -eofchar \x1A
set x [list [gets $f] [testchannel queuedcr $f] [tell $f] [gets $f]]
close $f
set x
@@ -1240,7 +1240,7 @@ test io-8.7 {PeekAhead: cleanup} {stdio testchannel fileevent} {
puts -nonewline $f "abcdefghijklmno\r"
# here
set x [list [gets $f line] $line [testchannel queuedcr $f]]
- puts -nonewline $f "\x1a"
+ puts -nonewline $f "\x1A"
lappend x [gets $f line] $line
close $f
set x
@@ -1943,11 +1943,11 @@ test io-17.1 {GetChannelTable, DeleteChannelTable on std handles} {testchannel}
eof stdin
interp create x
set l ""
- lappend l [expr [testchannel refcount stdin] - $l1]
+ lappend l [expr {[testchannel refcount stdin] - $l1}]
x eval {eof stdin}
- lappend l [expr [testchannel refcount stdin] - $l1]
+ lappend l [expr {[testchannel refcount stdin] - $l1}]
interp delete x
- lappend l [expr [testchannel refcount stdin] - $l1]
+ lappend l [expr {[testchannel refcount stdin] - $l1}]
set l
} {0 1 0}
test io-17.2 {GetChannelTable, DeleteChannelTable on std handles} {testchannel} {
@@ -1955,11 +1955,11 @@ test io-17.2 {GetChannelTable, DeleteChannelTable on std handles} {testchannel}
eof stdin
interp create x
set l ""
- lappend l [expr [testchannel refcount stdout] - $l1]
+ lappend l [expr {[testchannel refcount stdout] - $l1}]
x eval {eof stdout}
- lappend l [expr [testchannel refcount stdout] - $l1]
+ lappend l [expr {[testchannel refcount stdout] - $l1}]
interp delete x
- lappend l [expr [testchannel refcount stdout] - $l1]
+ lappend l [expr {[testchannel refcount stdout] - $l1}]
set l
} {0 1 0}
test io-17.3 {GetChannelTable, DeleteChannelTable on std handles} {testchannel} {
@@ -1967,11 +1967,11 @@ test io-17.3 {GetChannelTable, DeleteChannelTable on std handles} {testchannel}
eof stdin
interp create x
set l ""
- lappend l [expr [testchannel refcount stderr] - $l1]
+ lappend l [expr {[testchannel refcount stderr] - $l1}]
x eval {eof stderr}
- lappend l [expr [testchannel refcount stderr] - $l1]
+ lappend l [expr {[testchannel refcount stderr] - $l1}]
interp delete x
- lappend l [expr [testchannel refcount stderr] - $l1]
+ lappend l [expr {[testchannel refcount stderr] - $l1}]
set l
} {0 1 0}
@@ -2074,7 +2074,7 @@ test io-20.2 {Tcl_CreateChannel: initial settings} {win} {
set x [list [fconfigure $f -eofchar] [fconfigure $f -translation]]
close $f
set x
-} [list [list \x1a ""] {auto crlf}]
+} [list [list \x1A ""] {auto crlf}]
test io-20.3 {Tcl_CreateChannel: initial settings} {unix} {
set f [open $path(test1) w+]
set x [list [fconfigure $f -eofchar] [fconfigure $f -translation]]
@@ -2161,7 +2161,7 @@ test io-26.1 {Tcl_GetChannelInstanceData} stdio {
# Don't care what pid is (but must be a number), just want to exercise it.
set f [open "|[list [interpreter] << exit]"]
- expr [pid $f]
+ expr {[pid $f]}
close $f
} {}
@@ -3162,7 +3162,7 @@ test io-30.13 {Tcl_Write crlf on block boundary, Tcl_Read auto} {
set c [read $f]
close $f
string length $c
-} [expr 700*15+1]
+} [expr {700*15+1}]
test io-30.14 {Tcl_Write crlf on block boundary, Tcl_Read crlf} {
file delete $path(test1)
set f [open $path(test1) w]
@@ -3178,7 +3178,7 @@ test io-30.14 {Tcl_Write crlf on block boundary, Tcl_Read crlf} {
set c [read $f]
close $f
string length $c
-} [expr 700*15+1]
+} [expr {700*15+1}]
test io-30.15 {Tcl_Write mixed, Tcl_Read auto} {
file delete $path(test1)
set f [open $path(test1) w]
@@ -3199,10 +3199,10 @@ test io-30.16 {Tcl_Write ^Z at end, Tcl_Read auto} {
file delete $path(test1)
set f [open $path(test1) w]
fconfigure $f -translation lf
- puts -nonewline $f hello\nthere\nand\rhere\n\x1a
+ puts -nonewline $f hello\nthere\nand\rhere\n\x1A
close $f
set f [open $path(test1) r]
- fconfigure $f -eofchar \x1a -translation auto
+ fconfigure $f -eofchar \x1A -translation auto
set c [read $f]
close $f
set c
@@ -3214,11 +3214,11 @@ here
test io-30.17 {Tcl_Write, implicit ^Z at end, Tcl_Read auto} {win} {
file delete $path(test1)
set f [open $path(test1) w]
- fconfigure $f -eofchar \x1a -translation lf
+ fconfigure $f -eofchar \x1A -translation lf
puts $f hello\nthere\nand\rhere
close $f
set f [open $path(test1) r]
- fconfigure $f -eofchar \x1a -translation auto
+ fconfigure $f -eofchar \x1A -translation auto
set c [read $f]
close $f
set c
@@ -3235,7 +3235,7 @@ test io-30.18 {Tcl_Write, ^Z in middle, Tcl_Read auto} {
puts $f $s
close $f
set f [open $path(test1) r]
- fconfigure $f -eofchar \x1a -translation auto
+ fconfigure $f -eofchar \x1A -translation auto
set l ""
lappend l [gets $f]
lappend l [gets $f]
@@ -3255,7 +3255,7 @@ test io-30.19 {Tcl_Write, ^Z no newline in middle, Tcl_Read auto} {
puts $f $s
close $f
set f [open $path(test1) r]
- fconfigure $f -eofchar \x1a -translation auto
+ fconfigure $f -eofchar \x1A -translation auto
set l ""
lappend l [gets $f]
lappend l [gets $f]
@@ -3288,7 +3288,7 @@ test io-30.20 {Tcl_Write, ^Z in middle ignored, Tcl_Read lf} {
lappend l [eof $f]
close $f
set l
-} "abc def 0 \x1aghi 0 qrs 0 {} 1"
+} "abc def 0 \x1Aghi 0 qrs 0 {} 1"
test io-30.21 {Tcl_Write, ^Z in middle ignored, Tcl_Read cr} {
file delete $path(test1)
set f [open $path(test1) w]
@@ -3300,7 +3300,7 @@ test io-30.21 {Tcl_Write, ^Z in middle ignored, Tcl_Read cr} {
fconfigure $f -translation cr -eofchar {}
set l ""
set x [gets $f]
- lappend l [string compare $x "abc\ndef\n\x1aghi\nqrs\n"]
+ lappend l [string compare $x "abc\ndef\n\x1Aghi\nqrs\n"]
lappend l [eof $f]
lappend l [gets $f]
lappend l [eof $f]
@@ -3318,7 +3318,7 @@ test io-30.22 {Tcl_Write, ^Z in middle ignored, Tcl_Read crlf} {
fconfigure $f -translation crlf -eofchar {}
set l ""
set x [gets $f]
- lappend l [string compare $x "abc\ndef\n\x1aghi\nqrs\n"]
+ lappend l [string compare $x "abc\ndef\n\x1Aghi\nqrs\n"]
lappend l [eof $f]
lappend l [gets $f]
lappend l [eof $f]
@@ -3333,7 +3333,7 @@ test io-30.23 {Tcl_Write lf, ^Z in middle, Tcl_Read auto} {
puts $f $c
close $f
set f [open $path(test1) r]
- fconfigure $f -translation auto -eofchar \x1a
+ fconfigure $f -translation auto -eofchar \x1A
set c [string length [read $f]]
set e [eof $f]
close $f
@@ -3347,7 +3347,7 @@ test io-30.24 {Tcl_Write lf, ^Z in middle, Tcl_Read lf} {
puts $f $c
close $f
set f [open $path(test1) r]
- fconfigure $f -translation lf -eofchar \x1a
+ fconfigure $f -translation lf -eofchar \x1A
set c [string length [read $f]]
set e [eof $f]
close $f
@@ -3361,7 +3361,7 @@ test io-30.25 {Tcl_Write cr, ^Z in middle, Tcl_Read auto} {
puts $f $c
close $f
set f [open $path(test1) r]
- fconfigure $f -translation auto -eofchar \x1a
+ fconfigure $f -translation auto -eofchar \x1A
set c [string length [read $f]]
set e [eof $f]
close $f
@@ -3375,7 +3375,7 @@ test io-30.26 {Tcl_Write cr, ^Z in middle, Tcl_Read cr} {
puts $f $c
close $f
set f [open $path(test1) r]
- fconfigure $f -translation cr -eofchar \x1a
+ fconfigure $f -translation cr -eofchar \x1A
set c [string length [read $f]]
set e [eof $f]
close $f
@@ -3389,7 +3389,7 @@ test io-30.27 {Tcl_Write crlf, ^Z in middle, Tcl_Read auto} {
puts $f $c
close $f
set f [open $path(test1) r]
- fconfigure $f -translation auto -eofchar \x1a
+ fconfigure $f -translation auto -eofchar \x1A
set c [string length [read $f]]
set e [eof $f]
close $f
@@ -3403,7 +3403,7 @@ test io-30.28 {Tcl_Write crlf, ^Z in middle, Tcl_Read crlf} {
puts $f $c
close $f
set f [open $path(test1) r]
- fconfigure $f -translation crlf -eofchar \x1a
+ fconfigure $f -translation crlf -eofchar \x1A
set c [string length [read $f]]
set e [eof $f]
close $f
@@ -3736,7 +3736,7 @@ test io-31.18 {Tcl_Write ^Z at end, Tcl_Gets auto} {
puts $f $s
close $f
set f [open $path(test1) r]
- fconfigure $f -eofchar \x1a -translation auto
+ fconfigure $f -eofchar \x1A -translation auto
set l ""
lappend l [gets $f]
lappend l [gets $f]
@@ -3751,11 +3751,11 @@ test io-31.18 {Tcl_Write ^Z at end, Tcl_Gets auto} {
test io-31.19 {Tcl_Write, implicit ^Z at end, Tcl_Gets auto} {
file delete $path(test1)
set f [open $path(test1) w]
- fconfigure $f -eofchar \x1a -translation lf
+ fconfigure $f -eofchar \x1A -translation lf
puts $f hello\nthere\nand\rhere
close $f
set f [open $path(test1) r]
- fconfigure $f -eofchar \x1a -translation auto
+ fconfigure $f -eofchar \x1A -translation auto
set l ""
lappend l [gets $f]
lappend l [gets $f]
@@ -3775,7 +3775,7 @@ test io-31.20 {Tcl_Write, ^Z in middle, Tcl_Gets auto, eofChar} {
puts $f $s
close $f
set f [open $path(test1) r]
- fconfigure $f -eofchar \x1a
+ fconfigure $f -eofchar \x1A
fconfigure $f -translation auto
set l ""
lappend l [gets $f]
@@ -3794,7 +3794,7 @@ test io-31.21 {Tcl_Write, no newline ^Z in middle, Tcl_Gets auto, eofChar} {
puts $f $s
close $f
set f [open $path(test1) r]
- fconfigure $f -eofchar \x1a -translation auto
+ fconfigure $f -eofchar \x1A -translation auto
set l ""
lappend l [gets $f]
lappend l [gets $f]
@@ -3825,7 +3825,7 @@ test io-31.22 {Tcl_Write, ^Z in middle ignored, Tcl_Gets lf} {
lappend l [eof $f]
close $f
set l
-} "abc def 0 \x1aqrs 0 tuv 0 {} 1"
+} "abc def 0 \x1Aqrs 0 tuv 0 {} 1"
test io-31.23 {Tcl_Write, ^Z in middle ignored, Tcl_Gets cr} {
file delete $path(test1)
set f [open $path(test1) w]
@@ -3847,7 +3847,7 @@ test io-31.23 {Tcl_Write, ^Z in middle ignored, Tcl_Gets cr} {
lappend l [eof $f]
close $f
set l
-} "abc def 0 \x1aqrs 0 tuv 0 {} 1"
+} "abc def 0 \x1Aqrs 0 tuv 0 {} 1"
test io-31.24 {Tcl_Write, ^Z in middle ignored, Tcl_Gets crlf} {
file delete $path(test1)
set f [open $path(test1) w]
@@ -3869,7 +3869,7 @@ test io-31.24 {Tcl_Write, ^Z in middle ignored, Tcl_Gets crlf} {
lappend l [eof $f]
close $f
set l
-} "abc def 0 \x1aqrs 0 tuv 0 {} 1"
+} "abc def 0 \x1Aqrs 0 tuv 0 {} 1"
test io-31.25 {Tcl_Write lf, ^Z in middle, Tcl_Gets auto} {
file delete $path(test1)
set f [open $path(test1) w]
@@ -3878,7 +3878,7 @@ test io-31.25 {Tcl_Write lf, ^Z in middle, Tcl_Gets auto} {
puts $f $s
close $f
set f [open $path(test1) r]
- fconfigure $f -translation auto -eofchar \x1a
+ fconfigure $f -translation auto -eofchar \x1A
set l ""
lappend l [gets $f]
lappend l [gets $f]
@@ -3896,7 +3896,7 @@ test io-31.26 {Tcl_Write lf, ^Z in middle, Tcl_Gets lf} {
puts $f $s
close $f
set f [open $path(test1) r]
- fconfigure $f -translation lf -eofchar \x1a
+ fconfigure $f -translation lf -eofchar \x1A
set l ""
lappend l [gets $f]
lappend l [gets $f]
@@ -3914,7 +3914,7 @@ test io-31.27 {Tcl_Write cr, ^Z in middle, Tcl_Gets auto} {
puts $f $s
close $f
set f [open $path(test1) r]
- fconfigure $f -translation auto -eofchar \x1a
+ fconfigure $f -translation auto -eofchar \x1A
set l ""
lappend l [gets $f]
lappend l [gets $f]
@@ -3932,7 +3932,7 @@ test io-31.28 {Tcl_Write cr, ^Z in middle, Tcl_Gets cr} {
puts $f $s
close $f
set f [open $path(test1) r]
- fconfigure $f -translation cr -eofchar \x1a
+ fconfigure $f -translation cr -eofchar \x1A
set l ""
lappend l [gets $f]
lappend l [gets $f]
@@ -3950,7 +3950,7 @@ test io-31.29 {Tcl_Write crlf, ^Z in middle, Tcl_Gets auto} {
puts $f $s
close $f
set f [open $path(test1) r]
- fconfigure $f -translation auto -eofchar \x1a
+ fconfigure $f -translation auto -eofchar \x1A
set l ""
lappend l [gets $f]
lappend l [gets $f]
@@ -3968,7 +3968,7 @@ test io-31.30 {Tcl_Write crlf, ^Z in middle, Tcl_Gets crlf} {
puts $f $s
close $f
set f [open $path(test1) r]
- fconfigure $f -translation crlf -eofchar \x1a
+ fconfigure $f -translation crlf -eofchar \x1A
set l ""
lappend l [gets $f]
lappend l [gets $f]
@@ -3996,7 +3996,7 @@ test io-31.31 {Tcl_Write crlf on block boundary, Tcl_Gets crlf} {
}
close $f
string length $c
-} [expr 700*15+1]
+} [expr {700*15+1}]
test io-31.32 {Tcl_Write crlf on block boundary, Tcl_Gets auto} {
file delete $path(test1)
set f [open $path(test1) w]
@@ -4015,7 +4015,7 @@ test io-31.32 {Tcl_Write crlf on block boundary, Tcl_Gets auto} {
}
close $f
string length $c
-} [expr 700*15+1]
+} [expr {700*15+1}]
# Test Tcl_Read and buffering.
@@ -4849,12 +4849,12 @@ test io-35.5 {Tcl_Eof, eof detection on nonblocking pipe} stdio {
test io-35.6 {Tcl_Eof, eof char, lf write, auto read} {
file delete $path(test1)
set f [open $path(test1) w]
- fconfigure $f -translation lf -eofchar \x1a
+ fconfigure $f -translation lf -eofchar \x1A
puts $f abc\ndef
close $f
set s [file size $path(test1)]
set f [open $path(test1) r]
- fconfigure $f -translation auto -eofchar \x1a
+ fconfigure $f -translation auto -eofchar \x1A
set l [string length [read $f]]
set e [eof $f]
close $f
@@ -4863,12 +4863,12 @@ test io-35.6 {Tcl_Eof, eof char, lf write, auto read} {
test io-35.7 {Tcl_Eof, eof char, lf write, lf read} {
file delete $path(test1)
set f [open $path(test1) w]
- fconfigure $f -translation lf -eofchar \x1a
+ fconfigure $f -translation lf -eofchar \x1A
puts $f abc\ndef
close $f
set s [file size $path(test1)]
set f [open $path(test1) r]
- fconfigure $f -translation lf -eofchar \x1a
+ fconfigure $f -translation lf -eofchar \x1A
set l [string length [read $f]]
set e [eof $f]
close $f
@@ -4877,12 +4877,12 @@ test io-35.7 {Tcl_Eof, eof char, lf write, lf read} {
test io-35.8 {Tcl_Eof, eof char, cr write, auto read} {
file delete $path(test1)
set f [open $path(test1) w]
- fconfigure $f -translation cr -eofchar \x1a
+ fconfigure $f -translation cr -eofchar \x1A
puts $f abc\ndef
close $f
set s [file size $path(test1)]
set f [open $path(test1) r]
- fconfigure $f -translation auto -eofchar \x1a
+ fconfigure $f -translation auto -eofchar \x1A
set l [string length [read $f]]
set e [eof $f]
close $f
@@ -4891,12 +4891,12 @@ test io-35.8 {Tcl_Eof, eof char, cr write, auto read} {
test io-35.9 {Tcl_Eof, eof char, cr write, cr read} {
file delete $path(test1)
set f [open $path(test1) w]
- fconfigure $f -translation cr -eofchar \x1a
+ fconfigure $f -translation cr -eofchar \x1A
puts $f abc\ndef
close $f
set s [file size $path(test1)]
set f [open $path(test1) r]
- fconfigure $f -translation cr -eofchar \x1a
+ fconfigure $f -translation cr -eofchar \x1A
set l [string length [read $f]]
set e [eof $f]
close $f
@@ -4905,12 +4905,12 @@ test io-35.9 {Tcl_Eof, eof char, cr write, cr read} {
test io-35.10 {Tcl_Eof, eof char, crlf write, auto read} {
file delete $path(test1)
set f [open $path(test1) w]
- fconfigure $f -translation crlf -eofchar \x1a
+ fconfigure $f -translation crlf -eofchar \x1A
puts $f abc\ndef
close $f
set s [file size $path(test1)]
set f [open $path(test1) r]
- fconfigure $f -translation auto -eofchar \x1a
+ fconfigure $f -translation auto -eofchar \x1A
set l [string length [read $f]]
set e [eof $f]
close $f
@@ -4919,12 +4919,12 @@ test io-35.10 {Tcl_Eof, eof char, crlf write, auto read} {
test io-35.11 {Tcl_Eof, eof char, crlf write, crlf read} {
file delete $path(test1)
set f [open $path(test1) w]
- fconfigure $f -translation crlf -eofchar \x1a
+ fconfigure $f -translation crlf -eofchar \x1A
puts $f abc\ndef
close $f
set s [file size $path(test1)]
set f [open $path(test1) r]
- fconfigure $f -translation crlf -eofchar \x1a
+ fconfigure $f -translation crlf -eofchar \x1A
set l [string length [read $f]]
set e [eof $f]
close $f
@@ -4939,7 +4939,7 @@ test io-35.12 {Tcl_Eof, eof char in middle, lf write, auto read} {
close $f
set c [file size $path(test1)]
set f [open $path(test1) r]
- fconfigure $f -translation auto -eofchar \x1a
+ fconfigure $f -translation auto -eofchar \x1A
set l [string length [read $f]]
set e [eof $f]
close $f
@@ -4954,7 +4954,7 @@ test io-35.13 {Tcl_Eof, eof char in middle, lf write, lf read} {
close $f
set c [file size $path(test1)]
set f [open $path(test1) r]
- fconfigure $f -translation lf -eofchar \x1a
+ fconfigure $f -translation lf -eofchar \x1A
set l [string length [read $f]]
set e [eof $f]
close $f
@@ -4969,7 +4969,7 @@ test io-35.14 {Tcl_Eof, eof char in middle, cr write, auto read} {
close $f
set c [file size $path(test1)]
set f [open $path(test1) r]
- fconfigure $f -translation auto -eofchar \x1a
+ fconfigure $f -translation auto -eofchar \x1A
set l [string length [read $f]]
set e [eof $f]
close $f
@@ -4984,7 +4984,7 @@ test io-35.15 {Tcl_Eof, eof char in middle, cr write, cr read} {
close $f
set c [file size $path(test1)]
set f [open $path(test1) r]
- fconfigure $f -translation cr -eofchar \x1a
+ fconfigure $f -translation cr -eofchar \x1A
set l [string length [read $f]]
set e [eof $f]
close $f
@@ -4999,7 +4999,7 @@ test io-35.16 {Tcl_Eof, eof char in middle, crlf write, auto read} {
close $f
set c [file size $path(test1)]
set f [open $path(test1) r]
- fconfigure $f -translation auto -eofchar \x1a
+ fconfigure $f -translation auto -eofchar \x1A
set l [string length [read $f]]
set e [eof $f]
close $f
@@ -5014,7 +5014,7 @@ test io-35.17 {Tcl_Eof, eof char in middle, crlf write, crlf read} {
close $f
set c [file size $path(test1)]
set f [open $path(test1) r]
- fconfigure $f -translation crlf -eofchar \x1a
+ fconfigure $f -translation crlf -eofchar \x1A
set l [string length [read $f]]
set e [eof $f]
close $f
@@ -5037,12 +5037,12 @@ test io-35.18 {Tcl_Eof, eof char, cr write, crlf read} -body {
test io-35.18a {Tcl_Eof, eof char, cr write, crlf read} -body {
file delete $path(test1)
set f [open $path(test1) w]
- fconfigure $f -translation cr -eofchar \x1a
+ fconfigure $f -translation cr -eofchar \x1A
puts $f abc\ndef
close $f
set s [file size $path(test1)]
set f [open $path(test1) r]
- fconfigure $f -translation crlf -eofchar \x1a
+ fconfigure $f -translation crlf -eofchar \x1A
set l [string length [set in [read $f]]]
set e [eof $f]
close $f
@@ -5051,12 +5051,12 @@ test io-35.18a {Tcl_Eof, eof char, cr write, crlf read} -body {
test io-35.18b {Tcl_Eof, eof char, cr write, crlf read} -body {
file delete $path(test1)
set f [open $path(test1) w]
- fconfigure $f -translation cr -eofchar \x1a
+ fconfigure $f -translation cr -eofchar \x1A
puts $f {}
close $f
set s [file size $path(test1)]
set f [open $path(test1) r]
- fconfigure $f -translation crlf -eofchar \x1a
+ fconfigure $f -translation crlf -eofchar \x1A
set l [string length [set in [read $f]]]
set e [eof $f]
close $f
@@ -5085,7 +5085,7 @@ test io-35.19 {Tcl_Eof, eof char in middle, cr write, crlf read} -body {
close $f
set c [file size $path(test1)]
set f [open $path(test1) r]
- fconfigure $f -translation crlf -eofchar \x1a
+ fconfigure $f -translation crlf -eofchar \x1A
set l [string length [set in [read $f]]]
set e [eof $f]
close $f
@@ -5100,7 +5100,7 @@ test io-35.20 {Tcl_Eof, eof char in middle, cr write, crlf read} {
close $f
set c [file size $path(test1)]
set f [open $path(test1) r]
- fconfigure $f -translation crlf -eofchar \x1a
+ fconfigure $f -translation crlf -eofchar \x1A
set l [string length [set in [read $f]]]
set e [eof $f]
close $f
@@ -5641,7 +5641,7 @@ test io-40.2 {POSIX open access modes: CREAT} {unix} {
file delete $path(test3)
set f [open $path(test3) {WRONLY CREAT} 0o600]
file stat $path(test3) stats
- set x [format "0o%o" [expr $stats(mode)&0o777]]
+ set x [format "0o%o" [expr {$stats(mode)&0o777}]]
puts $f "line 1"
close $f
set f [open $path(test3) r]
@@ -5655,8 +5655,8 @@ test io-40.3 {POSIX open access modes: CREAT} {unix umask} {
set f [open $path(test3) {WRONLY CREAT}]
close $f
file stat $path(test3) stats
- format "%#o" [expr $stats(mode)&0o777]
-} [format %#4o [expr {0o666 & ~ $umaskValue}]]
+ format "0o%03o" [expr {$stats(mode)&0o777}]
+} [format "0o%03o" [expr {0o666 & ~ $umaskValue}]]
test io-40.4 {POSIX open access modes: CREAT} {
file delete $path(test3)
set f [open $path(test3) w]
@@ -6299,7 +6299,7 @@ test io-48.4 {lf write, testing readability, ^Z termination, auto read mode} {fi
set c 0
set l ""
set f [open $path(test1) r]
- fconfigure $f -translation auto -eofchar \x1a
+ fconfigure $f -translation auto -eofchar \x1A
fileevent $f readable [namespace code [list consume $f]]
variable x
vwait [namespace which -variable x]
@@ -6327,7 +6327,7 @@ test io-48.5 {lf write, testing readability, ^Z in middle, auto read mode} {file
set c 0
set l ""
set f [open $path(test1) r]
- fconfigure $f -eofchar \x1a -translation auto
+ fconfigure $f -eofchar \x1A -translation auto
fileevent $f readable [namespace code [list consume $f]]
variable x
vwait [namespace which -variable x]
@@ -6355,7 +6355,7 @@ test io-48.6 {cr write, testing readability, ^Z termination, auto read mode} {fi
set c 0
set l ""
set f [open $path(test1) r]
- fconfigure $f -translation auto -eofchar \x1a
+ fconfigure $f -translation auto -eofchar \x1A
fileevent $f readable [namespace code [list consume $f]]
variable x
vwait [namespace which -variable x]
@@ -6383,7 +6383,7 @@ test io-48.7 {cr write, testing readability, ^Z in middle, auto read mode} {file
set c 0
set l ""
set f [open $path(test1) r]
- fconfigure $f -eofchar \x1a -translation auto
+ fconfigure $f -eofchar \x1A -translation auto
fileevent $f readable [namespace code [list consume $f]]
variable x
vwait [namespace which -variable x]
@@ -6411,7 +6411,7 @@ test io-48.8 {crlf write, testing readability, ^Z termination, auto read mode} {
set c 0
set l ""
set f [open $path(test1) r]
- fconfigure $f -translation auto -eofchar \x1a
+ fconfigure $f -translation auto -eofchar \x1A
fileevent $f readable [namespace code [list consume $f]]
variable x
vwait [namespace which -variable x]
@@ -6439,7 +6439,7 @@ test io-48.9 {crlf write, testing readability, ^Z in middle, auto read mode} {fi
set c 0
set l ""
set f [open $path(test1) r]
- fconfigure $f -eofchar \x1a -translation auto
+ fconfigure $f -eofchar \x1A -translation auto
fileevent $f readable [namespace code [list consume $f]]
variable x
vwait [namespace which -variable x]
@@ -6467,7 +6467,7 @@ test io-48.10 {lf write, testing readability, ^Z in middle, lf read mode} {filee
set c 0
set l ""
set f [open $path(test1) r]
- fconfigure $f -eofchar \x1a -translation lf
+ fconfigure $f -eofchar \x1A -translation lf
fileevent $f readable [namespace code [list consume $f]]
variable x
vwait [namespace which -variable x]
@@ -6495,7 +6495,7 @@ test io-48.11 {lf write, testing readability, ^Z termination, lf read mode} {fil
set c 0
set l ""
set f [open $path(test1) r]
- fconfigure $f -translation lf -eofchar \x1a
+ fconfigure $f -translation lf -eofchar \x1A
fileevent $f readable [namespace code [list consume $f]]
variable x
vwait [namespace which -variable x]
@@ -6523,7 +6523,7 @@ test io-48.12 {cr write, testing readability, ^Z in middle, cr read mode} {filee
set c 0
set l ""
set f [open $path(test1) r]
- fconfigure $f -eofchar \x1a -translation cr
+ fconfigure $f -eofchar \x1A -translation cr
fileevent $f readable [namespace code [list consume $f]]
variable x
vwait [namespace which -variable x]
@@ -6551,7 +6551,7 @@ test io-48.13 {cr write, testing readability, ^Z termination, cr read mode} {fil
set c 0
set l ""
set f [open $path(test1) r]
- fconfigure $f -translation cr -eofchar \x1a
+ fconfigure $f -translation cr -eofchar \x1A
fileevent $f readable [namespace code [list consume $f]]
variable x
vwait [namespace which -variable x]
@@ -6579,7 +6579,7 @@ test io-48.14 {crlf write, testing readability, ^Z in middle, crlf read mode} {f
set c 0
set l ""
set f [open $path(test1) r]
- fconfigure $f -eofchar \x1a -translation crlf
+ fconfigure $f -eofchar \x1A -translation crlf
fileevent $f readable [namespace code [list consume $f]]
variable x
vwait [namespace which -variable x]
@@ -6607,7 +6607,7 @@ test io-48.15 {crlf write, testing readability, ^Z termi, crlf read mode} {filee
set c 0
set l ""
set f [open $path(test1) r]
- fconfigure $f -translation crlf -eofchar \x1a
+ fconfigure $f -translation crlf -eofchar \x1A
fileevent $f readable [namespace code [list consume $f]]
variable x
vwait [namespace which -variable x]
@@ -7093,7 +7093,7 @@ test io-52.6 {TclCopyChannel} {fcopy} {
set f2 [open $path(test1) w]
fconfigure $f1 -translation lf -blocking 0
fconfigure $f2 -translation lf -blocking 0
- set s0 [fcopy $f1 $f2 -size [expr [file size $thisScript] + 5]]
+ set s0 [fcopy $f1 $f2 -size [expr {[file size $thisScript] + 5}]]
set result [list [fconfigure $f1 -blocking] [fconfigure $f2 -blocking]]
close $f1
close $f2
@@ -7589,7 +7589,7 @@ test io-53.7 {CopyData: Flooding fcopy from pipe} {stdio fcopy} {
catch {close $in}
close $out
# -1=error 0=script error N=number of bytes
- expr ($fcopyTestDone == 0) ? $fcopyTestCount : -1
+ expr {($fcopyTestDone == 0) ? $fcopyTestCount : -1}
} {3450}
test io-53.8 {CopyData: async callback and error handling, Bug 1932639} -setup {
# copy progress callback. errors out intentionally
diff --git a/tests/iogt.test b/tests/iogt.test
index 269a0ba..3cac2cf 100644
--- a/tests/iogt.test
+++ b/tests/iogt.test
@@ -5,7 +5,7 @@
#
# See the file "license.terms" for information on usage and redistribution of
# this file, and for a DISCLAIMER OF ALL WARRANTIES.
-#
+#
# Copyright (c) 2000 Ajuba Solutions.
# Copyright (c) 2000 Andreas Kupries.
# All rights reserved.
diff --git a/tests/lindex.test b/tests/lindex.test
index dadf275..0b8c327 100644
--- a/tests/lindex.test
+++ b/tests/lindex.test
@@ -441,7 +441,7 @@ test lindex-16.7 {data reuse} {
test lindex-17.0 {Bug 1718580} {*}{
-body {
lindex {} end foo
- }
+ }
-match glob
-result {bad index "foo"*}
-returnCodes 1
@@ -450,7 +450,7 @@ test lindex-17.0 {Bug 1718580} {*}{
test lindex-17.1 {Bug 1718580} {*}{
-body {
lindex a end foo
- }
+ }
-match glob
-result {bad index "foo"*}
-returnCodes 1
diff --git a/tests/lmap.test b/tests/lmap.test
index 432e195..d986ee2 100644
--- a/tests/lmap.test
+++ b/tests/lmap.test
@@ -220,10 +220,10 @@ test lmap-4.14 {lmap errors} -returnCodes error -body {
} -result {list element in braces followed by "3" instead of space}
unset -nocomplain a
test lmap-4.15 {lmap errors} {
- apply {{} {
+ apply {{} {
set a(0) 44
- list [catch {lmap a {1 2 3} {}} msg o] $msg $::errorInfo
- }}
+ list [catch {lmap a {1 2 3} {}} msg o] $msg $::errorInfo
+ }}
} {1 {can't set "a": variable is array} {can't set "a": variable is array
while executing
"lmap a {1 2 3} {}"}}
@@ -357,7 +357,7 @@ test lmap-7.2 {noncompiled lmap and shared variable or value list objects that a
} -body {
lmap {12.0} {a b c} {
set x 12.0
- set x [expr $x + 1]
+ set x [expr {$x + 1}]
}
} -result {13.0 13.0 13.0}
# Test for incorrect "double evaluation" semantics
diff --git a/tests/lrange.test b/tests/lrange.test
index 4bce1b3..6765038 100644
--- a/tests/lrange.test
+++ b/tests/lrange.test
@@ -69,7 +69,7 @@ test lrange-1.15 {range of list elements} {
} {"a b \{\ "}
# emacs highlighting bug workaround --> "
test lrange-1.16 {list element quoting} {
- lrange {[append a .b]} 0 end
+ lrange {[append a .b]} 0 end
} {{[append} a .b\]}
test lrange-2.1 {error conditions} {
diff --git a/tests/lrepeat.test b/tests/lrepeat.test
index 61f2b62..f62f35f 100644
--- a/tests/lrepeat.test
+++ b/tests/lrepeat.test
@@ -40,7 +40,7 @@ test lrepeat-1.4 {error cases} {
lrepeat -3 1
}
-returnCodes 1
- -result {bad count "-3": must be integer >= 0}
+ -result {bad count "-3": must be integer >= 0}
}
test lrepeat-1.5 {Accept zero repetitions (TIP 323)} {
-body {
@@ -53,7 +53,7 @@ test lrepeat-1.6 {error cases} {
lrepeat 3.5 1
}
-returnCodes 1
- -result {expected integer but got "3.5"}
+ -result {expected integer but got "3.5"}
}
test lrepeat-1.7 {Accept zero repetitions (TIP 323)} {
-body {
diff --git a/tests/misc.test b/tests/misc.test
index 8b6e1b7..8f8516e 100644
--- a/tests/misc.test
+++ b/tests/misc.test
@@ -25,7 +25,7 @@ testConstraint testhashsystemhash [llength [info commands testhashsystemhash]]
test misc-1.1 {error in variable ref. in command in array reference} {
proc tstProc {} {
global a
-
+
set tst $a([winfo name $zz])
# this is a bogus comment
# this is a bogus comment
@@ -42,7 +42,7 @@ test misc-1.1 {error in variable ref. in command in array reference} {
test misc-1.2 {error in variable ref. in command in array reference} {
proc tstProc {} "
global a
-
+
set tst \$a(\[winfo name \$\{zz)
# this is a bogus comment
# this is a bogus comment
diff --git a/tests/nre.test b/tests/nre.test
index e420b06..7cf06d1 100644
--- a/tests/nre.test
+++ b/tests/nre.test
@@ -29,9 +29,9 @@ if {[testConstraint testnrelevels]} {
namespace path ::tcl::mathop
#
# [testnrelevels] returns a 6-list with: C-stack depth, iPtr->numlevels,
- # cmdFrame level, callFrame level, tosPtr and callback depth
+ # cmdFrame level, callFrame level, tosPtr and callback depth
#
- variable last [testnrelevels]
+ variable last [testnrelevels]
proc depthDiff {} {
variable last
set depth [testnrelevels]
@@ -329,7 +329,7 @@ test nre-8.1 {nre and {*}} -body {
} -cleanup {
rename inner {}
rename outer {}
-} -result {1 1 1}
+} -result {1 1 1}
test nre-8.2 {nre and {*}, [Bug 2415422]} -body {
# force an expansion that grows the evaluation stack, check that nre
# adapts the bcFramePtr. This causes an NRE assertion to fail if it is not
diff --git a/tests/obj.test b/tests/obj.test
index e5fec9a..e49a908 100644
--- a/tests/obj.test
+++ b/tests/obj.test
@@ -26,7 +26,7 @@ testConstraint wideBiggerThanInt [expr {wide(0x80000000) != int(0x80000000)}]
test obj-1.1 {Tcl_AppendAllObjTypes, and InitTypeTable, Tcl_RegisterObjType} testobj {
set r 1
foreach {t} {
- {array search}
+ {array search}
bytearray
bytecode
cmdName
@@ -82,7 +82,7 @@ test obj-6.1 {Tcl_DuplicateObj, object has internal rep} testobj {
set result ""
lappend result [testobj freeallvars]
lappend result [testintobj set 1 47]
- lappend result [testobj duplicate 1 2]
+ lappend result [testobj duplicate 1 2]
lappend result [testintobj get 2]
lappend result [testobj refcount 1]
lappend result [testobj refcount 2]
@@ -91,7 +91,7 @@ test obj-6.2 {Tcl_DuplicateObj, "empty string" object} testobj {
set result ""
lappend result [testobj freeallvars]
lappend result [testobj newobj 1]
- lappend result [testobj duplicate 1 2]
+ lappend result [testobj duplicate 1 2]
lappend result [testintobj get 2]
lappend result [testobj refcount 1]
lappend result [testobj refcount 2]
diff --git a/tests/package.test b/tests/package.test
index a147457..641ce49 100644
--- a/tests/package.test
+++ b/tests/package.test
@@ -613,13 +613,13 @@ test package-3.54 {Tcl_PkgRequire procedure, coroutine support} -setup {
} -body {
coroutine coro1 apply {{} {
package ifneeded t 2.1 {
- yield
+ yield
package provide t 2.1
}
package require t 2.1
}}
list [catch {coro1} msg] $msg
-} -match glob -result {0 2.1}
+} -match glob -result {0 2.1}
test package-4.1 {Tcl_PackageCmd procedure} -returnCodes error -body {
diff --git a/tests/parse.test b/tests/parse.test
index 4370acb..39f3d1e 100644
--- a/tests/parse.test
+++ b/tests/parse.test
@@ -278,7 +278,7 @@ test parse-6.9 {ParseTokens procedure, error in command substitution} {
} {0}
test parse-6.10 {ParseTokens procedure, incomplete sub-command} {
info complete {puts [
- expr 1+1
+ expr {1+1}
#this is a comment ]}
} {0}
test parse-6.11 {ParseTokens procedure, memory allocation for big nested command} testparser {
@@ -485,7 +485,7 @@ test parse-10.3 {Tcl_EvalTokens, nested commands} testevalex {
} {8}
test parse-10.4 {Tcl_EvalTokens, nested commands} testevalex {
unset -nocomplain a
- list [catch {testevalex {concat xxx[expr $a]}} msg] $msg
+ list [catch {testevalex {concat xxx[expr {$a}]}} msg] $msg
} {1 {can't read "a": no such variable}}
test parse-10.5 {Tcl_EvalTokens, simple variables} testevalex {
set a hello
@@ -518,7 +518,7 @@ test parse-10.11 {Tcl_EvalTokens, object values} testevalex {
testevalex {concat $a$a$a}
} {123123123}
test parse-10.12 {Tcl_EvalTokens, object values} testevalex {
- testevalex {concat [expr 2][expr 4][expr 6]}
+ testevalex {concat [expr {2}][expr {4}][expr {6}]}
} {246}
test parse-10.13 {Tcl_EvalTokens, string values} testevalex {
testevalex {concat {a" b"}}
@@ -984,26 +984,26 @@ test parse-18.14 {Tcl_SubstObj, exception handling} {
subst {abc,[break],def}
} {abc,}
test parse-18.15 {Tcl_SubstObj, exception handling} {
- subst {abc,[continue; expr 1+2],def}
+ subst {abc,[continue; expr {1+2}],def}
} {abc,,def}
test parse-18.16 {Tcl_SubstObj, exception handling} {
- subst {abc,[return foo; expr 1+2],def}
+ subst {abc,[return foo; expr {1+2}],def}
} {abc,foo,def}
test parse-18.17 {Tcl_SubstObj, exception handling} {
- subst {abc,[return -code 10 foo; expr 1+2],def}
+ subst {abc,[return -code 10 foo; expr {1+2}],def}
} {abc,foo,def}
test parse-18.18 {Tcl_SubstObj, exception handling} {
subst {abc,[break; set {} {}{}],def}
} {abc,}
test parse-18.19 {Tcl_SubstObj, exception handling} {
- list [catch {subst {abc,[continue; expr 1+2; set {} {}{}],def}} msg] $msg
+ list [catch {subst {abc,[continue; expr {1+2}; set {} {}{}],def}} msg] $msg
} [list 1 "extra characters after close-brace"]
test parse-18.20 {Tcl_SubstObj, exception handling} {
- list [catch {subst {abc,[return foo; expr 1+2; set {} {}{}],def}} msg] $msg
+ list [catch {subst {abc,[return foo; expr {1+2}; set {} {}{}],def}} msg] $msg
} [list 1 "extra characters after close-brace"]
test parse-18.21 {Tcl_SubstObj, exception handling} {
list [catch {
- subst {abc,[return -code 10 foo; expr 1+2; set {} {}{}],def}
+ subst {abc,[return -code 10 foo; expr {1+2}; set {} {}{}],def}
} msg] $msg
} [list 1 "extra characters after close-brace"]
diff --git a/tests/parseExpr.test b/tests/parseExpr.test
index bb0920e..aded88a 100644
--- a/tests/parseExpr.test
+++ b/tests/parseExpr.test
@@ -770,11 +770,11 @@ test parseExpr-21.8 {error messages} -body {
expr {0o8x}
} -returnCodes error -match glob -result {*invalid octal number*}
test parseExpr-21.9 {error messages} -body {
- expr {"}
+ expr {"}
} -returnCodes error -result {missing "
in expression """}
test parseExpr-21.10 {error messages} -body {
- expr \{
+ expr \{
} -returnCodes error -result "missing close-brace
in expression \"\{\""
test parseExpr-21.11 {error messages} -body {
diff --git a/tests/parseOld.test b/tests/parseOld.test
index 7218092..0ac036b 100644
--- a/tests/parseOld.test
+++ b/tests/parseOld.test
@@ -455,80 +455,14 @@ test parseOld-12.4 {comments} {
test parseOld-13.1 {comments at the end of a bracketed script} {
set x "[
-expr 1+1
+expr {1+1}
# skip this!
]"
} {2}
-test parseOld-14.1 {TclWordEnd procedure} {testwordend} {
- testwordend " \n abc"
-} {c}
-test parseOld-14.2 {TclWordEnd procedure} {testwordend} {
- testwordend " \\\n"
-} {}
-test parseOld-14.3 {TclWordEnd procedure} {testwordend} {
- testwordend " \\\n "
-} { }
-test parseOld-14.4 {TclWordEnd procedure} {testwordend} {
- testwordend {"abc"}
-} {"}
-#" Emacs formatting :^(
-test parseOld-14.5 {TclWordEnd procedure} {testwordend} {
- testwordend {{xyz}}
-} \}
-test parseOld-14.6 {TclWordEnd procedure} {testwordend} {
- testwordend {{a{}b{}\}} xyz}
-} "\} xyz"
-test parseOld-14.7 {TclWordEnd procedure} {testwordend} {
- testwordend {abc[this is a]def ghi}
-} {f ghi}
-test parseOld-14.8 {TclWordEnd procedure} {testwordend} {
- testwordend "puts\\\n\n "
-} "s\\\n\n "
-test parseOld-14.9 {TclWordEnd procedure} {testwordend} {
- testwordend "puts\\\n "
-} "s\\\n "
-test parseOld-14.10 {TclWordEnd procedure} {testwordend} {
- testwordend "puts\\\n xyz"
-} "s\\\n xyz"
-test parseOld-14.11 {TclWordEnd procedure} {testwordend} {
- testwordend {a$x.$y(a long index) foo}
-} ") foo"
-test parseOld-14.12 {TclWordEnd procedure} {testwordend} {
- testwordend {abc; def}
-} {; def}
-test parseOld-14.13 {TclWordEnd procedure} {testwordend} {
- testwordend {abc def}
-} {c def}
-test parseOld-14.14 {TclWordEnd procedure} {testwordend} {
- testwordend {abc def}
-} {c def}
-test parseOld-14.15 {TclWordEnd procedure} {testwordend} {
- testwordend "abc\ndef"
-} "c\ndef"
-test parseOld-14.16 {TclWordEnd procedure} {testwordend} {
- testwordend "abc"
-} {c}
-test parseOld-14.17 {TclWordEnd procedure} {testwordend} {
- testwordend "a\000bc"
-} {c}
-test parseOld-14.18 {TclWordEnd procedure} {testwordend} {
- testwordend \[a\000\]
-} {]}
-test parseOld-14.19 {TclWordEnd procedure} {testwordend} {
- testwordend \"a\000\"
-} {"}
-#" Emacs formatting :^(
-test parseOld-14.20 {TclWordEnd procedure} {testwordend} {
- testwordend a{\000}b
-} {b}
-test parseOld-14.21 {TclWordEnd procedure} {testwordend} {
- testwordend " \000b"
-} {b}
-
test parseOld-15.1 {TclScriptEnd procedure} {
info complete {puts [
- expr 1+1
+ expr {1+1}
#this is a comment ]}
} {0}
test parseOld-15.2 {TclScriptEnd procedure} {
diff --git a/tests/platform.test b/tests/platform.test
index e40ff39..042469b 100644
--- a/tests/platform.test
+++ b/tests/platform.test
@@ -54,12 +54,12 @@ test platform-2.1 {tcl_platform(wordSize) indicates size of native word} {
test platform-3.1 {CPU ID on Windows/UNIX} \
-constraints testCPUID \
- -body {
+ -body {
set cpudata [testcpuid 0]
binary format iii \
[lindex $cpudata 1] \
[lindex $cpudata 3] \
- [lindex $cpudata 2]
+ [lindex $cpudata 2]
} \
-match regexp \
-result {^(?:AuthenticAMD|CentaurHauls|CyrixInstead|GenuineIntel)$}
diff --git a/tests/regexp.test b/tests/regexp.test
index 563a5ee..e29cecf 100644
--- a/tests/regexp.test
+++ b/tests/regexp.test
@@ -491,7 +491,7 @@ test regexp-11.12 {regsub without final variable name returns value} {
} {a,bcd,c,ea,bcfd,cf,e}
# This test crashes on the Mac unless you increase the Stack Space to about 1
-# Meg. This is probably bigger than most users want...
+# Meg. This is probably bigger than most users want...
# 8.2.3 regexp reduced stack space requirements, but this should be
# tested again
test regexp-12.1 {Tcl_RegExpExec: large number of subexpressions} {macCrash} {
@@ -753,10 +753,10 @@ test regexp-19.2 {regsub null replacement} {
test regexp-20.1 {regsub shared object shimmering} {
# Bug #461322
- set a abcdefghijklmnopqurstuvwxyz
- set b $a
- set c abcdefghijklmnopqurstuvwxyz0123456789
- regsub $a $c $b d
+ set a abcdefghijklmnopqurstuvwxyz
+ set b $a
+ set c abcdefghijklmnopqurstuvwxyz0123456789
+ regsub $a $c $b d
list $d [string length $d] [string bytelength $d]
} [list abcdefghijklmnopqurstuvwxyz0123456789 37 37]
test regexp-20.2 {regsub shared object shimmering with -about} {
diff --git a/tests/regexpComp.test b/tests/regexpComp.test
index 2fd7f88..926d9ef 100644
--- a/tests/regexpComp.test
+++ b/tests/regexpComp.test
@@ -22,7 +22,7 @@ if {"::tcltest" ni [namespace children]} {
proc evalInProc { script } {
proc testProc {} $script
set status [catch {
- testProc
+ testProc
} result]
rename testProc {}
return $result
@@ -607,7 +607,7 @@ test regexpComp-11.8 {regsub errors, -start bad int check} {
} {1 {bad index "bogus": must be integer?[+-]integer? or end?[+-]integer?}}
# This test crashes on the Mac unless you increase the Stack Space to about 1
-# Meg. This is probably bigger than most users want...
+# Meg. This is probably bigger than most users want...
# 8.2.3 regexp reduced stack space requirements, but this should be
# tested again
test regexpComp-12.1 {Tcl_RegExpExec: large number of subexpressions} {macCrash} {
@@ -794,10 +794,10 @@ test regexpComp-19.1 {regsub null replacement} {
test regexpComp-20.1 {regsub shared object shimmering} {
evalInProc {
# Bug #461322
- set a abcdefghijklmnopqurstuvwxyz
- set b $a
- set c abcdefghijklmnopqurstuvwxyz0123456789
- regsub $a $c $b d
+ set a abcdefghijklmnopqurstuvwxyz
+ set b $a
+ set c abcdefghijklmnopqurstuvwxyz0123456789
+ regsub $a $c $b d
list $d [string length $d] [string bytelength $d]
}
} [list abcdefghijklmnopqurstuvwxyz0123456789 37 37]
diff --git a/tests/safe.test b/tests/safe.test
index 1c27c1e..e4c3442 100644
--- a/tests/safe.test
+++ b/tests/safe.test
@@ -174,6 +174,8 @@ test safe-4.6 {safe::interpDelete, indirectly} -setup {
# A replacement test using example files is "safe-9.8".
# Tests 5.* test the example files before using them to test safe interpreters.
+unset -nocomplain path
+
test safe-5.1 {example tclIndex commands, test in parent interpreter} -setup {
set tmpAutoPath $::auto_path
lappend ::auto_path [file join $TestsDir auto0 auto1] [file join $TestsDir auto0 auto2]
@@ -1659,6 +1661,7 @@ test safe-16.8 {Bug 3529949: defang ~user in paths used by AliasGlob (2)} -setup
# cleanup
set ::auto_path $SaveAutoPath
unset SaveAutoPath TestsDir PathMapp
+unset -nocomplain path
rename mapList {}
rename mapAndSortList {}
::tcltest::cleanupTests
diff --git a/tests/socket.test b/tests/socket.test
index d5f9c94..0dfff53 100644
--- a/tests/socket.test
+++ b/tests/socket.test
@@ -285,6 +285,8 @@ proc getPort sock {
# Some tests in this file are known to hang *occasionally* on OSX; stop the
# worst offenders.
testConstraint notOSX [expr {$::tcl_platform(os) ne "Darwin"}]
+# Here "Windows" means derived platforms as Cygwin or Msys2 too.
+testConstraint notWindows [expr {![regexp {^(Windows|MSYS|CYGWIN)} $::tcl_platform(os)]}]
# ----------------------------------------------------------------------
@@ -909,7 +911,7 @@ test socket_$af-5.1 {byte order problems, socket numbers, htons} -body {
return {htons problem, should be disallowed, are you running as SU?}
}
return {couldn't open socket: not owner}
-} -constraints [list socket supported_$af unix notRoot notOSX] -result {couldn't open socket: not owner}
+} -constraints [list socket supported_$af unix notRoot notOSX notWindows] -result {couldn't open socket: not owner}
test socket_$af-5.2 {byte order problems, socket numbers, htons} -body {
if {![catch {socket -server dodo 0x10000} msg]} {
close $msg
@@ -923,7 +925,7 @@ test socket_$af-5.3 {byte order problems, socket numbers, htons} -body {
return {htons problem, should be disallowed, are you running as SU?}
}
return {couldn't open socket: not owner}
-} -constraints [list socket supported_$af unix notRoot notOSX] -result {couldn't open socket: not owner}
+} -constraints [list socket supported_$af unix notRoot notOSX notWindows] -result {couldn't open socket: not owner}
test socket_$af-6.1 {accept callback error} -constraints [list socket supported_$af stdio] -setup {
proc myHandler {msg options} {
@@ -1839,7 +1841,7 @@ proc transf_test {{testmode transfer} {maxIter 1000} {maxTime 10000}} {
set ::count [expr {$maxIter / 4 * 3 - 1}]; # bypass 3/4 iterations
}
}
- tcltest::DebugPuts 1 "== test \[$::localhost\]:$port $testmode =="
+ tcltest::DebugPuts 2 "== test \[$::localhost\]:$port $testmode =="
set ::parent [thread::id]
# helper thread creating async connection and initiating transfer (detach) to parent:
set ::helper [thread::create]
@@ -1867,7 +1869,7 @@ proc transf_test {{testmode transfer} {maxIter 1000} {maxTime 10000}} {
}
# parent proc commiting transfer attempt (attach) and checking acquire was successful:
proc transf_parent {fd args} {
- tcltest::DebugPuts 1 "** trma / $::count ** $args **"
+ tcltest::DebugPuts 2 "** trma / $::count ** $args **"
thread::attach $fd
if {"parent-close" in $::testmode} {;# to test close during connect
set ::count $::count
@@ -1894,7 +1896,7 @@ proc transf_test {{testmode transfer} {maxIter 1000} {maxTime 10000}} {
break
}
if {[incr ::count] >= $maxIter} break
- tcltest::DebugPuts 1 "** iter / $::count **"
+ tcltest::DebugPuts 2 "** iter / $::count **"
thread::send -async $::helper [list iteration nr $::count]
}
update
@@ -1903,7 +1905,7 @@ proc transf_test {{testmode transfer} {maxIter 1000} {maxTime 10000}} {
catch {after cancel $tout}
if {$srvsock ne {}} {close $srvsock}
if {[info exists ::helper]} {thread::release -wait $::helper}
- tcltest::DebugPuts 1 "== stop / $::count =="
+ tcltest::DebugPuts 2 "== stop / $::count =="
unset -nocomplain ::count ::testmode ::parent ::helper
}
}
diff --git a/tests/split.test b/tests/split.test
index 8e82367..efd4323 100644
--- a/tests/split.test
+++ b/tests/split.test
@@ -43,7 +43,7 @@ test split-1.8 {basic split commands} {
foreach f [split {]\n} {}] {
append x $f
}
- return $x
+ return $x
}
foo
} {]\n}
diff --git a/tests/stack.test b/tests/stack.test
index 44417df..77cb69f 100644
--- a/tests/stack.test
+++ b/tests/stack.test
@@ -33,7 +33,7 @@ test stack-2.1 {maxNestingDepth reached on infinite recursion} -body {
puts $msg
}
} -result {too many nested evaluations (infinite loop?)}
-
+
# Make sure that there is enough stack to run regexp even if we're
# close to the recursion limit. [Bug 947070] [Patch 746378]
test stack-3.1 {enough room for regexp near recursion limit} -body {
diff --git a/tests/string.test b/tests/string.test
index 46eb6fd..66eb6ad 100644
--- a/tests/string.test
+++ b/tests/string.test
@@ -414,7 +414,7 @@ test string-6.27 {string is double, true} {
string is double 1
} 1
test string-6.28 {string is double, true} {
- string is double [expr double(1)]
+ string is double [expr {double(1)}]
} 1
test string-6.29 {string is double, true} {
string is double 1.0
@@ -489,7 +489,7 @@ test string-6.48 {string is integer, true} {
string is integer +1234567890
} 1
test string-6.49 {string is integer, true on type} {
- string is integer [expr int(50.0)]
+ string is integer [expr {int(50.0)}]
} 1
test string-6.50 {string is integer, true} {
string is integer [list -10]
@@ -510,7 +510,7 @@ test string-6.55 {string is integer, false on overflow} {
list [string is integer -fail var +[largest_int]0] $var
} {0 -1}
test string-6.56 {string is integer, false} {
- list [string is integer -fail var [expr double(1)]] $var
+ list [string is integer -fail var [expr {double(1)}]] $var
} {0 1}
test string-6.57 {string is integer, false} {
list [string is integer -fail var " "] $var
@@ -659,7 +659,7 @@ test string-6.95 {string is wideinteger, true} {
string is wideinteger +1234567890
} 1
test string-6.96 {string is wideinteger, true on type} {
- string is wideinteger [expr wide(50.0)]
+ string is wideinteger [expr {wide(50.0)}]
} 1
test string-6.97 {string is wideinteger, true} {
string is wideinteger [list -10]
@@ -680,7 +680,7 @@ test string-6.102 {string is wideinteger, false on overflow} {
list [string is wideinteger -fail var +[largest_int]0] $var
} {0 -1}
test string-6.103 {string is wideinteger, false} {
- list [string is wideinteger -fail var [expr double(1)]] $var
+ list [string is wideinteger -fail var [expr {double(1)}]] $var
} {0 1}
test string-6.104 {string is wideinteger, false} {
list [string is wideinteger -fail var " "] $var
@@ -715,7 +715,7 @@ test string-6.110 {string is entier, true} {
string is entier +1234567890
} 1
test string-6.111 {string is entier, true on type} {
- string is entier [expr wide(50.0)]
+ string is entier [expr {wide(50.0)}]
} 1
test string-6.112 {string is entier, true} {
string is entier [list -10]
@@ -736,7 +736,7 @@ test string-6.117 {string is entier, false} {
list [string is entier -fail var 123123123123123123123123123123123123123123123123123123123123123123123123123123123123abc] $var
} {0 84}
test string-6.118 {string is entier, false} {
- list [string is entier -fail var [expr double(1)]] $var
+ list [string is entier -fail var [expr {double(1)}]] $var
} {0 1}
test string-6.119 {string is entier, false} {
list [string is entier -fail var " "] $var
@@ -1645,6 +1645,33 @@ test string-21.13 {string wordend, unicode} {
test string-21.14 {string wordend, unicode} {
string wordend "\uC700\uC700 abc" 8
} 6
+test string-21.17 {string trim, unicode} {
+ string trim "\uD83D\uDE02Hello world!\uD83D\uDE02" \uD83D\uDE02
+} "Hello world!"
+test string-21.18 {string trimleft, unicode} {
+ string trimleft "\uD83D\uDE02Hello world!\uD83D\uDE02" \uD83D\uDE02
+} "Hello world!\uD83D\uDE02"
+test string-21.19 {string trimright, unicode} {
+ string trimright "\uD83D\uDE02Hello world!\uD83D\uDE02" \uD83D\uDE02
+} "\uD83D\uDE02Hello world!"
+test string-21.20 {string trim, unicode} {
+ string trim "\uF602Hello world!\uF602" \uD83D\uDE02
+} "\uF602Hello world!\uF602"
+test string-21.21 {string trimleft, unicode} {
+ string trimleft "\uF602Hello world!\uF602" \uD83D\uDE02
+} "\uF602Hello world!\uF602"
+test string-21.22 {string trimright, unicode} {
+ string trimright "\uF602Hello world!\uF602" \uD83D\uDE02
+} "\uF602Hello world!\uF602"
+test string-21.23 {string trim, unicode} {
+ string trim "\uD83D\uDE02Hello world!\uD83D\uDE02" \uD93D\uDE02
+} "\uD83D\uDE02Hello world!\uD83D\uDE02"
+test string-21.24 {string trimleft, unicode} {
+ string trimleft "\uD83D\uDE02Hello world!\uD83D\uDE02" \uD93D\uDE02
+} "\uD83D\uDE02Hello world!\uD83D\uDE02"
+test string-21.25 {string trimright, unicode} {
+ string trimright "\uD83D\uDE02Hello world!\uD83D\uDE02" \uD93D\uDE02
+} "\uD83D\uDE02Hello world!\uD83D\uDE02"
test string-22.1 {string wordstart} {
list [catch {string word a} msg] $msg
@@ -1801,6 +1828,24 @@ test string-24.15 {string reverse command - pure bytearray} {
binary scan [tcl::string::reverse [binary format H* 010203]] H* x
set x
} 030201
+test string-24.16 {string reverse command - surrogates} {
+ string reverse \u0444bulb\uD83D\uDE02
+} \uD83D\uDE02blub\u0444
+test string-24.17 {string reverse command - surrogates} {
+ string reverse \uD83D\uDE02hello\uD83D\uDE02
+} \uD83D\uDE02olleh\uD83D\uDE02
+test string-24.18 {string reverse command - surrogates} {
+ set s \u0444bulb\uD83D\uDE02
+ # shim shimmery ...
+ string index $s 0
+ string reverse $s
+} \uD83D\uDE02blub\u0444
+test string-24.19 {string reverse command - surrogates} {
+ set s \uD83D\uDE02hello\uD83D\uDE02
+ # shim shimmery ...
+ string index $s 0
+ string reverse $s
+} \uD83D\uDE02olleh\uD83D\uDE02
test string-25.1 {string is list} {
string is list {a b c}
diff --git a/tests/tailcall.test b/tests/tailcall.test
index c664455..3704333 100644
--- a/tests/tailcall.test
+++ b/tests/tailcall.test
@@ -28,9 +28,9 @@ if {[testConstraint testnrelevels]} {
namespace eval testnre {
#
# [testnrelevels] returns a 6-list with: C-stack depth, iPtr->numlevels,
- # cmdFrame level, callFrame level, tosPtr and callback depth
+ # cmdFrame level, callFrame level, tosPtr and callback depth
#
- variable last [testnrelevels]
+ variable last [testnrelevels]
proc depthDiff {} {
variable last
set depth [testnrelevels]
@@ -148,7 +148,7 @@ test tailcall-0.5 {tailcall is constant space} -constraints testnrelevels -setup
} -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
@@ -245,7 +245,7 @@ test tailcall-1 {tailcall} -body {
}
variable x *::
proc xset args {error ::xset}
- list [::b::moo] | $x $a::x $b::x | $::b::y
+ list [::b::moo] | $x $a::x $b::x | $::b::y
} -cleanup {
unset x
rename xset {}
@@ -619,7 +619,7 @@ test tailcall-12.3a3 {[Bug 2695587]} -body {
set x
} -cleanup {
unset x
-} -result {0 1}
+} -result {0 1}
test tailcall-12.3b0 {[Bug 2695587]} -body {
apply {{} {
@@ -654,7 +654,7 @@ test tailcall-12.3b3 {[Bug 2695587]} -body {
set x
} -cleanup {
unset x
-} -result {0 1}
+} -result {0 1}
# MORE VARIANTS MISSING: bc'ed caught script vs (bc'ed, not-bc'ed)
# catch. Actually superfluous now, as tailcall just returns TCL_RETURN so that
diff --git a/tests/tcltest.test b/tests/tcltest.test
index 5e2485b..9b1bb4b 100644
--- a/tests/tcltest.test
+++ b/tests/tcltest.test
@@ -546,8 +546,8 @@ makeDirectory notreadable
makeDirectory notwriteable
switch -- $::tcl_platform(platform) {
unix {
- file attributes $notReadableDir -permissions 00333
- file attributes $notWriteableDir -permissions 00555
+ file attributes $notReadableDir -permissions 0o333
+ file attributes $notWriteableDir -permissions 0o555
}
default {
# note in FAT/NTFS we won't be able to protect directory with read-only attribute...
diff --git a/tests/unixFCmd.test b/tests/unixFCmd.test
index c98e3f0..4b1687f 100644
--- a/tests/unixFCmd.test
+++ b/tests/unixFCmd.test
@@ -96,10 +96,10 @@ test unixFCmd-1.1 {TclpRenameFile: EACCES} -setup {
cleanup
} -constraints {unix notRoot} -body {
file mkdir td1/td2/td3
- file attributes td1/td2 -permissions 0000
+ file attributes td1/td2 -permissions 0o000
file rename td1/td2/td3 td2
} -returnCodes error -cleanup {
- file attributes td1/td2 -permissions 0755
+ file attributes td1/td2 -permissions 0o755
cleanup
} -result {error renaming "td1/td2/td3": permission denied}
test unixFCmd-1.2 {TclpRenameFile: EEXIST} -setup {
@@ -137,11 +137,11 @@ test unixFCmd-1.7 {TclpRenameFile: EXDEV} -setup {
cleanup
} -constraints {unix notRoot} -body {
file mkdir foo/bar
- file attr foo -perm 040555
+ file attr foo -perm 0o40555
file rename foo/bar /tmp
} -returnCodes error -cleanup {
catch {file delete /tmp/bar}
- catch {file attr foo -perm 040777}
+ catch {file attr foo -perm 0o40777}
catch {file delete -force foo}
} -match glob -result {*: permission denied}
test unixFCmd-1.8 {Checking EINTR Bug} {unix notRoot nonPortable} {
@@ -221,12 +221,12 @@ test unixFCmd-2.5 {TclpCopyFile: copy attributes} -setup {
cleanup
} -constraints {unix notRoot} -body {
close [open tf1 a]
- file attributes tf1 -permissions 0472
+ file attributes tf1 -permissions 0o472
file copy tf1 tf2
- file attributes tf2 -permissions
+ format 0o%03o [file attributes tf2 -permissions]
} -cleanup {
cleanup
-} -result 00472 ;# i.e. perms field of [exec ls -l tf2] is -r--rwx-w-
+} -result 0o472 ;# i.e. perms field of [exec ls -l tf2] is -r--rwx-w-
test unixFCmd-3.1 {CopyFile not done} {emptyTest unix notRoot} {
} {}
@@ -336,15 +336,15 @@ test unixFCmd-17.1 {SetPermissionsAttribute} -setup {
catch {file delete -force -- foo.test}
} -constraints {unix notRoot} -body {
close [open foo.test w]
- list [file attributes foo.test -permissions 0000] \
- [file attributes foo.test -permissions]
+ list [file attributes foo.test -permissions 0o000] \
+ [format 0o%03o [file attributes foo.test -permissions]]
} -cleanup {
file delete -force -- foo.test
-} -result {{} 00000}
+} -result {{} 0o000}
test unixFCmd-17.2 {SetPermissionsAttribute} -setup {
catch {file delete -force -- foo.test}
} -constraints {unix notRoot} -returnCodes error -body {
- file attributes foo.test -permissions 0000
+ file attributes foo.test -permissions 0o000
} -result {could not set permissions for file "foo.test": no such file or directory}
test unixFCmd-17.3 {SetPermissionsAttribute} -setup {
catch {file delete -force -- foo.test}
@@ -370,16 +370,16 @@ proc permcheck {testnum permList expected} {
set result {}
foreach permstr $permList {
file attributes foo.test -permissions $permstr
- lappend result [file attributes foo.test -permissions]
+ lappend result [format 0o%03o [file attributes foo.test -permissions]]
}
set result
} $expected
}
-permcheck unixFCmd-17.5 rwxrwxrwx 00777
-permcheck unixFCmd-17.6 r--r---w- 00442
-permcheck unixFCmd-17.7 {0 u+rwx,g+r u-w o+rwx} {00000 00740 00540 00547}
-permcheck unixFCmd-17.11 --x--x--x 00111
-permcheck unixFCmd-17.12 {0 a+rwx} {00000 00777}
+permcheck unixFCmd-17.5 rwxrwxrwx 0o777
+permcheck unixFCmd-17.6 r--r---w- 0o442
+permcheck unixFCmd-17.7 {0 u+rwx,g+r u-w o+rwx} {0o000 0o740 0o540 0o547}
+permcheck unixFCmd-17.11 --x--x--x 0o111
+permcheck unixFCmd-17.12 {0 a+rwx} {0o000 0o777}
file delete -force -- foo.test
test unixFCmd-18.1 {Unix pwd} -constraints {unix notRoot nonPortable} -setup {
@@ -390,11 +390,11 @@ test unixFCmd-18.1 {Unix pwd} -constraints {unix notRoot nonPortable} -setup {
set nd $cd/tstdir
file mkdir $nd
cd $nd
- file attributes $nd -permissions 0000
+ file attributes $nd -permissions 0o000
pwd
} -returnCodes error -cleanup {
cd $cd
- file attributes $nd -permissions 0755
+ file attributes $nd -permissions 0o755
file delete $nd
} -match glob -result {error getting working directory name:*}
diff --git a/tests/unixFile.test b/tests/unixFile.test
index 492e5d0..3669cce 100644
--- a/tests/unixFile.test
+++ b/tests/unixFile.test
@@ -24,7 +24,7 @@ cd [temporaryDirectory]
catch {
set oldPath $env(PATH)
- file attributes [makeFile "" junk] -perm 0777
+ file attributes [makeFile "" junk] -perm 0o777
}
set absPath [file join [temporaryDirectory] junk]
diff --git a/tests/unixForkEvent.test b/tests/unixForkEvent.test
index 4a0ac15..5299db3 100644
--- a/tests/unixForkEvent.test
+++ b/tests/unixForkEvent.test
@@ -37,7 +37,7 @@ test unixforkevent-1.1 {fork and test writeable event} \
viewFile result.txt $myFolder
} \
-result {writable} \
- -cleanup {
+ -cleanup {
catch { removeFolder $myFolder }
}
diff --git a/tests/unixNotfy.test b/tests/unixNotfy.test
index df95c46..7d32555 100644
--- a/tests/unixNotfy.test
+++ b/tests/unixNotfy.test
@@ -34,7 +34,7 @@ test unixNotfy-1.1 {Tcl_DeleteFileHandler} -constraints {noTk unix unthreaded} -
vwait x
close $f
list [catch {vwait x} msg] $msg
-} -result {1 {can't wait for variable "x": would wait forever}} -cleanup {
+} -result {1 {can't wait for variable "x": would wait forever}} -cleanup {
catch { close $f }
catch { removeFile foo }
}
@@ -90,7 +90,7 @@ test unixNotfy-2.2 {Tcl_DeleteFileHandler} \
set x
} \
-result {ok} \
- -cleanup {
+ -cleanup {
catch { close $f1 }
catch { close $f2 }
catch { removeFile foo }
diff --git a/tests/upvar.test b/tests/upvar.test
index 10e0e9f..9e44a79 100644
--- a/tests/upvar.test
+++ b/tests/upvar.test
@@ -492,7 +492,7 @@ test upvar-NS-1.4 {nsupvar links to correct variable} -body {
} -returnCodes error -cleanup {
namespace delete test_ns_1
} -result {namespace "test_ns_0" not found in "::test_ns_1"}
-
+
test upvar-NS-1.5 {nsupvar links to correct variable} -body {
namespace eval test_ns_1 {
namespace eval test_ns_0 {}
diff --git a/tests/utf.test b/tests/utf.test
index ab98294..8e886ae 100644
--- a/tests/utf.test
+++ b/tests/utf.test
@@ -781,9 +781,12 @@ test utf-7.18.2 {Tcl_UtfPrev} {testutfprev testbytestring} {
test utf-7.19 {Tcl_UtfPrev} {testutfprev testbytestring} {
testutfprev A[testbytestring \xF8\xA0\xA0\xA0]
} 4
-test utf-7.20 {Tcl_UtfPrev} {testutfprev testbytestring} {
+test utf-7.20.0 {Tcl_UtfPrev} {testutfprev testbytestring ucs2} {
testutfprev A[testbytestring \xF2\xA0\xA0\xA0]
} 4
+test utf-7.20.1 {Tcl_UtfPrev} {testutfprev testbytestring fullutf} {
+ testutfprev A[testbytestring \xF2\xA0\xA0\xA0]
+} 1
test utf-7.21 {Tcl_UtfPrev} {testutfprev testbytestring} {
testutfprev A\u8820[testbytestring \xA0]
} 4
@@ -844,9 +847,12 @@ test utf-7.37 {Tcl_UtfPrev -- overlong sequence} {testutfprev testbytestring} {
test utf-7.38 {Tcl_UtfPrev -- overlong sequence} {testutfprev testbytestring} {
testutfprev A[testbytestring \xE0\xA0\x80] 2
} 1
-test utf-7.39 {Tcl_UtfPrev -- overlong sequence} {testutfprev testbytestring} {
+test utf-7.39.0 {Tcl_UtfPrev -- overlong sequence} {testutfprev testbytestring ucs2} {
testutfprev A[testbytestring \xF0\x90\x80\x80]
} 4
+test utf-7.39.1 {Tcl_UtfPrev -- overlong sequence} {testutfprev testbytestring fullutf} {
+ testutfprev A[testbytestring \xF0\x90\x80\x80]
+} 1
test utf-7.40.0 {Tcl_UtfPrev -- overlong sequence} {testutfprev testbytestring ucs2} {
testutfprev A[testbytestring \xF0\x90\x80\x80] 4
} 3
@@ -883,22 +889,25 @@ test utf-7.47.1 {Tcl_UtfPrev, pointing to 3th byte of 3-byte valid sequence} tes
test utf-7.47.2 {Tcl_UtfPrev, pointing to 3th byte of 3-byte invalid sequence} {testutfprev testbytestring} {
testutfprev [testbytestring \xE8\xA0\x00] 2
} 0
-test utf-7.48.0 {Tcl_UtfPrev, validity check [493dccc2de]} {testutfprev testbytestring} {
+test utf-7.48.0 {Tcl_UtfPrev, validity check [493dccc2de]} {testutfprev testbytestring ucs2} {
testutfprev A[testbytestring \xF4\x8F\xBF\xBF]
} 4
-test utf-7.48.1 {Tcl_UtfPrev, validity check [493dccc2de]} {testutfprev testbytestring ucs2} {
+test utf-7.48.1 {Tcl_UtfPrev, validity check [493dccc2de]} {testutfprev testbytestring fullutf} {
+ testutfprev A[testbytestring \xF4\x8F\xBF\xBF]
+} 1
+test utf-7.48.2 {Tcl_UtfPrev, validity check [493dccc2de]} {testutfprev testbytestring ucs2} {
testutfprev A[testbytestring \xF4\x8F\xBF\xBF] 4
} 3
-test utf-7.48.2 {Tcl_UtfPrev, validity check [493dccc2de]} {testutfprev testbytestring fullutf} {
+test utf-7.48.3 {Tcl_UtfPrev, validity check [493dccc2de]} {testutfprev testbytestring fullutf} {
testutfprev A[testbytestring \xF4\x8F\xBF\xBF] 4
} 1
-test utf-7.48.3 {Tcl_UtfPrev, validity check [493dccc2de]} {testutfprev testbytestring ucs2} {
+test utf-7.48.4 {Tcl_UtfPrev, validity check [493dccc2de]} {testutfprev testbytestring ucs2} {
testutfprev A[testbytestring \xF4\x8F\xBF\xBF] 3
} 2
-test utf-7.48.4 {Tcl_UtfPrev, validity check [493dccc2de]} {testutfprev testbytestring fullutf} {
+test utf-7.48.5 {Tcl_UtfPrev, validity check [493dccc2de]} {testutfprev testbytestring fullutf} {
testutfprev A[testbytestring \xF4\x8F\xBF\xBF] 3
} 1
-test utf-7.48.5 {Tcl_UtfPrev, validity check [493dccc2de]} {testutfprev testbytestring} {
+test utf-7.48.6 {Tcl_UtfPrev, validity check [493dccc2de]} {testutfprev testbytestring} {
testutfprev A[testbytestring \xF4\x8F\xBF\xBF] 2
} 1
test utf-7.49.0 {Tcl_UtfPrev, validity check [493dccc2de]} {testutfprev testbytestring} {
@@ -1281,7 +1290,25 @@ test utf-19.1 {TclUniCharLen} -body {
test utf-20.1 {TclUniCharNcmp} ucs4 {
string compare [string range [format %c 0xFFFF] 0 0] [string range [format %c 0x10000] 0 0]
} -1
-test utf-20.2 {[4c591fa487] TclUniCharNcmp/TclUtfNcmp} knownBug {
+test utf-20.2 {[4c591fa487] TclUniCharNcmp/TclUtfNcmp} ucs2 {
+ set one [format %c 0xFFFF]
+ set two [format %c 0x10000]
+ set first [string compare $one $two]
+ string range $one 0 0
+ string range $two 0 0
+ set second [string compare $one $two]
+ expr {($first == $second) ? "agree" : "disagree"}
+} agree
+test utf-20.2.1 {[4c591fa487] TclUniCharNcmp/TclUtfNcmp} {utf16 knownBug} {
+ set one [format %c 0xFFFF]
+ set two [format %c 0x10000]
+ set first [string compare $one $two]
+ string range $one 0 0
+ string range $two 0 0
+ set second [string compare $one $two]
+ expr {($first == $second) ? "agree" : "disagree"}
+} agree
+test utf-20.2.2 {[4c591fa487] TclUniCharNcmp/TclUtfNcmp} ucs4 {
set one [format %c 0xFFFF]
set two [format %c 0x10000]
set first [string compare $one $two]
diff --git a/tests/util.test b/tests/util.test
index c8a081b..052e7d3 100644
--- a/tests/util.test
+++ b/tests/util.test
@@ -101,7 +101,7 @@ proc verdonk_test {sig binexp shouldbe exp} {
regexp {([-+]?)([0-9a-f]+)} $sig -> signum sig
scan $sig %llx sig
if {$signum eq {-}} {
- set signum [expr 1<<63]
+ set signum [expr {1<<63}]
} else {
set signum 0
}
@@ -392,7 +392,7 @@ test util-6.1 {Tcl_PrintDouble - using tcl_precision} -setup {
set old_precision $::tcl_precision
set ::tcl_precision 12
} -body {
- concat x[expr 1.4]
+ concat x[expr {1.4}]
} -cleanup {
set ::tcl_precision $old_precision
} -result {x1.4}
@@ -400,7 +400,7 @@ test util-6.2 {Tcl_PrintDouble - using tcl_precision} -setup {
set old_precision $::tcl_precision
set ::tcl_precision 12
} -body {
- concat x[expr 1.39999999999]
+ concat x[expr {1.39999999999}]
} -cleanup {
set ::tcl_precision $old_precision
} -result {x1.39999999999}
@@ -408,7 +408,7 @@ test util-6.3 {Tcl_PrintDouble - using tcl_precision} -setup {
set old_precision $::tcl_precision
set ::tcl_precision 12
} -body {
- concat x[expr 1.399999999999]
+ concat x[expr {1.399999999999}]
} -cleanup {
set ::tcl_precision $old_precision
} -result {x1.4}
@@ -416,15 +416,15 @@ test util-6.4 {Tcl_PrintDouble - using tcl_precision} -setup {
set old_precision $::tcl_precision
set ::tcl_precision 5
} -body {
- concat x[expr 1.123412341234]
+ concat x[expr {1.123412341234}]
} -cleanup {
set tcl_precision $old_precision
} -result {x1.1234}
test util-6.5 {Tcl_PrintDouble - make sure there's a decimal point} {
- concat x[expr 2.0]
+ concat x[expr {2.0}]
} {x2.0}
test util-6.6 {Tcl_PrintDouble - make sure there's a decimal point} {
- concat x[expr 3.0e98]
+ concat x[expr {3.0e98}]
} {x3e+98}
test util-7.1 {TclPrecTraceProc - unset callbacks} -setup {
@@ -1122,73 +1122,73 @@ test util-10.122 {Tcl_PrintDouble - rounding} {ieeeFloatingPoint} {
} {5.20831059055e+36}
test util-11.1 {Tcl_PrintDouble - scaling} {
- expr 1.1e-5
+ expr {1.1e-5}
} {1.1e-5}
test util-11.2 {Tcl_PrintDouble - scaling} {
- expr 1.1e-4
+ expr {1.1e-4}
} {0.00011}
test util-11.3 {Tcl_PrintDouble - scaling} {
- expr 1.1e-3
+ expr {1.1e-3}
} {0.0011}
test util-11.4 {Tcl_PrintDouble - scaling} {
- expr 1.1e-2
+ expr {1.1e-2}
} {0.011}
test util-11.5 {Tcl_PrintDouble - scaling} {
- expr 1.1e-1
+ expr {1.1e-1}
} {0.11}
test util-11.6 {Tcl_PrintDouble - scaling} {
- expr 1.1e0
+ expr {1.1e0}
} {1.1}
test util-11.7 {Tcl_PrintDouble - scaling} {
- expr 1.1e1
+ expr {1.1e1}
} {11.0}
test util-11.8 {Tcl_PrintDouble - scaling} {
- expr 1.1e2
+ expr {1.1e2}
} {110.0}
test util-11.9 {Tcl_PrintDouble - scaling} {
- expr 1.1e3
+ expr {1.1e3}
} {1100.0}
test util-11.10 {Tcl_PrintDouble - scaling} {
- expr 1.1e4
+ expr {1.1e4}
} {11000.0}
test util-11.11 {Tcl_PrintDouble - scaling} {
- expr 1.1e5
+ expr {1.1e5}
} {110000.0}
test util-11.12 {Tcl_PrintDouble - scaling} {
- expr 1.1e6
+ expr {1.1e6}
} {1100000.0}
test util-11.13 {Tcl_PrintDouble - scaling} {
- expr 1.1e7
+ expr {1.1e7}
} {11000000.0}
test util-11.14 {Tcl_PrintDouble - scaling} {
- expr 1.1e8
+ expr {1.1e8}
} {110000000.0}
test util-11.15 {Tcl_PrintDouble - scaling} {
- expr 1.1e9
+ expr {1.1e9}
} {1100000000.0}
test util-11.16 {Tcl_PrintDouble - scaling} {
- expr 1.1e10
+ expr {1.1e10}
} {11000000000.0}
test util-11.17 {Tcl_PrintDouble - scaling} {
- expr 1.1e11
+ expr {1.1e11}
} {110000000000.0}
test util-11.18 {Tcl_PrintDouble - scaling} {
- expr 1.1e12
+ expr {1.1e12}
} {1100000000000.0}
test util-11.19 {Tcl_PrintDouble - scaling} {
- expr 1.1e13
+ expr {1.1e13}
} {11000000000000.0}
test util-11.20 {Tcl_PrintDouble - scaling} {
- expr 1.1e14
+ expr {1.1e14}
} {110000000000000.0}
test util-11.21 {Tcl_PrintDouble - scaling} {
- expr 1.1e15
+ expr {1.1e15}
} {1100000000000000.0}
test util-11.22 {Tcl_PrintDouble - scaling} {
- expr 1.1e16
+ expr {1.1e16}
} {11000000000000000.0}
test util-11.23 {Tcl_PrintDouble - scaling} {
- expr 1.1e17
+ expr {1.1e17}
} {1.1e+17}
test util-12.1 {TclDoubleDigits - Inf} {testdoubledigits ieeeFloatingPoint} {
@@ -2166,1869 +2166,1869 @@ set saved_precision $::tcl_precision
foreach ::tcl_precision {0 12} {
for {set e -312} {$e < -9} {incr e} {
test util-16.1.$::tcl_precision.$e {shortening of numbers} \
- "expr 1.1e$e" 1.1e$e
+ "expr {1.1e$e}" 1.1e$e
}
}
set tcl_precision 0
for {set e -9} {$e < -4} {incr e} {
test util-16.1.$::tcl_precision.$e {shortening of numbers} \
- "expr 1.1e$e" 1.1e$e
+ "expr {1.1e$e}" 1.1e$e
}
set tcl_precision 12
for {set e -9} {$e < -4} {incr e} {
test util-16.1.$::tcl_precision.$e {8.4 compatible formatting of doubles} \
- "expr 1.1e$e" 1.1e[format %+03d $e]
+ "expr {1.1e$e}" 1.1e[format %+03d $e]
}
foreach ::tcl_precision {0 12} {
test util-16.1.$::tcl_precision.-4 {shortening of numbers} \
- {expr 1.1e-4} \
+ {expr {1.1e-4}} \
0.00011
test util-16.1.$::tcl_precision.-3 {shortening of numbers} \
- {expr 1.1e-3} \
+ {expr {1.1e-3}} \
0.0011
test util-16.1.$::tcl_precision.-2 {shortening of numbers} \
- {expr 1.1e-2} \
+ {expr {1.1e-2}} \
0.011
test util-16.1.$::tcl_precision.-1 {shortening of numbers} \
- {expr 1.1e-1} \
+ {expr {1.1e-1}} \
0.11
test util-16.1.$::tcl_precision.0 {shortening of numbers} \
- {expr 1.1} \
+ {expr {1.1}} \
1.1
for {set e 1} {$e < 17} {incr e} {
test util-16.1.$::tcl_precision.$e {shortening of numbers} \
- "expr 11[string repeat 0 [expr {$e-1}]].0" \
+ "expr {11[string repeat 0 [expr {$e-1}]].0}" \
11[string repeat 0 [expr {$e-1}]].0
}
for {set e 17} {$e < 309} {incr e} {
test util-16.1.$::tcl_precision.$e {shortening of numbers} \
- "expr 1.1e$e" 1.1e+$e
+ "expr {1.1e$e}" 1.1e+$e
}
}
set tcl_precision 17
test util-16.1.17.-300 {8.4 compatible formatting of doubles} \
- {expr 1e-300} \
+ {expr {1e-300}} \
1e-300
test util-16.1.17.-299 {8.4 compatible formatting of doubles} \
- {expr 1e-299} \
+ {expr {1e-299}} \
9.9999999999999999e-300
test util-16.1.17.-298 {8.4 compatible formatting of doubles} \
- {expr 1e-298} \
+ {expr {1e-298}} \
9.9999999999999991e-299
test util-16.1.17.-297 {8.4 compatible formatting of doubles} \
- {expr 1e-297} \
+ {expr {1e-297}} \
1e-297
test util-16.1.17.-296 {8.4 compatible formatting of doubles} \
- {expr 1e-296} \
+ {expr {1e-296}} \
1e-296
test util-16.1.17.-295 {8.4 compatible formatting of doubles} \
- {expr 1e-295} \
+ {expr {1e-295}} \
1.0000000000000001e-295
test util-16.1.17.-294 {8.4 compatible formatting of doubles} \
- {expr 1e-294} \
+ {expr {1e-294}} \
1e-294
test util-16.1.17.-293 {8.4 compatible formatting of doubles} \
- {expr 1e-293} \
+ {expr {1e-293}} \
1.0000000000000001e-293
test util-16.1.17.-292 {8.4 compatible formatting of doubles} \
- {expr 1e-292} \
+ {expr {1e-292}} \
1.0000000000000001e-292
test util-16.1.17.-291 {8.4 compatible formatting of doubles} \
- {expr 1e-291} \
+ {expr {1e-291}} \
9.9999999999999996e-292
test util-16.1.17.-290 {8.4 compatible formatting of doubles} \
- {expr 1e-290} \
+ {expr {1e-290}} \
1.0000000000000001e-290
test util-16.1.17.-289 {8.4 compatible formatting of doubles} \
- {expr 1e-289} \
+ {expr {1e-289}} \
1e-289
test util-16.1.17.-288 {8.4 compatible formatting of doubles} \
- {expr 1e-288} \
+ {expr {1e-288}} \
1.0000000000000001e-288
test util-16.1.17.-287 {8.4 compatible formatting of doubles} \
- {expr 1e-287} \
+ {expr {1e-287}} \
1e-287
test util-16.1.17.-286 {8.4 compatible formatting of doubles} \
- {expr 1e-286} \
+ {expr {1e-286}} \
1.0000000000000001e-286
test util-16.1.17.-285 {8.4 compatible formatting of doubles} \
- {expr 1e-285} \
+ {expr {1e-285}} \
1.0000000000000001e-285
test util-16.1.17.-284 {8.4 compatible formatting of doubles} \
- {expr 1e-284} \
+ {expr {1e-284}} \
1e-284
test util-16.1.17.-283 {8.4 compatible formatting of doubles} \
- {expr 1e-283} \
+ {expr {1e-283}} \
9.9999999999999995e-284
test util-16.1.17.-282 {8.4 compatible formatting of doubles} \
- {expr 1e-282} \
+ {expr {1e-282}} \
1e-282
test util-16.1.17.-281 {8.4 compatible formatting of doubles} \
- {expr 1e-281} \
+ {expr {1e-281}} \
1e-281
test util-16.1.17.-280 {8.4 compatible formatting of doubles} \
- {expr 1e-280} \
+ {expr {1e-280}} \
9.9999999999999996e-281
test util-16.1.17.-279 {8.4 compatible formatting of doubles} \
- {expr 1e-279} \
+ {expr {1e-279}} \
1.0000000000000001e-279
test util-16.1.17.-278 {8.4 compatible formatting of doubles} \
- {expr 1e-278} \
+ {expr {1e-278}} \
9.9999999999999994e-279
test util-16.1.17.-277 {8.4 compatible formatting of doubles} \
- {expr 1e-277} \
+ {expr {1e-277}} \
9.9999999999999997e-278
test util-16.1.17.-276 {8.4 compatible formatting of doubles} \
- {expr 1e-276} \
+ {expr {1e-276}} \
1.0000000000000001e-276
test util-16.1.17.-275 {8.4 compatible formatting of doubles} \
- {expr 1e-275} \
+ {expr {1e-275}} \
9.9999999999999993e-276
test util-16.1.17.-274 {8.4 compatible formatting of doubles} \
- {expr 1e-274} \
+ {expr {1e-274}} \
9.9999999999999997e-275
test util-16.1.17.-273 {8.4 compatible formatting of doubles} \
- {expr 1e-273} \
+ {expr {1e-273}} \
1.0000000000000001e-273
test util-16.1.17.-272 {8.4 compatible formatting of doubles} \
- {expr 1e-272} \
+ {expr {1e-272}} \
9.9999999999999993e-273
test util-16.1.17.-271 {8.4 compatible formatting of doubles} \
- {expr 1e-271} \
+ {expr {1e-271}} \
9.9999999999999996e-272
test util-16.1.17.-270 {8.4 compatible formatting of doubles} \
- {expr 1e-270} \
+ {expr {1e-270}} \
1e-270
test util-16.1.17.-269 {8.4 compatible formatting of doubles} \
- {expr 1e-269} \
+ {expr {1e-269}} \
9.9999999999999996e-270
test util-16.1.17.-268 {8.4 compatible formatting of doubles} \
- {expr 1e-268} \
+ {expr {1e-268}} \
9.9999999999999996e-269
test util-16.1.17.-267 {8.4 compatible formatting of doubles} \
- {expr 1e-267} \
+ {expr {1e-267}} \
9.9999999999999998e-268
test util-16.1.17.-266 {8.4 compatible formatting of doubles} \
- {expr 1e-266} \
+ {expr {1e-266}} \
9.9999999999999998e-267
test util-16.1.17.-265 {8.4 compatible formatting of doubles} \
- {expr 1e-265} \
+ {expr {1e-265}} \
9.9999999999999998e-266
test util-16.1.17.-264 {8.4 compatible formatting of doubles} \
- {expr 1e-264} \
+ {expr {1e-264}} \
1e-264
test util-16.1.17.-263 {8.4 compatible formatting of doubles} \
- {expr 1e-263} \
+ {expr {1e-263}} \
1e-263
test util-16.1.17.-262 {8.4 compatible formatting of doubles} \
- {expr 1e-262} \
+ {expr {1e-262}} \
1e-262
test util-16.1.17.-261 {8.4 compatible formatting of doubles} \
- {expr 1e-261} \
+ {expr {1e-261}} \
9.9999999999999998e-262
test util-16.1.17.-260 {8.4 compatible formatting of doubles} \
- {expr 1e-260} \
+ {expr {1e-260}} \
9.9999999999999996e-261
test util-16.1.17.-259 {8.4 compatible formatting of doubles} \
- {expr 1e-259} \
+ {expr {1e-259}} \
1.0000000000000001e-259
test util-16.1.17.-258 {8.4 compatible formatting of doubles} \
- {expr 1e-258} \
+ {expr {1e-258}} \
9.9999999999999995e-259
test util-16.1.17.-257 {8.4 compatible formatting of doubles} \
- {expr 1e-257} \
+ {expr {1e-257}} \
9.9999999999999998e-258
test util-16.1.17.-256 {8.4 compatible formatting of doubles} \
- {expr 1e-256} \
+ {expr {1e-256}} \
9.9999999999999998e-257
test util-16.1.17.-255 {8.4 compatible formatting of doubles} \
- {expr 1e-255} \
+ {expr {1e-255}} \
1e-255
test util-16.1.17.-254 {8.4 compatible formatting of doubles} \
- {expr 1e-254} \
+ {expr {1e-254}} \
9.9999999999999991e-255
test util-16.1.17.-253 {8.4 compatible formatting of doubles} \
- {expr 1e-253} \
+ {expr {1e-253}} \
1.0000000000000001e-253
test util-16.1.17.-252 {8.4 compatible formatting of doubles} \
- {expr 1e-252} \
+ {expr {1e-252}} \
9.9999999999999994e-253
test util-16.1.17.-251 {8.4 compatible formatting of doubles} \
- {expr 1e-251} \
+ {expr {1e-251}} \
1e-251
test util-16.1.17.-250 {8.4 compatible formatting of doubles} \
- {expr 1e-250} \
+ {expr {1e-250}} \
1.0000000000000001e-250
test util-16.1.17.-249 {8.4 compatible formatting of doubles} \
- {expr 1e-249} \
+ {expr {1e-249}} \
1.0000000000000001e-249
test util-16.1.17.-248 {8.4 compatible formatting of doubles} \
- {expr 1e-248} \
+ {expr {1e-248}} \
9.9999999999999998e-249
test util-16.1.17.-247 {8.4 compatible formatting of doubles} \
- {expr 1e-247} \
+ {expr {1e-247}} \
1e-247
test util-16.1.17.-246 {8.4 compatible formatting of doubles} \
- {expr 1e-246} \
+ {expr {1e-246}} \
9.9999999999999996e-247
test util-16.1.17.-245 {8.4 compatible formatting of doubles} \
- {expr 1e-245} \
+ {expr {1e-245}} \
9.9999999999999993e-246
test util-16.1.17.-244 {8.4 compatible formatting of doubles} \
- {expr 1e-244} \
+ {expr {1e-244}} \
9.9999999999999993e-245
test util-16.1.17.-243 {8.4 compatible formatting of doubles} \
- {expr 1e-243} \
+ {expr {1e-243}} \
1e-243
test util-16.1.17.-242 {8.4 compatible formatting of doubles} \
- {expr 1e-242} \
+ {expr {1e-242}} \
9.9999999999999997e-243
test util-16.1.17.-241 {8.4 compatible formatting of doubles} \
- {expr 1e-241} \
+ {expr {1e-241}} \
9.9999999999999997e-242
test util-16.1.17.-240 {8.4 compatible formatting of doubles} \
- {expr 1e-240} \
+ {expr {1e-240}} \
9.9999999999999997e-241
test util-16.1.17.-239 {8.4 compatible formatting of doubles} \
- {expr 1e-239} \
+ {expr {1e-239}} \
1.0000000000000001e-239
test util-16.1.17.-238 {8.4 compatible formatting of doubles} \
- {expr 1e-238} \
+ {expr {1e-238}} \
9.9999999999999999e-239
test util-16.1.17.-237 {8.4 compatible formatting of doubles} \
- {expr 1e-237} \
+ {expr {1e-237}} \
9.9999999999999999e-238
test util-16.1.17.-236 {8.4 compatible formatting of doubles} \
- {expr 1e-236} \
+ {expr {1e-236}} \
1e-236
test util-16.1.17.-235 {8.4 compatible formatting of doubles} \
- {expr 1e-235} \
+ {expr {1e-235}} \
9.9999999999999996e-236
test util-16.1.17.-234 {8.4 compatible formatting of doubles} \
- {expr 1e-234} \
+ {expr {1e-234}} \
9.9999999999999996e-235
test util-16.1.17.-233 {8.4 compatible formatting of doubles} \
- {expr 1e-233} \
+ {expr {1e-233}} \
9.9999999999999996e-234
test util-16.1.17.-232 {8.4 compatible formatting of doubles} \
- {expr 1e-232} \
+ {expr {1e-232}} \
1e-232
test util-16.1.17.-231 {8.4 compatible formatting of doubles} \
- {expr 1e-231} \
+ {expr {1e-231}} \
9.9999999999999999e-232
test util-16.1.17.-230 {8.4 compatible formatting of doubles} \
- {expr 1e-230} \
+ {expr {1e-230}} \
1e-230
test util-16.1.17.-229 {8.4 compatible formatting of doubles} \
- {expr 1e-229} \
+ {expr {1e-229}} \
1.0000000000000001e-229
test util-16.1.17.-228 {8.4 compatible formatting of doubles} \
- {expr 1e-228} \
+ {expr {1e-228}} \
1e-228
test util-16.1.17.-227 {8.4 compatible formatting of doubles} \
- {expr 1e-227} \
+ {expr {1e-227}} \
9.9999999999999994e-228
test util-16.1.17.-226 {8.4 compatible formatting of doubles} \
- {expr 1e-226} \
+ {expr {1e-226}} \
9.9999999999999992e-227
test util-16.1.17.-225 {8.4 compatible formatting of doubles} \
- {expr 1e-225} \
+ {expr {1e-225}} \
9.9999999999999996e-226
test util-16.1.17.-224 {8.4 compatible formatting of doubles} \
- {expr 1e-224} \
+ {expr {1e-224}} \
1e-224
test util-16.1.17.-223 {8.4 compatible formatting of doubles} \
- {expr 1e-223} \
+ {expr {1e-223}} \
9.9999999999999997e-224
test util-16.1.17.-222 {8.4 compatible formatting of doubles} \
- {expr 1e-222} \
+ {expr {1e-222}} \
1e-222
test util-16.1.17.-221 {8.4 compatible formatting of doubles} \
- {expr 1e-221} \
+ {expr {1e-221}} \
1e-221
test util-16.1.17.-220 {8.4 compatible formatting of doubles} \
- {expr 1e-220} \
+ {expr {1e-220}} \
9.9999999999999999e-221
test util-16.1.17.-219 {8.4 compatible formatting of doubles} \
- {expr 1e-219} \
+ {expr {1e-219}} \
1e-219
test util-16.1.17.-218 {8.4 compatible formatting of doubles} \
- {expr 1e-218} \
+ {expr {1e-218}} \
1e-218
test util-16.1.17.-217 {8.4 compatible formatting of doubles} \
- {expr 1e-217} \
+ {expr {1e-217}} \
1.0000000000000001e-217
test util-16.1.17.-216 {8.4 compatible formatting of doubles} \
- {expr 1e-216} \
+ {expr {1e-216}} \
1e-216
test util-16.1.17.-215 {8.4 compatible formatting of doubles} \
- {expr 1e-215} \
+ {expr {1e-215}} \
1e-215
test util-16.1.17.-214 {8.4 compatible formatting of doubles} \
- {expr 1e-214} \
+ {expr {1e-214}} \
9.9999999999999991e-215
test util-16.1.17.-213 {8.4 compatible formatting of doubles} \
- {expr 1e-213} \
+ {expr {1e-213}} \
9.9999999999999995e-214
test util-16.1.17.-212 {8.4 compatible formatting of doubles} \
- {expr 1e-212} \
+ {expr {1e-212}} \
9.9999999999999995e-213
test util-16.1.17.-211 {8.4 compatible formatting of doubles} \
- {expr 1e-211} \
+ {expr {1e-211}} \
1.0000000000000001e-211
test util-16.1.17.-210 {8.4 compatible formatting of doubles} \
- {expr 1e-210} \
+ {expr {1e-210}} \
1e-210
test util-16.1.17.-209 {8.4 compatible formatting of doubles} \
- {expr 1e-209} \
+ {expr {1e-209}} \
1e-209
test util-16.1.17.-208 {8.4 compatible formatting of doubles} \
- {expr 1e-208} \
+ {expr {1e-208}} \
1.0000000000000001e-208
test util-16.1.17.-207 {8.4 compatible formatting of doubles} \
- {expr 1e-207} \
+ {expr {1e-207}} \
9.9999999999999993e-208
test util-16.1.17.-206 {8.4 compatible formatting of doubles} \
- {expr 1e-206} \
+ {expr {1e-206}} \
1e-206
test util-16.1.17.-205 {8.4 compatible formatting of doubles} \
- {expr 1e-205} \
+ {expr {1e-205}} \
1e-205
test util-16.1.17.-204 {8.4 compatible formatting of doubles} \
- {expr 1e-204} \
+ {expr {1e-204}} \
1e-204
test util-16.1.17.-203 {8.4 compatible formatting of doubles} \
- {expr 1e-203} \
+ {expr {1e-203}} \
1e-203
test util-16.1.17.-202 {8.4 compatible formatting of doubles} \
- {expr 1e-202} \
+ {expr {1e-202}} \
1e-202
test util-16.1.17.-201 {8.4 compatible formatting of doubles} \
- {expr 1e-201} \
+ {expr {1e-201}} \
9.9999999999999995e-202
test util-16.1.17.-200 {8.4 compatible formatting of doubles} \
- {expr 1e-200} \
+ {expr {1e-200}} \
9.9999999999999998e-201
test util-16.1.17.-199 {8.4 compatible formatting of doubles} \
- {expr 1e-199} \
+ {expr {1e-199}} \
9.9999999999999998e-200
test util-16.1.17.-198 {8.4 compatible formatting of doubles} \
- {expr 1e-198} \
+ {expr {1e-198}} \
9.9999999999999991e-199
test util-16.1.17.-197 {8.4 compatible formatting of doubles} \
- {expr 1e-197} \
+ {expr {1e-197}} \
9.9999999999999999e-198
test util-16.1.17.-196 {8.4 compatible formatting of doubles} \
- {expr 1e-196} \
+ {expr {1e-196}} \
1e-196
test util-16.1.17.-195 {8.4 compatible formatting of doubles} \
- {expr 1e-195} \
+ {expr {1e-195}} \
1.0000000000000001e-195
test util-16.1.17.-194 {8.4 compatible formatting of doubles} \
- {expr 1e-194} \
+ {expr {1e-194}} \
1e-194
test util-16.1.17.-193 {8.4 compatible formatting of doubles} \
- {expr 1e-193} \
+ {expr {1e-193}} \
1e-193
test util-16.1.17.-192 {8.4 compatible formatting of doubles} \
- {expr 1e-192} \
+ {expr {1e-192}} \
1.0000000000000001e-192
test util-16.1.17.-191 {8.4 compatible formatting of doubles} \
- {expr 1e-191} \
+ {expr {1e-191}} \
1e-191
test util-16.1.17.-190 {8.4 compatible formatting of doubles} \
- {expr 1e-190} \
+ {expr {1e-190}} \
1e-190
test util-16.1.17.-189 {8.4 compatible formatting of doubles} \
- {expr 1e-189} \
+ {expr {1e-189}} \
1.0000000000000001e-189
test util-16.1.17.-188 {8.4 compatible formatting of doubles} \
- {expr 1e-188} \
+ {expr {1e-188}} \
9.9999999999999995e-189
test util-16.1.17.-187 {8.4 compatible formatting of doubles} \
- {expr 1e-187} \
+ {expr {1e-187}} \
1e-187
test util-16.1.17.-186 {8.4 compatible formatting of doubles} \
- {expr 1e-186} \
+ {expr {1e-186}} \
9.9999999999999991e-187
test util-16.1.17.-185 {8.4 compatible formatting of doubles} \
- {expr 1e-185} \
+ {expr {1e-185}} \
9.9999999999999999e-186
test util-16.1.17.-184 {8.4 compatible formatting of doubles} \
- {expr 1e-184} \
+ {expr {1e-184}} \
1.0000000000000001e-184
test util-16.1.17.-183 {8.4 compatible formatting of doubles} \
- {expr 1e-183} \
+ {expr {1e-183}} \
1e-183
test util-16.1.17.-182 {8.4 compatible formatting of doubles} \
- {expr 1e-182} \
+ {expr {1e-182}} \
1e-182
test util-16.1.17.-181 {8.4 compatible formatting of doubles} \
- {expr 1e-181} \
+ {expr {1e-181}} \
1e-181
test util-16.1.17.-180 {8.4 compatible formatting of doubles} \
- {expr 1e-180} \
+ {expr {1e-180}} \
1e-180
test util-16.1.17.-179 {8.4 compatible formatting of doubles} \
- {expr 1e-179} \
+ {expr {1e-179}} \
1e-179
test util-16.1.17.-178 {8.4 compatible formatting of doubles} \
- {expr 1e-178} \
+ {expr {1e-178}} \
9.9999999999999995e-179
test util-16.1.17.-177 {8.4 compatible formatting of doubles} \
- {expr 1e-177} \
+ {expr {1e-177}} \
9.9999999999999995e-178
test util-16.1.17.-176 {8.4 compatible formatting of doubles} \
- {expr 1e-176} \
+ {expr {1e-176}} \
1e-176
test util-16.1.17.-175 {8.4 compatible formatting of doubles} \
- {expr 1e-175} \
+ {expr {1e-175}} \
1e-175
test util-16.1.17.-174 {8.4 compatible formatting of doubles} \
- {expr 1e-174} \
+ {expr {1e-174}} \
1e-174
test util-16.1.17.-173 {8.4 compatible formatting of doubles} \
- {expr 1e-173} \
+ {expr {1e-173}} \
1e-173
test util-16.1.17.-172 {8.4 compatible formatting of doubles} \
- {expr 1e-172} \
+ {expr {1e-172}} \
1e-172
test util-16.1.17.-171 {8.4 compatible formatting of doubles} \
- {expr 1e-171} \
+ {expr {1e-171}} \
9.9999999999999998e-172
test util-16.1.17.-170 {8.4 compatible formatting of doubles} \
- {expr 1e-170} \
+ {expr {1e-170}} \
9.9999999999999998e-171
test util-16.1.17.-169 {8.4 compatible formatting of doubles} \
- {expr 1e-169} \
+ {expr {1e-169}} \
1e-169
test util-16.1.17.-168 {8.4 compatible formatting of doubles} \
- {expr 1e-168} \
+ {expr {1e-168}} \
1e-168
test util-16.1.17.-167 {8.4 compatible formatting of doubles} \
- {expr 1e-167} \
+ {expr {1e-167}} \
1e-167
test util-16.1.17.-166 {8.4 compatible formatting of doubles} \
- {expr 1e-166} \
+ {expr {1e-166}} \
1e-166
test util-16.1.17.-165 {8.4 compatible formatting of doubles} \
- {expr 1e-165} \
+ {expr {1e-165}} \
1e-165
test util-16.1.17.-164 {8.4 compatible formatting of doubles} \
- {expr 1e-164} \
+ {expr {1e-164}} \
9.9999999999999996e-165
test util-16.1.17.-163 {8.4 compatible formatting of doubles} \
- {expr 1e-163} \
+ {expr {1e-163}} \
9.9999999999999992e-164
test util-16.1.17.-162 {8.4 compatible formatting of doubles} \
- {expr 1e-162} \
+ {expr {1e-162}} \
9.9999999999999995e-163
test util-16.1.17.-161 {8.4 compatible formatting of doubles} \
- {expr 1e-161} \
+ {expr {1e-161}} \
1e-161
test util-16.1.17.-160 {8.4 compatible formatting of doubles} \
- {expr 1e-160} \
+ {expr {1e-160}} \
9.9999999999999999e-161
test util-16.1.17.-159 {8.4 compatible formatting of doubles} \
- {expr 1e-159} \
+ {expr {1e-159}} \
9.9999999999999999e-160
test util-16.1.17.-158 {8.4 compatible formatting of doubles} \
- {expr 1e-158} \
+ {expr {1e-158}} \
1.0000000000000001e-158
test util-16.1.17.-157 {8.4 compatible formatting of doubles} \
- {expr 1e-157} \
+ {expr {1e-157}} \
9.9999999999999994e-158
test util-16.1.17.-156 {8.4 compatible formatting of doubles} \
- {expr 1e-156} \
+ {expr {1e-156}} \
1e-156
test util-16.1.17.-155 {8.4 compatible formatting of doubles} \
- {expr 1e-155} \
+ {expr {1e-155}} \
1e-155
test util-16.1.17.-154 {8.4 compatible formatting of doubles} \
- {expr 1e-154} \
+ {expr {1e-154}} \
9.9999999999999997e-155
test util-16.1.17.-153 {8.4 compatible formatting of doubles} \
- {expr 1e-153} \
+ {expr {1e-153}} \
1e-153
test util-16.1.17.-152 {8.4 compatible formatting of doubles} \
- {expr 1e-152} \
+ {expr {1e-152}} \
1.0000000000000001e-152
test util-16.1.17.-151 {8.4 compatible formatting of doubles} \
- {expr 1e-151} \
+ {expr {1e-151}} \
9.9999999999999994e-152
test util-16.1.17.-150 {8.4 compatible formatting of doubles} \
- {expr 1e-150} \
+ {expr {1e-150}} \
1e-150
test util-16.1.17.-149 {8.4 compatible formatting of doubles} \
- {expr 1e-149} \
+ {expr {1e-149}} \
9.9999999999999998e-150
test util-16.1.17.-148 {8.4 compatible formatting of doubles} \
- {expr 1e-148} \
+ {expr {1e-148}} \
9.9999999999999994e-149
test util-16.1.17.-147 {8.4 compatible formatting of doubles} \
- {expr 1e-147} \
+ {expr {1e-147}} \
9.9999999999999997e-148
test util-16.1.17.-146 {8.4 compatible formatting of doubles} \
- {expr 1e-146} \
+ {expr {1e-146}} \
1e-146
test util-16.1.17.-145 {8.4 compatible formatting of doubles} \
- {expr 1e-145} \
+ {expr {1e-145}} \
9.9999999999999991e-146
test util-16.1.17.-144 {8.4 compatible formatting of doubles} \
- {expr 1e-144} \
+ {expr {1e-144}} \
9.9999999999999995e-145
test util-16.1.17.-143 {8.4 compatible formatting of doubles} \
- {expr 1e-143} \
+ {expr {1e-143}} \
9.9999999999999995e-144
test util-16.1.17.-142 {8.4 compatible formatting of doubles} \
- {expr 1e-142} \
+ {expr {1e-142}} \
1e-142
test util-16.1.17.-141 {8.4 compatible formatting of doubles} \
- {expr 1e-141} \
+ {expr {1e-141}} \
1e-141
test util-16.1.17.-140 {8.4 compatible formatting of doubles} \
- {expr 1e-140} \
+ {expr {1e-140}} \
9.9999999999999998e-141
test util-16.1.17.-139 {8.4 compatible formatting of doubles} \
- {expr 1e-139} \
+ {expr {1e-139}} \
1e-139
test util-16.1.17.-138 {8.4 compatible formatting of doubles} \
- {expr 1e-138} \
+ {expr {1e-138}} \
1.0000000000000001e-138
test util-16.1.17.-137 {8.4 compatible formatting of doubles} \
- {expr 1e-137} \
+ {expr {1e-137}} \
9.9999999999999998e-138
test util-16.1.17.-136 {8.4 compatible formatting of doubles} \
- {expr 1e-136} \
+ {expr {1e-136}} \
1e-136
test util-16.1.17.-135 {8.4 compatible formatting of doubles} \
- {expr 1e-135} \
+ {expr {1e-135}} \
1e-135
test util-16.1.17.-134 {8.4 compatible formatting of doubles} \
- {expr 1e-134} \
+ {expr {1e-134}} \
1e-134
test util-16.1.17.-133 {8.4 compatible formatting of doubles} \
- {expr 1e-133} \
+ {expr {1e-133}} \
1.0000000000000001e-133
test util-16.1.17.-132 {8.4 compatible formatting of doubles} \
- {expr 1e-132} \
+ {expr {1e-132}} \
9.9999999999999999e-133
test util-16.1.17.-131 {8.4 compatible formatting of doubles} \
- {expr 1e-131} \
+ {expr {1e-131}} \
9.9999999999999999e-132
test util-16.1.17.-130 {8.4 compatible formatting of doubles} \
- {expr 1e-130} \
+ {expr {1e-130}} \
1.0000000000000001e-130
test util-16.1.17.-129 {8.4 compatible formatting of doubles} \
- {expr 1e-129} \
+ {expr {1e-129}} \
9.9999999999999993e-130
test util-16.1.17.-128 {8.4 compatible formatting of doubles} \
- {expr 1e-128} \
+ {expr {1e-128}} \
1.0000000000000001e-128
test util-16.1.17.-127 {8.4 compatible formatting of doubles} \
- {expr 1e-127} \
+ {expr {1e-127}} \
1e-127
test util-16.1.17.-126 {8.4 compatible formatting of doubles} \
- {expr 1e-126} \
+ {expr {1e-126}} \
9.9999999999999995e-127
test util-16.1.17.-125 {8.4 compatible formatting of doubles} \
- {expr 1e-125} \
+ {expr {1e-125}} \
1e-125
test util-16.1.17.-124 {8.4 compatible formatting of doubles} \
- {expr 1e-124} \
+ {expr {1e-124}} \
9.9999999999999993e-125
test util-16.1.17.-123 {8.4 compatible formatting of doubles} \
- {expr 1e-123} \
+ {expr {1e-123}} \
1.0000000000000001e-123
test util-16.1.17.-122 {8.4 compatible formatting of doubles} \
- {expr 1e-122} \
+ {expr {1e-122}} \
1.0000000000000001e-122
test util-16.1.17.-121 {8.4 compatible formatting of doubles} \
- {expr 1e-121} \
+ {expr {1e-121}} \
9.9999999999999998e-122
test util-16.1.17.-120 {8.4 compatible formatting of doubles} \
- {expr 1e-120} \
+ {expr {1e-120}} \
9.9999999999999998e-121
test util-16.1.17.-119 {8.4 compatible formatting of doubles} \
- {expr 1e-119} \
+ {expr {1e-119}} \
1e-119
test util-16.1.17.-118 {8.4 compatible formatting of doubles} \
- {expr 1e-118} \
+ {expr {1e-118}} \
9.9999999999999999e-119
test util-16.1.17.-117 {8.4 compatible formatting of doubles} \
- {expr 1e-117} \
+ {expr {1e-117}} \
1e-117
test util-16.1.17.-116 {8.4 compatible formatting of doubles} \
- {expr 1e-116} \
+ {expr {1e-116}} \
9.9999999999999999e-117
test util-16.1.17.-115 {8.4 compatible formatting of doubles} \
- {expr 1e-115} \
+ {expr {1e-115}} \
1.0000000000000001e-115
test util-16.1.17.-114 {8.4 compatible formatting of doubles} \
- {expr 1e-114} \
+ {expr {1e-114}} \
1.0000000000000001e-114
test util-16.1.17.-113 {8.4 compatible formatting of doubles} \
- {expr 1e-113} \
+ {expr {1e-113}} \
9.9999999999999998e-114
test util-16.1.17.-112 {8.4 compatible formatting of doubles} \
- {expr 1e-112} \
+ {expr {1e-112}} \
9.9999999999999995e-113
test util-16.1.17.-111 {8.4 compatible formatting of doubles} \
- {expr 1e-111} \
+ {expr {1e-111}} \
1.0000000000000001e-111
test util-16.1.17.-110 {8.4 compatible formatting of doubles} \
- {expr 1e-110} \
+ {expr {1e-110}} \
1.0000000000000001e-110
test util-16.1.17.-109 {8.4 compatible formatting of doubles} \
- {expr 1e-109} \
+ {expr {1e-109}} \
9.9999999999999999e-110
test util-16.1.17.-108 {8.4 compatible formatting of doubles} \
- {expr 1e-108} \
+ {expr {1e-108}} \
1e-108
test util-16.1.17.-107 {8.4 compatible formatting of doubles} \
- {expr 1e-107} \
+ {expr {1e-107}} \
1e-107
test util-16.1.17.-106 {8.4 compatible formatting of doubles} \
- {expr 1e-106} \
+ {expr {1e-106}} \
9.9999999999999994e-107
test util-16.1.17.-105 {8.4 compatible formatting of doubles} \
- {expr 1e-105} \
+ {expr {1e-105}} \
9.9999999999999997e-106
test util-16.1.17.-104 {8.4 compatible formatting of doubles} \
- {expr 1e-104} \
+ {expr {1e-104}} \
9.9999999999999993e-105
test util-16.1.17.-103 {8.4 compatible formatting of doubles} \
- {expr 1e-103} \
+ {expr {1e-103}} \
9.9999999999999996e-104
test util-16.1.17.-102 {8.4 compatible formatting of doubles} \
- {expr 1e-102} \
+ {expr {1e-102}} \
9.9999999999999993e-103
test util-16.1.17.-101 {8.4 compatible formatting of doubles} \
- {expr 1e-101} \
+ {expr {1e-101}} \
1.0000000000000001e-101
test util-16.1.17.-100 {8.4 compatible formatting of doubles} \
- {expr 1e-100} \
+ {expr {1e-100}} \
1e-100
test util-16.1.17.-99 {8.4 compatible formatting of doubles} \
- {expr 1e-99} \
+ {expr {1e-99}} \
1e-99
test util-16.1.17.-98 {8.4 compatible formatting of doubles} \
- {expr 1e-98} \
+ {expr {1e-98}} \
9.9999999999999994e-99
test util-16.1.17.-97 {8.4 compatible formatting of doubles} \
- {expr 1e-97} \
+ {expr {1e-97}} \
1e-97
test util-16.1.17.-96 {8.4 compatible formatting of doubles} \
- {expr 1e-96} \
+ {expr {1e-96}} \
9.9999999999999991e-97
test util-16.1.17.-95 {8.4 compatible formatting of doubles} \
- {expr 1e-95} \
+ {expr {1e-95}} \
9.9999999999999999e-96
test util-16.1.17.-94 {8.4 compatible formatting of doubles} \
- {expr 1e-94} \
+ {expr {1e-94}} \
9.9999999999999996e-95
test util-16.1.17.-93 {8.4 compatible formatting of doubles} \
- {expr 1e-93} \
+ {expr {1e-93}} \
9.999999999999999e-94
test util-16.1.17.-92 {8.4 compatible formatting of doubles} \
- {expr 1e-92} \
+ {expr {1e-92}} \
9.9999999999999999e-93
test util-16.1.17.-91 {8.4 compatible formatting of doubles} \
- {expr 1e-91} \
+ {expr {1e-91}} \
1e-91
test util-16.1.17.-90 {8.4 compatible formatting of doubles} \
- {expr 1e-90} \
+ {expr {1e-90}} \
9.9999999999999999e-91
test util-16.1.17.-89 {8.4 compatible formatting of doubles} \
- {expr 1e-89} \
+ {expr {1e-89}} \
1e-89
test util-16.1.17.-88 {8.4 compatible formatting of doubles} \
- {expr 1e-88} \
+ {expr {1e-88}} \
9.9999999999999993e-89
test util-16.1.17.-87 {8.4 compatible formatting of doubles} \
- {expr 1e-87} \
+ {expr {1e-87}} \
1e-87
test util-16.1.17.-86 {8.4 compatible formatting of doubles} \
- {expr 1e-86} \
+ {expr {1e-86}} \
1.0000000000000001e-86
test util-16.1.17.-85 {8.4 compatible formatting of doubles} \
- {expr 1e-85} \
+ {expr {1e-85}} \
9.9999999999999998e-86
test util-16.1.17.-84 {8.4 compatible formatting of doubles} \
- {expr 1e-84} \
+ {expr {1e-84}} \
1e-84
test util-16.1.17.-83 {8.4 compatible formatting of doubles} \
- {expr 1e-83} \
+ {expr {1e-83}} \
1e-83
test util-16.1.17.-82 {8.4 compatible formatting of doubles} \
- {expr 1e-82} \
+ {expr {1e-82}} \
9.9999999999999996e-83
test util-16.1.17.-81 {8.4 compatible formatting of doubles} \
- {expr 1e-81} \
+ {expr {1e-81}} \
9.9999999999999996e-82
test util-16.1.17.-80 {8.4 compatible formatting of doubles} \
- {expr 1e-80} \
+ {expr {1e-80}} \
9.9999999999999996e-81
test util-16.1.17.-79 {8.4 compatible formatting of doubles} \
- {expr 1e-79} \
+ {expr {1e-79}} \
1e-79
test util-16.1.17.-78 {8.4 compatible formatting of doubles} \
- {expr 1e-78} \
+ {expr {1e-78}} \
1e-78
test util-16.1.17.-77 {8.4 compatible formatting of doubles} \
- {expr 1e-77} \
+ {expr {1e-77}} \
9.9999999999999993e-78
test util-16.1.17.-76 {8.4 compatible formatting of doubles} \
- {expr 1e-76} \
+ {expr {1e-76}} \
9.9999999999999993e-77
test util-16.1.17.-75 {8.4 compatible formatting of doubles} \
- {expr 1e-75} \
+ {expr {1e-75}} \
9.9999999999999996e-76
test util-16.1.17.-74 {8.4 compatible formatting of doubles} \
- {expr 1e-74} \
+ {expr {1e-74}} \
9.9999999999999996e-75
test util-16.1.17.-73 {8.4 compatible formatting of doubles} \
- {expr 1e-73} \
+ {expr {1e-73}} \
1e-73
test util-16.1.17.-72 {8.4 compatible formatting of doubles} \
- {expr 1e-72} \
+ {expr {1e-72}} \
9.9999999999999997e-73
test util-16.1.17.-71 {8.4 compatible formatting of doubles} \
- {expr 1e-71} \
+ {expr {1e-71}} \
9.9999999999999992e-72
test util-16.1.17.-70 {8.4 compatible formatting of doubles} \
- {expr 1e-70} \
+ {expr {1e-70}} \
1e-70
test util-16.1.17.-69 {8.4 compatible formatting of doubles} \
- {expr 1e-69} \
+ {expr {1e-69}} \
9.9999999999999996e-70
test util-16.1.17.-68 {8.4 compatible formatting of doubles} \
- {expr 1e-68} \
+ {expr {1e-68}} \
1.0000000000000001e-68
test util-16.1.17.-67 {8.4 compatible formatting of doubles} \
- {expr 1e-67} \
+ {expr {1e-67}} \
9.9999999999999994e-68
test util-16.1.17.-66 {8.4 compatible formatting of doubles} \
- {expr 1e-66} \
+ {expr {1e-66}} \
9.9999999999999998e-67
test util-16.1.17.-65 {8.4 compatible formatting of doubles} \
- {expr 1e-65} \
+ {expr {1e-65}} \
9.9999999999999992e-66
test util-16.1.17.-64 {8.4 compatible formatting of doubles} \
- {expr 1e-64} \
+ {expr {1e-64}} \
9.9999999999999997e-65
test util-16.1.17.-63 {8.4 compatible formatting of doubles} \
- {expr 1e-63} \
+ {expr {1e-63}} \
1.0000000000000001e-63
test util-16.1.17.-62 {8.4 compatible formatting of doubles} \
- {expr 1e-62} \
+ {expr {1e-62}} \
1e-62
test util-16.1.17.-61 {8.4 compatible formatting of doubles} \
- {expr 1e-61} \
+ {expr {1e-61}} \
1e-61
test util-16.1.17.-60 {8.4 compatible formatting of doubles} \
- {expr 1e-60} \
+ {expr {1e-60}} \
9.9999999999999997e-61
test util-16.1.17.-59 {8.4 compatible formatting of doubles} \
- {expr 1e-59} \
+ {expr {1e-59}} \
1e-59
test util-16.1.17.-58 {8.4 compatible formatting of doubles} \
- {expr 1e-58} \
+ {expr {1e-58}} \
1e-58
test util-16.1.17.-57 {8.4 compatible formatting of doubles} \
- {expr 1e-57} \
+ {expr {1e-57}} \
9.9999999999999995e-58
test util-16.1.17.-56 {8.4 compatible formatting of doubles} \
- {expr 1e-56} \
+ {expr {1e-56}} \
1e-56
test util-16.1.17.-55 {8.4 compatible formatting of doubles} \
- {expr 1e-55} \
+ {expr {1e-55}} \
9.9999999999999999e-56
test util-16.1.17.-54 {8.4 compatible formatting of doubles} \
- {expr 1e-54} \
+ {expr {1e-54}} \
1e-54
test util-16.1.17.-53 {8.4 compatible formatting of doubles} \
- {expr 1e-53} \
+ {expr {1e-53}} \
1e-53
test util-16.1.17.-52 {8.4 compatible formatting of doubles} \
- {expr 1e-52} \
+ {expr {1e-52}} \
1e-52
test util-16.1.17.-51 {8.4 compatible formatting of doubles} \
- {expr 1e-51} \
+ {expr {1e-51}} \
1e-51
test util-16.1.17.-50 {8.4 compatible formatting of doubles} \
- {expr 1e-50} \
+ {expr {1e-50}} \
1e-50
test util-16.1.17.-49 {8.4 compatible formatting of doubles} \
- {expr 1e-49} \
+ {expr {1e-49}} \
9.9999999999999994e-50
test util-16.1.17.-48 {8.4 compatible formatting of doubles} \
- {expr 1e-48} \
+ {expr {1e-48}} \
9.9999999999999997e-49
test util-16.1.17.-47 {8.4 compatible formatting of doubles} \
- {expr 1e-47} \
+ {expr {1e-47}} \
9.9999999999999997e-48
test util-16.1.17.-46 {8.4 compatible formatting of doubles} \
- {expr 1e-46} \
+ {expr {1e-46}} \
1e-46
test util-16.1.17.-45 {8.4 compatible formatting of doubles} \
- {expr 1e-45} \
+ {expr {1e-45}} \
9.9999999999999998e-46
test util-16.1.17.-44 {8.4 compatible formatting of doubles} \
- {expr 1e-44} \
+ {expr {1e-44}} \
9.9999999999999995e-45
test util-16.1.17.-43 {8.4 compatible formatting of doubles} \
- {expr 1e-43} \
+ {expr {1e-43}} \
1.0000000000000001e-43
test util-16.1.17.-42 {8.4 compatible formatting of doubles} \
- {expr 1e-42} \
+ {expr {1e-42}} \
1e-42
test util-16.1.17.-41 {8.4 compatible formatting of doubles} \
- {expr 1e-41} \
+ {expr {1e-41}} \
1e-41
test util-16.1.17.-40 {8.4 compatible formatting of doubles} \
- {expr 1e-40} \
+ {expr {1e-40}} \
9.9999999999999993e-41
test util-16.1.17.-39 {8.4 compatible formatting of doubles} \
- {expr 1e-39} \
+ {expr {1e-39}} \
9.9999999999999993e-40
test util-16.1.17.-38 {8.4 compatible formatting of doubles} \
- {expr 1e-38} \
+ {expr {1e-38}} \
9.9999999999999996e-39
test util-16.1.17.-37 {8.4 compatible formatting of doubles} \
- {expr 1e-37} \
+ {expr {1e-37}} \
1.0000000000000001e-37
test util-16.1.17.-36 {8.4 compatible formatting of doubles} \
- {expr 1e-36} \
+ {expr {1e-36}} \
9.9999999999999994e-37
test util-16.1.17.-35 {8.4 compatible formatting of doubles} \
- {expr 1e-35} \
+ {expr {1e-35}} \
1e-35
test util-16.1.17.-34 {8.4 compatible formatting of doubles} \
- {expr 1e-34} \
+ {expr {1e-34}} \
9.9999999999999993e-35
test util-16.1.17.-33 {8.4 compatible formatting of doubles} \
- {expr 1e-33} \
+ {expr {1e-33}} \
1.0000000000000001e-33
test util-16.1.17.-32 {8.4 compatible formatting of doubles} \
- {expr 1e-32} \
+ {expr {1e-32}} \
1.0000000000000001e-32
test util-16.1.17.-31 {8.4 compatible formatting of doubles} \
- {expr 1e-31} \
+ {expr {1e-31}} \
1.0000000000000001e-31
test util-16.1.17.-30 {8.4 compatible formatting of doubles} \
- {expr 1e-30} \
+ {expr {1e-30}} \
1.0000000000000001e-30
test util-16.1.17.-29 {8.4 compatible formatting of doubles} \
- {expr 1e-29} \
+ {expr {1e-29}} \
9.9999999999999994e-30
test util-16.1.17.-28 {8.4 compatible formatting of doubles} \
- {expr 1e-28} \
+ {expr {1e-28}} \
9.9999999999999997e-29
test util-16.1.17.-27 {8.4 compatible formatting of doubles} \
- {expr 1e-27} \
+ {expr {1e-27}} \
1e-27
test util-16.1.17.-26 {8.4 compatible formatting of doubles} \
- {expr 1e-26} \
+ {expr {1e-26}} \
1e-26
test util-16.1.17.-25 {8.4 compatible formatting of doubles} \
- {expr 1e-25} \
+ {expr {1e-25}} \
1e-25
test util-16.1.17.-24 {8.4 compatible formatting of doubles} \
- {expr 1e-24} \
+ {expr {1e-24}} \
9.9999999999999992e-25
test util-16.1.17.-23 {8.4 compatible formatting of doubles} \
- {expr 1e-23} \
+ {expr {1e-23}} \
9.9999999999999996e-24
test util-16.1.17.-22 {8.4 compatible formatting of doubles} \
- {expr 1e-22} \
+ {expr {1e-22}} \
1e-22
test util-16.1.17.-21 {8.4 compatible formatting of doubles} \
- {expr 1e-21} \
+ {expr {1e-21}} \
9.9999999999999991e-22
test util-16.1.17.-20 {8.4 compatible formatting of doubles} \
- {expr 1e-20} \
+ {expr {1e-20}} \
9.9999999999999995e-21
test util-16.1.17.-19 {8.4 compatible formatting of doubles} \
- {expr 1e-19} \
+ {expr {1e-19}} \
9.9999999999999998e-20
test util-16.1.17.-18 {8.4 compatible formatting of doubles} \
- {expr 1e-18} \
+ {expr {1e-18}} \
1.0000000000000001e-18
test util-16.1.17.-17 {8.4 compatible formatting of doubles} \
- {expr 1e-17} \
+ {expr {1e-17}} \
1.0000000000000001e-17
test util-16.1.17.-16 {8.4 compatible formatting of doubles} \
- {expr 1e-16} \
+ {expr {1e-16}} \
9.9999999999999998e-17
test util-16.1.17.-15 {8.4 compatible formatting of doubles} \
- {expr 1e-15} \
+ {expr {1e-15}} \
1.0000000000000001e-15
test util-16.1.17.-14 {8.4 compatible formatting of doubles} \
- {expr 1e-14} \
+ {expr {1e-14}} \
1e-14
test util-16.1.17.-13 {8.4 compatible formatting of doubles} \
- {expr 1e-13} \
+ {expr {1e-13}} \
1e-13
test util-16.1.17.-12 {8.4 compatible formatting of doubles} \
- {expr 1e-12} \
+ {expr {1e-12}} \
9.9999999999999998e-13
test util-16.1.17.-11 {8.4 compatible formatting of doubles} \
- {expr 1e-11} \
+ {expr {1e-11}} \
9.9999999999999994e-12
test util-16.1.17.-10 {8.4 compatible formatting of doubles} \
- {expr 1e-10} \
+ {expr {1e-10}} \
1e-10
test util-16.1.17.-9 {8.4 compatible formatting of doubles} \
- {expr 1e-9} \
+ {expr {1e-9}} \
1.0000000000000001e-09
test util-16.1.17.-8 {8.4 compatible formatting of doubles} \
- {expr 1e-8} \
+ {expr {1e-8}} \
1e-08
test util-16.1.17.-7 {8.4 compatible formatting of doubles} \
- {expr 1e-7} \
+ {expr {1e-7}} \
9.9999999999999995e-08
test util-16.1.17.-6 {8.4 compatible formatting of doubles} \
- {expr 1e-6} \
+ {expr {1e-6}} \
9.9999999999999995e-07
test util-16.1.17.-5 {8.4 compatible formatting of doubles} \
- {expr 1e-5} \
+ {expr {1e-5}} \
1.0000000000000001e-05
test util-16.1.17.-4 {8.4 compatible formatting of doubles} \
- {expr 1e-4} \
+ {expr {1e-4}} \
0.0001
test util-16.1.17.-3 {8.4 compatible formatting of doubles} \
- {expr 1e-3} \
+ {expr {1e-3}} \
0.001
test util-16.1.17.-2 {8.4 compatible formatting of doubles} \
- {expr 1e-2} \
+ {expr {1e-2}} \
0.01
test util-16.1.17.-1 {8.4 compatible formatting of doubles} \
- {expr 1e-1} \
+ {expr {1e-1}} \
0.10000000000000001
test util-16.1.17.0 {8.4 compatible formatting of doubles} \
- {expr 1e0} \
+ {expr {1e0}} \
1.0
test util-16.1.17.1 {8.4 compatible formatting of doubles} \
- {expr 1e1} \
+ {expr {1e1}} \
10.0
test util-16.1.17.2 {8.4 compatible formatting of doubles} \
- {expr 1e2} \
+ {expr {1e2}} \
100.0
test util-16.1.17.3 {8.4 compatible formatting of doubles} \
- {expr 1e3} \
+ {expr {1e3}} \
1000.0
test util-16.1.17.4 {8.4 compatible formatting of doubles} \
- {expr 1e4} \
+ {expr {1e4}} \
10000.0
test util-16.1.17.5 {8.4 compatible formatting of doubles} \
- {expr 1e5} \
+ {expr {1e5}} \
100000.0
test util-16.1.17.6 {8.4 compatible formatting of doubles} \
- {expr 1e6} \
+ {expr {1e6}} \
1000000.0
test util-16.1.17.7 {8.4 compatible formatting of doubles} \
- {expr 1e7} \
+ {expr {1e7}} \
10000000.0
test util-16.1.17.8 {8.4 compatible formatting of doubles} \
- {expr 1e8} \
+ {expr {1e8}} \
100000000.0
test util-16.1.17.9 {8.4 compatible formatting of doubles} \
- {expr 1e9} \
+ {expr {1e9}} \
1000000000.0
test util-16.1.17.10 {8.4 compatible formatting of doubles} \
- {expr 1e10} \
+ {expr {1e10}} \
10000000000.0
test util-16.1.17.11 {8.4 compatible formatting of doubles} \
- {expr 1e11} \
+ {expr {1e11}} \
100000000000.0
test util-16.1.17.12 {8.4 compatible formatting of doubles} \
- {expr 1e12} \
+ {expr {1e12}} \
1000000000000.0
test util-16.1.17.13 {8.4 compatible formatting of doubles} \
- {expr 1e13} \
+ {expr {1e13}} \
10000000000000.0
test util-16.1.17.14 {8.4 compatible formatting of doubles} \
- {expr 1e14} \
+ {expr {1e14}} \
100000000000000.0
test util-16.1.17.15 {8.4 compatible formatting of doubles} \
- {expr 1e15} \
+ {expr {1e15}} \
1000000000000000.0
test util-16.1.17.16 {8.4 compatible formatting of doubles} \
- {expr 1e16} \
+ {expr {1e16}} \
10000000000000000.0
test util-16.1.17.17 {8.4 compatible formatting of doubles} \
- {expr 1e17} \
+ {expr {1e17}} \
1e+17
test util-16.1.17.18 {8.4 compatible formatting of doubles} \
- {expr 1e18} \
+ {expr {1e18}} \
1e+18
test util-16.1.17.19 {8.4 compatible formatting of doubles} \
- {expr 1e19} \
+ {expr {1e19}} \
1e+19
test util-16.1.17.20 {8.4 compatible formatting of doubles} \
- {expr 1e20} \
+ {expr {1e20}} \
1e+20
test util-16.1.17.21 {8.4 compatible formatting of doubles} \
- {expr 1e21} \
+ {expr {1e21}} \
1e+21
test util-16.1.17.22 {8.4 compatible formatting of doubles} \
- {expr 1e22} \
+ {expr {1e22}} \
1e+22
test util-16.1.17.23 {8.4 compatible formatting of doubles} \
- {expr 1e23} \
+ {expr {1e23}} \
9.9999999999999992e+22
test util-16.1.17.24 {8.4 compatible formatting of doubles} \
- {expr 1e24} \
+ {expr {1e24}} \
9.9999999999999998e+23
test util-16.1.17.25 {8.4 compatible formatting of doubles} \
- {expr 1e25} \
+ {expr {1e25}} \
1.0000000000000001e+25
test util-16.1.17.26 {8.4 compatible formatting of doubles} \
- {expr 1e26} \
+ {expr {1e26}} \
1e+26
test util-16.1.17.27 {8.4 compatible formatting of doubles} \
- {expr 1e27} \
+ {expr {1e27}} \
1e+27
test util-16.1.17.28 {8.4 compatible formatting of doubles} \
- {expr 1e28} \
+ {expr {1e28}} \
9.9999999999999996e+27
test util-16.1.17.29 {8.4 compatible formatting of doubles} \
- {expr 1e29} \
+ {expr {1e29}} \
9.9999999999999991e+28
test util-16.1.17.30 {8.4 compatible formatting of doubles} \
- {expr 1e30} \
+ {expr {1e30}} \
1e+30
test util-16.1.17.31 {8.4 compatible formatting of doubles} \
- {expr 1e31} \
+ {expr {1e31}} \
9.9999999999999996e+30
test util-16.1.17.32 {8.4 compatible formatting of doubles} \
- {expr 1e32} \
+ {expr {1e32}} \
1.0000000000000001e+32
test util-16.1.17.33 {8.4 compatible formatting of doubles} \
- {expr 1e33} \
+ {expr {1e33}} \
9.9999999999999995e+32
test util-16.1.17.34 {8.4 compatible formatting of doubles} \
- {expr 1e34} \
+ {expr {1e34}} \
9.9999999999999995e+33
test util-16.1.17.35 {8.4 compatible formatting of doubles} \
- {expr 1e35} \
+ {expr {1e35}} \
9.9999999999999997e+34
test util-16.1.17.36 {8.4 compatible formatting of doubles} \
- {expr 1e36} \
+ {expr {1e36}} \
1e+36
test util-16.1.17.37 {8.4 compatible formatting of doubles} \
- {expr 1e37} \
+ {expr {1e37}} \
9.9999999999999995e+36
test util-16.1.17.38 {8.4 compatible formatting of doubles} \
- {expr 1e38} \
+ {expr {1e38}} \
9.9999999999999998e+37
test util-16.1.17.39 {8.4 compatible formatting of doubles} \
- {expr 1e39} \
+ {expr {1e39}} \
9.9999999999999994e+38
test util-16.1.17.40 {8.4 compatible formatting of doubles} \
- {expr 1e40} \
+ {expr {1e40}} \
1e+40
test util-16.1.17.41 {8.4 compatible formatting of doubles} \
- {expr 1e41} \
+ {expr {1e41}} \
1e+41
test util-16.1.17.42 {8.4 compatible formatting of doubles} \
- {expr 1e42} \
+ {expr {1e42}} \
1e+42
test util-16.1.17.43 {8.4 compatible formatting of doubles} \
- {expr 1e43} \
+ {expr {1e43}} \
1e+43
test util-16.1.17.44 {8.4 compatible formatting of doubles} \
- {expr 1e44} \
+ {expr {1e44}} \
1.0000000000000001e+44
test util-16.1.17.45 {8.4 compatible formatting of doubles} \
- {expr 1e45} \
+ {expr {1e45}} \
9.9999999999999993e+44
test util-16.1.17.46 {8.4 compatible formatting of doubles} \
- {expr 1e46} \
+ {expr {1e46}} \
9.9999999999999999e+45
test util-16.1.17.47 {8.4 compatible formatting of doubles} \
- {expr 1e47} \
+ {expr {1e47}} \
1e+47
test util-16.1.17.48 {8.4 compatible formatting of doubles} \
- {expr 1e48} \
+ {expr {1e48}} \
1e+48
test util-16.1.17.49 {8.4 compatible formatting of doubles} \
- {expr 1e49} \
+ {expr {1e49}} \
9.9999999999999995e+48
test util-16.1.17.50 {8.4 compatible formatting of doubles} \
- {expr 1e50} \
+ {expr {1e50}} \
1.0000000000000001e+50
test util-16.1.17.51 {8.4 compatible formatting of doubles} \
- {expr 1e51} \
+ {expr {1e51}} \
9.9999999999999999e+50
test util-16.1.17.52 {8.4 compatible formatting of doubles} \
- {expr 1e52} \
+ {expr {1e52}} \
9.9999999999999999e+51
test util-16.1.17.53 {8.4 compatible formatting of doubles} \
- {expr 1e53} \
+ {expr {1e53}} \
9.9999999999999999e+52
test util-16.1.17.54 {8.4 compatible formatting of doubles} \
- {expr 1e54} \
+ {expr {1e54}} \
1.0000000000000001e+54
test util-16.1.17.55 {8.4 compatible formatting of doubles} \
- {expr 1e55} \
+ {expr {1e55}} \
1e+55
test util-16.1.17.56 {8.4 compatible formatting of doubles} \
- {expr 1e56} \
+ {expr {1e56}} \
1.0000000000000001e+56
test util-16.1.17.57 {8.4 compatible formatting of doubles} \
- {expr 1e57} \
+ {expr {1e57}} \
1e+57
test util-16.1.17.58 {8.4 compatible formatting of doubles} \
- {expr 1e58} \
+ {expr {1e58}} \
9.9999999999999994e+57
test util-16.1.17.59 {8.4 compatible formatting of doubles} \
- {expr 1e59} \
+ {expr {1e59}} \
9.9999999999999997e+58
test util-16.1.17.60 {8.4 compatible formatting of doubles} \
- {expr 1e60} \
+ {expr {1e60}} \
9.9999999999999995e+59
test util-16.1.17.61 {8.4 compatible formatting of doubles} \
- {expr 1e61} \
+ {expr {1e61}} \
9.9999999999999995e+60
test util-16.1.17.62 {8.4 compatible formatting of doubles} \
- {expr 1e62} \
+ {expr {1e62}} \
1e+62
test util-16.1.17.63 {8.4 compatible formatting of doubles} \
- {expr 1e63} \
+ {expr {1e63}} \
1.0000000000000001e+63
test util-16.1.17.64 {8.4 compatible formatting of doubles} \
- {expr 1e64} \
+ {expr {1e64}} \
1e+64
test util-16.1.17.65 {8.4 compatible formatting of doubles} \
- {expr 1e65} \
+ {expr {1e65}} \
9.9999999999999999e+64
test util-16.1.17.66 {8.4 compatible formatting of doubles} \
- {expr 1e66} \
+ {expr {1e66}} \
9.9999999999999995e+65
test util-16.1.17.67 {8.4 compatible formatting of doubles} \
- {expr 1e67} \
+ {expr {1e67}} \
9.9999999999999998e+66
test util-16.1.17.68 {8.4 compatible formatting of doubles} \
- {expr 1e68} \
+ {expr {1e68}} \
9.9999999999999995e+67
test util-16.1.17.69 {8.4 compatible formatting of doubles} \
- {expr 1e69} \
+ {expr {1e69}} \
1.0000000000000001e+69
test util-16.1.17.70 {8.4 compatible formatting of doubles} \
- {expr 1e70} \
+ {expr {1e70}} \
1.0000000000000001e+70
test util-16.1.17.71 {8.4 compatible formatting of doubles} \
- {expr 1e71} \
+ {expr {1e71}} \
1e+71
test util-16.1.17.72 {8.4 compatible formatting of doubles} \
- {expr 1e72} \
+ {expr {1e72}} \
9.9999999999999994e+71
test util-16.1.17.73 {8.4 compatible formatting of doubles} \
- {expr 1e73} \
+ {expr {1e73}} \
9.9999999999999998e+72
test util-16.1.17.74 {8.4 compatible formatting of doubles} \
- {expr 1e74} \
+ {expr {1e74}} \
9.9999999999999995e+73
test util-16.1.17.75 {8.4 compatible formatting of doubles} \
- {expr 1e75} \
+ {expr {1e75}} \
9.9999999999999993e+74
test util-16.1.17.76 {8.4 compatible formatting of doubles} \
- {expr 1e76} \
+ {expr {1e76}} \
1e+76
test util-16.1.17.77 {8.4 compatible formatting of doubles} \
- {expr 1e77} \
+ {expr {1e77}} \
9.9999999999999998e+76
test util-16.1.17.78 {8.4 compatible formatting of doubles} \
- {expr 1e78} \
+ {expr {1e78}} \
1e+78
test util-16.1.17.79 {8.4 compatible formatting of doubles} \
- {expr 1e79} \
+ {expr {1e79}} \
9.9999999999999997e+78
test util-16.1.17.80 {8.4 compatible formatting of doubles} \
- {expr 1e80} \
+ {expr {1e80}} \
1e+80
test util-16.1.17.81 {8.4 compatible formatting of doubles} \
- {expr 1e81} \
+ {expr {1e81}} \
9.9999999999999992e+80
test util-16.1.17.82 {8.4 compatible formatting of doubles} \
- {expr 1e82} \
+ {expr {1e82}} \
9.9999999999999996e+81
test util-16.1.17.83 {8.4 compatible formatting of doubles} \
- {expr 1e83} \
+ {expr {1e83}} \
1e+83
test util-16.1.17.84 {8.4 compatible formatting of doubles} \
- {expr 1e84} \
+ {expr {1e84}} \
1.0000000000000001e+84
test util-16.1.17.85 {8.4 compatible formatting of doubles} \
- {expr 1e85} \
+ {expr {1e85}} \
1e+85
test util-16.1.17.86 {8.4 compatible formatting of doubles} \
- {expr 1e86} \
+ {expr {1e86}} \
1e+86
test util-16.1.17.87 {8.4 compatible formatting of doubles} \
- {expr 1e87} \
+ {expr {1e87}} \
9.9999999999999996e+86
test util-16.1.17.88 {8.4 compatible formatting of doubles} \
- {expr 1e88} \
+ {expr {1e88}} \
9.9999999999999996e+87
test util-16.1.17.89 {8.4 compatible formatting of doubles} \
- {expr 1e89} \
+ {expr {1e89}} \
9.9999999999999999e+88
test util-16.1.17.90 {8.4 compatible formatting of doubles} \
- {expr 1e90} \
+ {expr {1e90}} \
9.9999999999999997e+89
test util-16.1.17.91 {8.4 compatible formatting of doubles} \
- {expr 1e91} \
+ {expr {1e91}} \
1.0000000000000001e+91
test util-16.1.17.92 {8.4 compatible formatting of doubles} \
- {expr 1e92} \
+ {expr {1e92}} \
1e+92
test util-16.1.17.93 {8.4 compatible formatting of doubles} \
- {expr 1e93} \
+ {expr {1e93}} \
1e+93
test util-16.1.17.94 {8.4 compatible formatting of doubles} \
- {expr 1e94} \
+ {expr {1e94}} \
1e+94
test util-16.1.17.95 {8.4 compatible formatting of doubles} \
- {expr 1e95} \
+ {expr {1e95}} \
1e+95
test util-16.1.17.96 {8.4 compatible formatting of doubles} \
- {expr 1e96} \
+ {expr {1e96}} \
1e+96
test util-16.1.17.97 {8.4 compatible formatting of doubles} \
- {expr 1e97} \
+ {expr {1e97}} \
1.0000000000000001e+97
test util-16.1.17.98 {8.4 compatible formatting of doubles} \
- {expr 1e98} \
+ {expr {1e98}} \
1e+98
test util-16.1.17.99 {8.4 compatible formatting of doubles} \
- {expr 1e99} \
+ {expr {1e99}} \
9.9999999999999997e+98
test util-16.1.17.100 {8.4 compatible formatting of doubles} \
- {expr 1e100} \
+ {expr {1e100}} \
1e+100
test util-16.1.17.101 {8.4 compatible formatting of doubles} \
- {expr 1e101} \
+ {expr {1e101}} \
9.9999999999999998e+100
test util-16.1.17.102 {8.4 compatible formatting of doubles} \
- {expr 1e102} \
+ {expr {1e102}} \
9.9999999999999998e+101
test util-16.1.17.103 {8.4 compatible formatting of doubles} \
- {expr 1e103} \
+ {expr {1e103}} \
1e+103
test util-16.1.17.104 {8.4 compatible formatting of doubles} \
- {expr 1e104} \
+ {expr {1e104}} \
1e+104
test util-16.1.17.105 {8.4 compatible formatting of doubles} \
- {expr 1e105} \
+ {expr {1e105}} \
9.9999999999999994e+104
test util-16.1.17.106 {8.4 compatible formatting of doubles} \
- {expr 1e106} \
+ {expr {1e106}} \
1.0000000000000001e+106
test util-16.1.17.107 {8.4 compatible formatting of doubles} \
- {expr 1e107} \
+ {expr {1e107}} \
9.9999999999999997e+106
test util-16.1.17.108 {8.4 compatible formatting of doubles} \
- {expr 1e108} \
+ {expr {1e108}} \
1e+108
test util-16.1.17.109 {8.4 compatible formatting of doubles} \
- {expr 1e109} \
+ {expr {1e109}} \
9.9999999999999998e+108
test util-16.1.17.110 {8.4 compatible formatting of doubles} \
- {expr 1e110} \
+ {expr {1e110}} \
1e+110
test util-16.1.17.111 {8.4 compatible formatting of doubles} \
- {expr 1e111} \
+ {expr {1e111}} \
9.9999999999999996e+110
test util-16.1.17.112 {8.4 compatible formatting of doubles} \
- {expr 1e112} \
+ {expr {1e112}} \
9.9999999999999993e+111
test util-16.1.17.113 {8.4 compatible formatting of doubles} \
- {expr 1e113} \
+ {expr {1e113}} \
1e+113
test util-16.1.17.114 {8.4 compatible formatting of doubles} \
- {expr 1e114} \
+ {expr {1e114}} \
1e+114
test util-16.1.17.115 {8.4 compatible formatting of doubles} \
- {expr 1e115} \
+ {expr {1e115}} \
1e+115
test util-16.1.17.116 {8.4 compatible formatting of doubles} \
- {expr 1e116} \
+ {expr {1e116}} \
1e+116
test util-16.1.17.117 {8.4 compatible formatting of doubles} \
- {expr 1e117} \
+ {expr {1e117}} \
1.0000000000000001e+117
test util-16.1.17.118 {8.4 compatible formatting of doubles} \
- {expr 1e118} \
+ {expr {1e118}} \
9.9999999999999997e+117
test util-16.1.17.119 {8.4 compatible formatting of doubles} \
- {expr 1e119} \
+ {expr {1e119}} \
9.9999999999999994e+118
test util-16.1.17.120 {8.4 compatible formatting of doubles} \
- {expr 1e120} \
+ {expr {1e120}} \
9.9999999999999998e+119
test util-16.1.17.121 {8.4 compatible formatting of doubles} \
- {expr 1e121} \
+ {expr {1e121}} \
1e+121
test util-16.1.17.122 {8.4 compatible formatting of doubles} \
- {expr 1e122} \
+ {expr {1e122}} \
1e+122
test util-16.1.17.123 {8.4 compatible formatting of doubles} \
- {expr 1e123} \
+ {expr {1e123}} \
9.9999999999999998e+122
test util-16.1.17.124 {8.4 compatible formatting of doubles} \
- {expr 1e124} \
+ {expr {1e124}} \
9.9999999999999995e+123
test util-16.1.17.125 {8.4 compatible formatting of doubles} \
- {expr 1e125} \
+ {expr {1e125}} \
9.9999999999999992e+124
test util-16.1.17.126 {8.4 compatible formatting of doubles} \
- {expr 1e126} \
+ {expr {1e126}} \
9.9999999999999992e+125
test util-16.1.17.127 {8.4 compatible formatting of doubles} \
- {expr 1e127} \
+ {expr {1e127}} \
9.9999999999999995e+126
test util-16.1.17.128 {8.4 compatible formatting of doubles} \
- {expr 1e128} \
+ {expr {1e128}} \
1.0000000000000001e+128
test util-16.1.17.129 {8.4 compatible formatting of doubles} \
- {expr 1e129} \
+ {expr {1e129}} \
1e+129
test util-16.1.17.130 {8.4 compatible formatting of doubles} \
- {expr 1e130} \
+ {expr {1e130}} \
1.0000000000000001e+130
test util-16.1.17.131 {8.4 compatible formatting of doubles} \
- {expr 1e131} \
+ {expr {1e131}} \
9.9999999999999991e+130
test util-16.1.17.132 {8.4 compatible formatting of doubles} \
- {expr 1e132} \
+ {expr {1e132}} \
9.9999999999999999e+131
test util-16.1.17.133 {8.4 compatible formatting of doubles} \
- {expr 1e133} \
+ {expr {1e133}} \
1e+133
test util-16.1.17.134 {8.4 compatible formatting of doubles} \
- {expr 1e134} \
+ {expr {1e134}} \
9.9999999999999992e+133
test util-16.1.17.135 {8.4 compatible formatting of doubles} \
- {expr 1e135} \
+ {expr {1e135}} \
9.9999999999999996e+134
test util-16.1.17.136 {8.4 compatible formatting of doubles} \
- {expr 1e136} \
+ {expr {1e136}} \
1.0000000000000001e+136
test util-16.1.17.137 {8.4 compatible formatting of doubles} \
- {expr 1e137} \
+ {expr {1e137}} \
1e+137
test util-16.1.17.138 {8.4 compatible formatting of doubles} \
- {expr 1e138} \
+ {expr {1e138}} \
1e+138
test util-16.1.17.139 {8.4 compatible formatting of doubles} \
- {expr 1e139} \
+ {expr {1e139}} \
1e+139
test util-16.1.17.140 {8.4 compatible formatting of doubles} \
- {expr 1e140} \
+ {expr {1e140}} \
1.0000000000000001e+140
test util-16.1.17.141 {8.4 compatible formatting of doubles} \
- {expr 1e141} \
+ {expr {1e141}} \
1e+141
test util-16.1.17.142 {8.4 compatible formatting of doubles} \
- {expr 1e142} \
+ {expr {1e142}} \
1.0000000000000001e+142
test util-16.1.17.143 {8.4 compatible formatting of doubles} \
- {expr 1e143} \
+ {expr {1e143}} \
1e+143
test util-16.1.17.144 {8.4 compatible formatting of doubles} \
- {expr 1e144} \
+ {expr {1e144}} \
1e+144
test util-16.1.17.145 {8.4 compatible formatting of doubles} \
- {expr 1e145} \
+ {expr {1e145}} \
9.9999999999999999e+144
test util-16.1.17.146 {8.4 compatible formatting of doubles} \
- {expr 1e146} \
+ {expr {1e146}} \
9.9999999999999993e+145
test util-16.1.17.147 {8.4 compatible formatting of doubles} \
- {expr 1e147} \
+ {expr {1e147}} \
9.9999999999999998e+146
test util-16.1.17.148 {8.4 compatible formatting of doubles} \
- {expr 1e148} \
+ {expr {1e148}} \
1e+148
test util-16.1.17.149 {8.4 compatible formatting of doubles} \
- {expr 1e149} \
+ {expr {1e149}} \
1e+149
test util-16.1.17.150 {8.4 compatible formatting of doubles} \
- {expr 1e150} \
+ {expr {1e150}} \
9.9999999999999998e+149
test util-16.1.17.151 {8.4 compatible formatting of doubles} \
- {expr 1e151} \
+ {expr {1e151}} \
1e+151
test util-16.1.17.152 {8.4 compatible formatting of doubles} \
- {expr 1e152} \
+ {expr {1e152}} \
1e+152
test util-16.1.17.153 {8.4 compatible formatting of doubles} \
- {expr 1e153} \
+ {expr {1e153}} \
1e+153
test util-16.1.17.154 {8.4 compatible formatting of doubles} \
- {expr 1e154} \
+ {expr {1e154}} \
1e+154
test util-16.1.17.155 {8.4 compatible formatting of doubles} \
- {expr 1e155} \
+ {expr {1e155}} \
1e+155
test util-16.1.17.156 {8.4 compatible formatting of doubles} \
- {expr 1e156} \
+ {expr {1e156}} \
9.9999999999999998e+155
test util-16.1.17.157 {8.4 compatible formatting of doubles} \
- {expr 1e157} \
+ {expr {1e157}} \
9.9999999999999998e+156
test util-16.1.17.158 {8.4 compatible formatting of doubles} \
- {expr 1e158} \
+ {expr {1e158}} \
9.9999999999999995e+157
test util-16.1.17.159 {8.4 compatible formatting of doubles} \
- {expr 1e159} \
+ {expr {1e159}} \
9.9999999999999993e+158
test util-16.1.17.160 {8.4 compatible formatting of doubles} \
- {expr 1e160} \
+ {expr {1e160}} \
1e+160
test util-16.1.17.161 {8.4 compatible formatting of doubles} \
- {expr 1e161} \
+ {expr {1e161}} \
1e+161
test util-16.1.17.162 {8.4 compatible formatting of doubles} \
- {expr 1e162} \
+ {expr {1e162}} \
9.9999999999999994e+161
test util-16.1.17.163 {8.4 compatible formatting of doubles} \
- {expr 1e163} \
+ {expr {1e163}} \
9.9999999999999994e+162
test util-16.1.17.164 {8.4 compatible formatting of doubles} \
- {expr 1e164} \
+ {expr {1e164}} \
1e+164
test util-16.1.17.165 {8.4 compatible formatting of doubles} \
- {expr 1e165} \
+ {expr {1e165}} \
9.999999999999999e+164
test util-16.1.17.166 {8.4 compatible formatting of doubles} \
- {expr 1e166} \
+ {expr {1e166}} \
9.9999999999999994e+165
test util-16.1.17.167 {8.4 compatible formatting of doubles} \
- {expr 1e167} \
+ {expr {1e167}} \
1e+167
test util-16.1.17.168 {8.4 compatible formatting of doubles} \
- {expr 1e168} \
+ {expr {1e168}} \
9.9999999999999993e+167
test util-16.1.17.169 {8.4 compatible formatting of doubles} \
- {expr 1e169} \
+ {expr {1e169}} \
9.9999999999999993e+168
test util-16.1.17.170 {8.4 compatible formatting of doubles} \
- {expr 1e170} \
+ {expr {1e170}} \
1e+170
test util-16.1.17.171 {8.4 compatible formatting of doubles} \
- {expr 1e171} \
+ {expr {1e171}} \
9.9999999999999995e+170
test util-16.1.17.172 {8.4 compatible formatting of doubles} \
- {expr 1e172} \
+ {expr {1e172}} \
1.0000000000000001e+172
test util-16.1.17.173 {8.4 compatible formatting of doubles} \
- {expr 1e173} \
+ {expr {1e173}} \
1e+173
test util-16.1.17.174 {8.4 compatible formatting of doubles} \
- {expr 1e174} \
+ {expr {1e174}} \
1.0000000000000001e+174
test util-16.1.17.175 {8.4 compatible formatting of doubles} \
- {expr 1e175} \
+ {expr {1e175}} \
9.9999999999999994e+174
test util-16.1.17.176 {8.4 compatible formatting of doubles} \
- {expr 1e176} \
+ {expr {1e176}} \
1e+176
test util-16.1.17.177 {8.4 compatible formatting of doubles} \
- {expr 1e177} \
+ {expr {1e177}} \
1e+177
test util-16.1.17.178 {8.4 compatible formatting of doubles} \
- {expr 1e178} \
+ {expr {1e178}} \
1.0000000000000001e+178
test util-16.1.17.179 {8.4 compatible formatting of doubles} \
- {expr 1e179} \
+ {expr {1e179}} \
9.9999999999999998e+178
test util-16.1.17.180 {8.4 compatible formatting of doubles} \
- {expr 1e180} \
+ {expr {1e180}} \
1e+180
test util-16.1.17.181 {8.4 compatible formatting of doubles} \
- {expr 1e181} \
+ {expr {1e181}} \
9.9999999999999992e+180
test util-16.1.17.182 {8.4 compatible formatting of doubles} \
- {expr 1e182} \
+ {expr {1e182}} \
1.0000000000000001e+182
test util-16.1.17.183 {8.4 compatible formatting of doubles} \
- {expr 1e183} \
+ {expr {1e183}} \
9.9999999999999995e+182
test util-16.1.17.184 {8.4 compatible formatting of doubles} \
- {expr 1e184} \
+ {expr {1e184}} \
1e+184
test util-16.1.17.185 {8.4 compatible formatting of doubles} \
- {expr 1e185} \
+ {expr {1e185}} \
9.9999999999999998e+184
test util-16.1.17.186 {8.4 compatible formatting of doubles} \
- {expr 1e186} \
+ {expr {1e186}} \
9.9999999999999998e+185
test util-16.1.17.187 {8.4 compatible formatting of doubles} \
- {expr 1e187} \
+ {expr {1e187}} \
9.9999999999999991e+186
test util-16.1.17.188 {8.4 compatible formatting of doubles} \
- {expr 1e188} \
+ {expr {1e188}} \
1e+188
test util-16.1.17.189 {8.4 compatible formatting of doubles} \
- {expr 1e189} \
+ {expr {1e189}} \
1e+189
test util-16.1.17.190 {8.4 compatible formatting of doubles} \
- {expr 1e190} \
+ {expr {1e190}} \
1.0000000000000001e+190
test util-16.1.17.191 {8.4 compatible formatting of doubles} \
- {expr 1e191} \
+ {expr {1e191}} \
1.0000000000000001e+191
test util-16.1.17.192 {8.4 compatible formatting of doubles} \
- {expr 1e192} \
+ {expr {1e192}} \
1e+192
test util-16.1.17.193 {8.4 compatible formatting of doubles} \
- {expr 1e193} \
+ {expr {1e193}} \
1.0000000000000001e+193
test util-16.1.17.194 {8.4 compatible formatting of doubles} \
- {expr 1e194} \
+ {expr {1e194}} \
9.9999999999999994e+193
test util-16.1.17.195 {8.4 compatible formatting of doubles} \
- {expr 1e195} \
+ {expr {1e195}} \
9.9999999999999998e+194
test util-16.1.17.196 {8.4 compatible formatting of doubles} \
- {expr 1e196} \
+ {expr {1e196}} \
9.9999999999999995e+195
test util-16.1.17.197 {8.4 compatible formatting of doubles} \
- {expr 1e197} \
+ {expr {1e197}} \
9.9999999999999995e+196
test util-16.1.17.198 {8.4 compatible formatting of doubles} \
- {expr 1e198} \
+ {expr {1e198}} \
1e+198
test util-16.1.17.199 {8.4 compatible formatting of doubles} \
- {expr 1e199} \
+ {expr {1e199}} \
1.0000000000000001e+199
test util-16.1.17.200 {8.4 compatible formatting of doubles} \
- {expr 1e200} \
+ {expr {1e200}} \
9.9999999999999997e+199
test util-16.1.17.201 {8.4 compatible formatting of doubles} \
- {expr 1e201} \
+ {expr {1e201}} \
1e+201
test util-16.1.17.202 {8.4 compatible formatting of doubles} \
- {expr 1e202} \
+ {expr {1e202}} \
9.999999999999999e+201
test util-16.1.17.203 {8.4 compatible formatting of doubles} \
- {expr 1e203} \
+ {expr {1e203}} \
9.9999999999999999e+202
test util-16.1.17.204 {8.4 compatible formatting of doubles} \
- {expr 1e204} \
+ {expr {1e204}} \
9.9999999999999999e+203
test util-16.1.17.205 {8.4 compatible formatting of doubles} \
- {expr 1e205} \
+ {expr {1e205}} \
1e+205
test util-16.1.17.206 {8.4 compatible formatting of doubles} \
- {expr 1e206} \
+ {expr {1e206}} \
1e+206
test util-16.1.17.207 {8.4 compatible formatting of doubles} \
- {expr 1e207} \
+ {expr {1e207}} \
1e+207
test util-16.1.17.208 {8.4 compatible formatting of doubles} \
- {expr 1e208} \
+ {expr {1e208}} \
9.9999999999999998e+207
test util-16.1.17.209 {8.4 compatible formatting of doubles} \
- {expr 1e209} \
+ {expr {1e209}} \
1.0000000000000001e+209
test util-16.1.17.210 {8.4 compatible formatting of doubles} \
- {expr 1e210} \
+ {expr {1e210}} \
9.9999999999999993e+209
test util-16.1.17.211 {8.4 compatible formatting of doubles} \
- {expr 1e211} \
+ {expr {1e211}} \
9.9999999999999996e+210
test util-16.1.17.212 {8.4 compatible formatting of doubles} \
- {expr 1e212} \
+ {expr {1e212}} \
9.9999999999999991e+211
test util-16.1.17.213 {8.4 compatible formatting of doubles} \
- {expr 1e213} \
+ {expr {1e213}} \
9.9999999999999998e+212
test util-16.1.17.214 {8.4 compatible formatting of doubles} \
- {expr 1e214} \
+ {expr {1e214}} \
9.9999999999999995e+213
test util-16.1.17.215 {8.4 compatible formatting of doubles} \
- {expr 1e215} \
+ {expr {1e215}} \
9.9999999999999991e+214
test util-16.1.17.216 {8.4 compatible formatting of doubles} \
- {expr 1e216} \
+ {expr {1e216}} \
1e+216
test util-16.1.17.217 {8.4 compatible formatting of doubles} \
- {expr 1e217} \
+ {expr {1e217}} \
9.9999999999999996e+216
test util-16.1.17.218 {8.4 compatible formatting of doubles} \
- {expr 1e218} \
+ {expr {1e218}} \
1.0000000000000001e+218
test util-16.1.17.219 {8.4 compatible formatting of doubles} \
- {expr 1e219} \
+ {expr {1e219}} \
9.9999999999999997e+218
test util-16.1.17.220 {8.4 compatible formatting of doubles} \
- {expr 1e220} \
+ {expr {1e220}} \
1e+220
test util-16.1.17.221 {8.4 compatible formatting of doubles} \
- {expr 1e221} \
+ {expr {1e221}} \
1e+221
test util-16.1.17.222 {8.4 compatible formatting of doubles} \
- {expr 1e222} \
+ {expr {1e222}} \
1e+222
test util-16.1.17.223 {8.4 compatible formatting of doubles} \
- {expr 1e223} \
+ {expr {1e223}} \
1e+223
test util-16.1.17.224 {8.4 compatible formatting of doubles} \
- {expr 1e224} \
+ {expr {1e224}} \
9.9999999999999997e+223
test util-16.1.17.225 {8.4 compatible formatting of doubles} \
- {expr 1e225} \
+ {expr {1e225}} \
9.9999999999999993e+224
test util-16.1.17.226 {8.4 compatible formatting of doubles} \
- {expr 1e226} \
+ {expr {1e226}} \
9.9999999999999996e+225
test util-16.1.17.227 {8.4 compatible formatting of doubles} \
- {expr 1e227} \
+ {expr {1e227}} \
1.0000000000000001e+227
test util-16.1.17.228 {8.4 compatible formatting of doubles} \
- {expr 1e228} \
+ {expr {1e228}} \
9.9999999999999992e+227
test util-16.1.17.229 {8.4 compatible formatting of doubles} \
- {expr 1e229} \
+ {expr {1e229}} \
9.9999999999999999e+228
test util-16.1.17.230 {8.4 compatible formatting of doubles} \
- {expr 1e230} \
+ {expr {1e230}} \
1.0000000000000001e+230
test util-16.1.17.231 {8.4 compatible formatting of doubles} \
- {expr 1e231} \
+ {expr {1e231}} \
1.0000000000000001e+231
test util-16.1.17.232 {8.4 compatible formatting of doubles} \
- {expr 1e232} \
+ {expr {1e232}} \
1.0000000000000001e+232
test util-16.1.17.233 {8.4 compatible formatting of doubles} \
- {expr 1e233} \
+ {expr {1e233}} \
9.9999999999999997e+232
test util-16.1.17.234 {8.4 compatible formatting of doubles} \
- {expr 1e234} \
+ {expr {1e234}} \
1e+234
test util-16.1.17.235 {8.4 compatible formatting of doubles} \
- {expr 1e235} \
+ {expr {1e235}} \
1.0000000000000001e+235
test util-16.1.17.236 {8.4 compatible formatting of doubles} \
- {expr 1e236} \
+ {expr {1e236}} \
1.0000000000000001e+236
test util-16.1.17.237 {8.4 compatible formatting of doubles} \
- {expr 1e237} \
+ {expr {1e237}} \
9.9999999999999994e+236
test util-16.1.17.238 {8.4 compatible formatting of doubles} \
- {expr 1e238} \
+ {expr {1e238}} \
1e+238
test util-16.1.17.239 {8.4 compatible formatting of doubles} \
- {expr 1e239} \
+ {expr {1e239}} \
9.9999999999999999e+238
test util-16.1.17.240 {8.4 compatible formatting of doubles} \
- {expr 1e240} \
+ {expr {1e240}} \
1e+240
test util-16.1.17.241 {8.4 compatible formatting of doubles} \
- {expr 1e241} \
+ {expr {1e241}} \
1.0000000000000001e+241
test util-16.1.17.242 {8.4 compatible formatting of doubles} \
- {expr 1e242} \
+ {expr {1e242}} \
1.0000000000000001e+242
test util-16.1.17.243 {8.4 compatible formatting of doubles} \
- {expr 1e243} \
+ {expr {1e243}} \
1.0000000000000001e+243
test util-16.1.17.244 {8.4 compatible formatting of doubles} \
- {expr 1e244} \
+ {expr {1e244}} \
1.0000000000000001e+244
test util-16.1.17.245 {8.4 compatible formatting of doubles} \
- {expr 1e245} \
+ {expr {1e245}} \
1e+245
test util-16.1.17.246 {8.4 compatible formatting of doubles} \
- {expr 1e246} \
+ {expr {1e246}} \
1.0000000000000001e+246
test util-16.1.17.247 {8.4 compatible formatting of doubles} \
- {expr 1e247} \
+ {expr {1e247}} \
9.9999999999999995e+246
test util-16.1.17.248 {8.4 compatible formatting of doubles} \
- {expr 1e248} \
+ {expr {1e248}} \
1e+248
test util-16.1.17.249 {8.4 compatible formatting of doubles} \
- {expr 1e249} \
+ {expr {1e249}} \
9.9999999999999992e+248
test util-16.1.17.250 {8.4 compatible formatting of doubles} \
- {expr 1e250} \
+ {expr {1e250}} \
9.9999999999999992e+249
test util-16.1.17.251 {8.4 compatible formatting of doubles} \
- {expr 1e251} \
+ {expr {1e251}} \
1e+251
test util-16.1.17.252 {8.4 compatible formatting of doubles} \
- {expr 1e252} \
+ {expr {1e252}} \
1.0000000000000001e+252
test util-16.1.17.253 {8.4 compatible formatting of doubles} \
- {expr 1e253} \
+ {expr {1e253}} \
9.9999999999999994e+252
test util-16.1.17.254 {8.4 compatible formatting of doubles} \
- {expr 1e254} \
+ {expr {1e254}} \
9.9999999999999994e+253
test util-16.1.17.255 {8.4 compatible formatting of doubles} \
- {expr 1e255} \
+ {expr {1e255}} \
9.9999999999999999e+254
test util-16.1.17.256 {8.4 compatible formatting of doubles} \
- {expr 1e256} \
+ {expr {1e256}} \
1e+256
test util-16.1.17.257 {8.4 compatible formatting of doubles} \
- {expr 1e257} \
+ {expr {1e257}} \
1e+257
test util-16.1.17.258 {8.4 compatible formatting of doubles} \
- {expr 1e258} \
+ {expr {1e258}} \
1.0000000000000001e+258
test util-16.1.17.259 {8.4 compatible formatting of doubles} \
- {expr 1e259} \
+ {expr {1e259}} \
9.9999999999999993e+258
test util-16.1.17.260 {8.4 compatible formatting of doubles} \
- {expr 1e260} \
+ {expr {1e260}} \
1.0000000000000001e+260
test util-16.1.17.261 {8.4 compatible formatting of doubles} \
- {expr 1e261} \
+ {expr {1e261}} \
9.9999999999999993e+260
test util-16.1.17.262 {8.4 compatible formatting of doubles} \
- {expr 1e262} \
+ {expr {1e262}} \
1e+262
test util-16.1.17.263 {8.4 compatible formatting of doubles} \
- {expr 1e263} \
+ {expr {1e263}} \
1e+263
test util-16.1.17.264 {8.4 compatible formatting of doubles} \
- {expr 1e264} \
+ {expr {1e264}} \
1e+264
test util-16.1.17.265 {8.4 compatible formatting of doubles} \
- {expr 1e265} \
+ {expr {1e265}} \
1.0000000000000001e+265
test util-16.1.17.266 {8.4 compatible formatting of doubles} \
- {expr 1e266} \
+ {expr {1e266}} \
1e+266
test util-16.1.17.267 {8.4 compatible formatting of doubles} \
- {expr 1e267} \
+ {expr {1e267}} \
9.9999999999999997e+266
test util-16.1.17.268 {8.4 compatible formatting of doubles} \
- {expr 1e268} \
+ {expr {1e268}} \
9.9999999999999997e+267
test util-16.1.17.269 {8.4 compatible formatting of doubles} \
- {expr 1e269} \
+ {expr {1e269}} \
1e+269
test util-16.1.17.270 {8.4 compatible formatting of doubles} \
- {expr 1e270} \
+ {expr {1e270}} \
1e+270
test util-16.1.17.271 {8.4 compatible formatting of doubles} \
- {expr 1e271} \
+ {expr {1e271}} \
9.9999999999999995e+270
test util-16.1.17.272 {8.4 compatible formatting of doubles} \
- {expr 1e272} \
+ {expr {1e272}} \
1.0000000000000001e+272
test util-16.1.17.273 {8.4 compatible formatting of doubles} \
- {expr 1e273} \
+ {expr {1e273}} \
9.9999999999999995e+272
test util-16.1.17.274 {8.4 compatible formatting of doubles} \
- {expr 1e274} \
+ {expr {1e274}} \
9.9999999999999992e+273
test util-16.1.17.275 {8.4 compatible formatting of doubles} \
- {expr 1e275} \
+ {expr {1e275}} \
9.9999999999999996e+274
test util-16.1.17.276 {8.4 compatible formatting of doubles} \
- {expr 1e276} \
+ {expr {1e276}} \
1.0000000000000001e+276
test util-16.1.17.277 {8.4 compatible formatting of doubles} \
- {expr 1e277} \
+ {expr {1e277}} \
1e+277
test util-16.1.17.278 {8.4 compatible formatting of doubles} \
- {expr 1e278} \
+ {expr {1e278}} \
9.9999999999999996e+277
test util-16.1.17.279 {8.4 compatible formatting of doubles} \
- {expr 1e279} \
+ {expr {1e279}} \
1.0000000000000001e+279
test util-16.1.17.280 {8.4 compatible formatting of doubles} \
- {expr 1e280} \
+ {expr {1e280}} \
1e+280
test util-16.1.17.281 {8.4 compatible formatting of doubles} \
- {expr 1e281} \
+ {expr {1e281}} \
1e+281
test util-16.1.17.282 {8.4 compatible formatting of doubles} \
- {expr 1e282} \
+ {expr {1e282}} \
1e+282
test util-16.1.17.283 {8.4 compatible formatting of doubles} \
- {expr 1e283} \
+ {expr {1e283}} \
9.9999999999999996e+282
test util-16.1.17.284 {8.4 compatible formatting of doubles} \
- {expr 1e284} \
+ {expr {1e284}} \
1.0000000000000001e+284
test util-16.1.17.285 {8.4 compatible formatting of doubles} \
- {expr 1e285} \
+ {expr {1e285}} \
9.9999999999999998e+284
test util-16.1.17.286 {8.4 compatible formatting of doubles} \
- {expr 1e286} \
+ {expr {1e286}} \
1e+286
test util-16.1.17.287 {8.4 compatible formatting of doubles} \
- {expr 1e287} \
+ {expr {1e287}} \
1.0000000000000001e+287
test util-16.1.17.288 {8.4 compatible formatting of doubles} \
- {expr 1e288} \
+ {expr {1e288}} \
1e+288
test util-16.1.17.289 {8.4 compatible formatting of doubles} \
- {expr 1e289} \
+ {expr {1e289}} \
1.0000000000000001e+289
test util-16.1.17.290 {8.4 compatible formatting of doubles} \
- {expr 1e290} \
+ {expr {1e290}} \
1.0000000000000001e+290
test util-16.1.17.291 {8.4 compatible formatting of doubles} \
- {expr 1e291} \
+ {expr {1e291}} \
9.9999999999999996e+290
test util-16.1.17.292 {8.4 compatible formatting of doubles} \
- {expr 1e292} \
+ {expr {1e292}} \
1e+292
test util-16.1.17.293 {8.4 compatible formatting of doubles} \
- {expr 1e293} \
+ {expr {1e293}} \
9.9999999999999992e+292
test util-16.1.17.294 {8.4 compatible formatting of doubles} \
- {expr 1e294} \
+ {expr {1e294}} \
1.0000000000000001e+294
test util-16.1.17.295 {8.4 compatible formatting of doubles} \
- {expr 1e295} \
+ {expr {1e295}} \
9.9999999999999998e+294
test util-16.1.17.296 {8.4 compatible formatting of doubles} \
- {expr 1e296} \
+ {expr {1e296}} \
9.9999999999999998e+295
test util-16.1.17.297 {8.4 compatible formatting of doubles} \
- {expr 1e297} \
+ {expr {1e297}} \
1e+297
test util-16.1.17.298 {8.4 compatible formatting of doubles} \
- {expr 1e298} \
+ {expr {1e298}} \
9.9999999999999996e+297
test util-16.1.17.299 {8.4 compatible formatting of doubles} \
- {expr 1e299} \
+ {expr {1e299}} \
1.0000000000000001e+299
test util-16.1.17.300 {8.4 compatible formatting of doubles} \
- {expr 1e300} \
+ {expr {1e300}} \
1.0000000000000001e+300
test util-16.1.17.301 {8.4 compatible formatting of doubles} \
- {expr 1e301} \
+ {expr {1e301}} \
1.0000000000000001e+301
test util-16.1.17.302 {8.4 compatible formatting of doubles} \
- {expr 1e302} \
+ {expr {1e302}} \
1.0000000000000001e+302
test util-16.1.17.303 {8.4 compatible formatting of doubles} \
- {expr 1e303} \
+ {expr {1e303}} \
1e+303
test util-16.1.17.304 {8.4 compatible formatting of doubles} \
- {expr 1e304} \
+ {expr {1e304}} \
9.9999999999999994e+303
test util-16.1.17.305 {8.4 compatible formatting of doubles} \
- {expr 1e305} \
+ {expr {1e305}} \
9.9999999999999994e+304
test util-16.1.17.306 {8.4 compatible formatting of doubles} \
- {expr 1e306} \
+ {expr {1e306}} \
1e+306
test util-16.1.17.307 {8.4 compatible formatting of doubles} \
- {expr 1e307} \
+ {expr {1e307}} \
9.9999999999999999e+306
test util-17.1 {bankers' rounding [Bug 3349507]} {ieeeFloatingPoint} {
@@ -4043,9 +4043,9 @@ test util-17.1 {bankers' rounding [Bug 3349507]} {ieeeFloatingPoint} {
0x1fffffffffffff000
0x1fffffffffffff800
} {
- binary scan [binary format q [expr double($input)]] wu x
+ binary scan [binary format q [expr {double($input)}]] wu x
lappend r [format %#llx $x]
- binary scan [binary format q [expr double(-$input)]] wu x
+ binary scan [binary format q [expr {double(-$input)}]] wu x
lappend r [format %#llx $x]
}
set r
diff --git a/tests/winFCmd.test b/tests/winFCmd.test
index 04c4fd9..500b114 100644
--- a/tests/winFCmd.test
+++ b/tests/winFCmd.test
@@ -5,7 +5,7 @@
# generates output for errors. No output means no errors were found.
#
# Copyright (c) 1996-1997 Sun Microsystems, Inc.
-# Copyright (c) 1998-1999 by Scriptics Corporation.
+# Copyright (c) 1998-1999 Scriptics Corporation.
#
# See the file "license.terms" for information on usage and redistribution
# of this file, and for a DISCLAIMER OF ALL WARRANTIES.
@@ -1383,7 +1383,7 @@ test winFCmd-19.3 {Windows extended path names} -constraints nt -setup {
} -cleanup {
catch {file delete $tmpfile}
} -result [list 0 {}]
-test winFCmd-19.4 {Windows extended path names} -constraints nt -setup {
+test winFCmd-19.4 {Windows extended path names} -constraints {win nt} -setup {
set tmpfile [file join $::env(TEMP) tcl[string repeat x 20].tmp]
set tmpfile //?/[file normalize $tmpfile]
} -body {
@@ -1405,7 +1405,7 @@ test winFCmd-19.5 {Windows extended path names} -constraints nt -setup {
} -cleanup {
catch {file delete $tmpfile}
} -result [list 0 {}]
-test winFCmd-19.6 {Windows extended path names} -constraints nt -setup {
+test winFCmd-19.6 {Windows extended path names} -constraints {win nt} -setup {
set tmpfile [file join $::env(TEMP) tcl[string repeat x 248].tmp]
set tmpfile //?/[file normalize $tmpfile]
} -body {
@@ -1416,7 +1416,7 @@ test winFCmd-19.6 {Windows extended path names} -constraints nt -setup {
} -cleanup {
catch {file delete $tmpfile}
} -result [list 0 {}]
-test winFCmd-19.7 {Windows extended path names} -constraints nt -setup {
+test winFCmd-19.7 {Windows extended path names} -constraints {win nt} -setup {
set tmpfile [file join $::env(TEMP) "tcl[pid].tmp "]
set tmpfile [file normalize $tmpfile]
} -body {
@@ -1427,7 +1427,7 @@ test winFCmd-19.7 {Windows extended path names} -constraints nt -setup {
} -cleanup {
catch {file delete $tmpfile}
} -result [list 0 {} [list tcl[pid].tmp]]
-test winFCmd-19.8 {Windows extended path names} -constraints nt -setup {
+test winFCmd-19.8 {Windows extended path names} -constraints {win nt} -setup {
set tmpfile [file join $::env(TEMP) "tcl[pid].tmp "]
set tmpfile //?/[file normalize $tmpfile]
} -body {
@@ -1439,7 +1439,7 @@ test winFCmd-19.8 {Windows extended path names} -constraints nt -setup {
catch {file delete $tmpfile}
} -result [list 0 {} [list "tcl[pid].tmp "]]
-test winFCmd-19.9 {Windows devices path names} -constraints nt -body {
+test winFCmd-19.9 {Windows devices path names} -constraints {win nt} -body {
file normalize //./com1
} -result //./com1
diff --git a/tests/winPipe.test b/tests/winPipe.test
index d3a580c..ce786db 100644
--- a/tests/winPipe.test
+++ b/tests/winPipe.test
@@ -39,7 +39,7 @@ testConstraint slowTest 0
set big bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb\n
append big $big
-append big $big
+append big $big
append big $big
append big $big
append big $big
diff --git a/tools/configure b/tools/configure
index 3d30039..29a4c1c 100755
--- a/tools/configure
+++ b/tools/configure
@@ -1222,6 +1222,7 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
# Recover information that Tcl computed with its configure script.
#--------------------------------------------------------------------
@@ -1262,6 +1263,7 @@ CC=$TCL_CC
ac_config_files="$ac_config_files Makefile tcl.hpj"
+
cat >confcache <<\_ACEOF
# This file is a shell script that caches the results of configure
# tests run on this system so they can be shared between configure
diff --git a/tools/configure.in b/tools/configure.in
index 6aebcaa..86e1f62 100644
--- a/tools/configure.in
+++ b/tools/configure.in
@@ -1,8 +1,9 @@
dnl This file is an input file used by the GNU "autoconf" program to
dnl generate the file "configure", which is run to configure the
dnl Makefile in this directory.
-AC_INIT(man2tcl.c)
-AC_PREREQ(2.59)
+AC_INIT
+AC_CONFIG_SRCDIR([man2tcl.c])
+AC_PREREQ([2.59])
# Recover information that Tcl computed with its configure script.
@@ -32,4 +33,5 @@ AC_SUBST(TCL_PATCH_LEVEL)
AC_SUBST(TCL_SRC_DIR)
AC_SUBST(TCL_BIN_DIR)
-AC_OUTPUT(Makefile tcl.hpj)
+AC_CONFIG_FILES([Makefile tcl.hpj])
+AC_OUTPUT
diff --git a/tools/genStubs.tcl b/tools/genStubs.tcl
index bc0d700..47b8ad4 100644
--- a/tools/genStubs.tcl
+++ b/tools/genStubs.tcl
@@ -257,8 +257,9 @@ proc genStubs::rewriteFile {file text} {
return
}
set in [open ${file} r]
+ fconfigure $in -eofchar "\032 {}" -encoding utf-8
set out [open ${file}.new w]
- fconfigure $out -translation lf
+ fconfigure $out -translation lf -encoding utf-8
while {![eof $in]} {
set line [gets $in]
@@ -1100,7 +1101,7 @@ proc genStubs::emitInit {name textVar} {
}
foreach intf [array names interfaces] {
if {[info exists hooks($intf)]} {
- if {[lsearch -exact $hooks($intf) $name] >= 0} {
+ if {$name in $hooks($intf)} {
set root 0
break
}
@@ -1191,7 +1192,7 @@ proc genStubs::init {} {
set outDir [lindex $argv 0]
foreach file [lrange $argv 1 end] {
- source $file
+ source -encoding utf-8 $file
}
foreach name [lsort [array names interfaces]] {
diff --git a/tools/installData.tcl b/tools/installData.tcl
index dd7976b..4a3b1ee 100644
--- a/tools/installData.tcl
+++ b/tools/installData.tcl
@@ -32,7 +32,7 @@ proc copyDir {d1 d2} {
} elseif {[file isfile $f]} {
file copy -force $f [file join $d2 $ftail]
if {$::tcl_platform(platform) eq {unix}} {
- file attributes [file join $d2 $ftail] -permissions 0644
+ file attributes [file join $d2 $ftail] -permissions 0o644
} else {
file attributes [file join $d2 $ftail] -readonly 1
}
@@ -40,7 +40,7 @@ proc copyDir {d1 d2} {
}
if {$::tcl_platform(platform) eq {unix}} {
- file attributes $d2 -permissions 0755
+ file attributes $d2 -permissions 0o755
} else {
file attributes $d2 -readonly 1
}
diff --git a/unix/Makefile.in b/unix/Makefile.in
index cf7baec..f3c3563 100644
--- a/unix/Makefile.in
+++ b/unix/Makefile.in
@@ -87,7 +87,7 @@ HTML_INSTALL_DIR = $(INSTALL_ROOT)$(HTML_DIR)
CONFIG_INSTALL_DIR = $(INSTALL_ROOT)$(libdir)
# Directory in which to install bundled packages:
-PACKAGE_DIR = @PACKAGE_DIR@
+PACKAGE_DIR = @PACKAGE_DIR@
# Package search path.
TCL_PACKAGE_PATH = @TCL_PACKAGE_PATH@
@@ -150,8 +150,8 @@ SHELL = @MAKEFILE_SHELL@
# around; better to use the install-sh script that comes with the
# distribution, which is slower but guaranteed to work.
-INSTALL_STRIP_PROGRAM = -s
-INSTALL_STRIP_LIBRARY = -S -x
+INSTALL_STRIP_PROGRAM = -s
+INSTALL_STRIP_LIBRARY = -S -x
INSTALL = $(SHELL) $(UNIX_DIR)/install-sh -c
INSTALL_PROGRAM = ${INSTALL}
@@ -227,7 +227,6 @@ SRC_DIR = @srcdir@
TOP_DIR = @TCL_SRC_DIR@
BUILD_DIR = @builddir@
GENERIC_DIR = $(TOP_DIR)/generic
-TOMMATH_DIR = $(TOP_DIR)/libtommath
COMPAT_DIR = $(TOP_DIR)/compat
TOOL_DIR = $(TOP_DIR)/tools
UNIX_DIR = $(TOP_DIR)/unix
@@ -240,13 +239,14 @@ TCL_BUILDTIME_LIBRARY = @TCL_SRC_DIR@/library
ZLIB_DIR = ${COMPAT_DIR}/zlib
ZLIB_INCLUDE = @ZLIB_INCLUDE@
+TOMMATH_DIR = $(TOP_DIR)/libtommath
CC = @CC@
#CC = purify -best-effort @CC@ -DPURIFY
# Flags to be passed to installManPage to control how the manpages should be
# installed (symlinks, compression, package name suffix).
-MAN_FLAGS = @MAN_FLAGS@
+MAN_FLAGS = @MAN_FLAGS@
# If non-empty, install the timezone files that are included with Tcl,
# otherwise use the ones that ship with the OS.
@@ -263,17 +263,18 @@ TRACE = strace
TRACE_OPTS =
VALGRIND = valgrind
VALGRINDARGS = --tool=memcheck --num-callers=24 \
- --leak-resolution=high --leak-check=yes --show-reachable=yes -v \
- --suppressions=$(TOOL_DIR)/valgrind_suppress
+ --leak-resolution=high --leak-check=yes --show-reachable=yes -v \
+ --suppressions=$(TOOL_DIR)/valgrind_suppress
#--------------------------------------------------------------------------
# The information below should be usable as is. The configure script won't
# modify it and you shouldn't need to modify it either.
#--------------------------------------------------------------------------
-STUB_CC_SWITCHES = ${CFLAGS} ${CFLAGS_WARNING} ${SHLIB_CFLAGS} \
--I"${BUILD_DIR}" -I${UNIX_DIR} -I${GENERIC_DIR} -I${TOMMATH_DIR} \
-${AC_FLAGS} ${ENV_FLAGS} ${EXTRA_CFLAGS} @EXTRA_CC_SWITCHES@
+STUB_CC_SWITCHES = -I"${BUILD_DIR}" -I${UNIX_DIR} -I${GENERIC_DIR} -I${TOMMATH_DIR} \
+ ${CFLAGS} ${CFLAGS_WARNING} ${SHLIB_CFLAGS} \
+ ${AC_FLAGS} ${ENV_FLAGS} ${EXTRA_CFLAGS} \
+ @EXTRA_CC_SWITCHES@
CC_SWITCHES = $(STUB_CC_SWITCHES) ${NO_DEPRECATED_FLAGS} -DMP_FIXED_CUTOFFS -DMP_NO_STDINT
@@ -282,7 +283,7 @@ APP_CC_SWITCHES = $(CC_SWITCHES) @EXTRA_APP_CC_SWITCHES@
LIBS = @TCL_LIBS@
DEPEND_SWITCHES = ${CFLAGS} -I${UNIX_DIR} -I${GENERIC_DIR} \
-${AC_FLAGS} ${EXTRA_CFLAGS} @EXTRA_CC_SWITCHES@
+ ${AC_FLAGS} ${EXTRA_CFLAGS} @EXTRA_CC_SWITCHES@
TCLSH_OBJS = tclAppInit.o
@@ -756,13 +757,14 @@ Makefile: $(UNIX_DIR)/Makefile.in $(DLTEST_DIR)/Makefile.in
clean: clean-packages
rm -rf *.a *.o libtcl* core errs *~ \#* TAGS *.E a.out \
- errors ${TCL_EXE} ${TCLTEST_EXE} lib.exp Tcl @DTRACE_HDR@
- cd dltest ; $(MAKE) clean
+ errors ${TCL_EXE} ${TCLTEST_EXE} lib.exp Tcl @DTRACE_HDR@ \
+ *.zip *.vfs
+ (cd dltest ; $(MAKE) clean)
distclean: distclean-packages clean
rm -rf Makefile config.status config.cache config.log tclConfig.sh \
tclConfig.h *.plist Tcl.framework tcl.pc
- cd dltest ; $(MAKE) distclean
+ (cd dltest ; $(MAKE) distclean)
depend:
makedepend -- $(DEPEND_SWITCHES) -- $(SRCS)
@@ -851,7 +853,9 @@ gdb: ${TCL_EXE}
$(SHELL_ENV) $(GDB) ./${TCL_EXE}
valgrind: ${TCL_EXE} ${TCLTEST_EXE}
- $(SHELL_ENV) $(VALGRIND) $(VALGRINDARGS) ./${TCLTEST_EXE} $(TOP_DIR)/tests/all.tcl -singleproc 1 -constraints valgrind $(TESTFLAGS)
+ $(SHELL_ENV) $(VALGRIND) $(VALGRINDARGS) ./${TCLTEST_EXE} \
+ $(TOP_DIR)/tests/all.tcl -singleproc 1 -constraints valgrind \
+ $(TESTFLAGS)
valgrindshell: ${TCL_EXE}
$(SHELL_ENV) $(VALGRIND) $(VALGRINDARGS) ./${TCL_EXE} $(SCRIPT)
@@ -883,14 +887,12 @@ install-strip:
install-binaries: binaries
@for i in "$(LIB_INSTALL_DIR)" "$(BIN_INSTALL_DIR)" \
- "$(CONFIG_INSTALL_DIR)"; \
- do \
+ "$(CONFIG_INSTALL_DIR)" ; do \
if [ ! -d "$$i" ] ; then \
echo "Making directory $$i"; \
$(INSTALL_DATA_DIR) "$$i"; \
- else true; \
- fi; \
- done;
+ fi; \
+ done
@echo "Installing $(LIB_FILE) to $(DLL_INSTALL_DIR)/"
@@INSTALL_LIB@
@chmod 555 "$(DLL_INSTALL_DIR)/$(LIB_FILE)"
@@ -927,7 +929,7 @@ install-libraries: libraries
else true; \
fi; \
done;
- @for i in 8.4 8.4/platform 8.5 8.6; \
+ @for i in 8.4 8.4/platform 8.5 8.6; \
do \
if [ ! -d "$(MODULE_INSTALL_DIR)/$$i" ] ; then \
echo "Making directory $(MODULE_INSTALL_DIR)/$$i"; \
@@ -945,57 +947,56 @@ install-libraries: libraries
@for i in $(TOP_DIR)/library/http1.0/*.tcl ; \
do \
$(INSTALL_DATA) $$i "$(SCRIPT_INSTALL_DIR)/http1.0"; \
- done;
+ done
@echo "Installing package http 2.9.5 as a Tcl Module";
- @$(INSTALL_DATA) $(TOP_DIR)/library/http/http.tcl "$(MODULE_INSTALL_DIR)/8.6/http-2.9.5.tm";
+ @$(INSTALL_DATA) $(TOP_DIR)/library/http/http.tcl "$(MODULE_INSTALL_DIR)/8.6/http-2.9.5.tm"
@echo "Installing package opt0.4 files to $(SCRIPT_INSTALL_DIR)/opt0.4/";
- @for i in $(TOP_DIR)/library/opt/*.tcl ; \
- do \
+ @for i in $(TOP_DIR)/library/opt/*.tcl; do \
$(INSTALL_DATA) $$i "$(SCRIPT_INSTALL_DIR)/opt0.4"; \
- done;
- @echo "Installing package msgcat 1.6.1 as a Tcl Module";
- @$(INSTALL_DATA) $(TOP_DIR)/library/msgcat/msgcat.tcl "$(MODULE_INSTALL_DIR)/8.5/msgcat-1.6.1.tm";
- @echo "Installing package tcltest 2.5.3 as a Tcl Module";
- @$(INSTALL_DATA) $(TOP_DIR)/library/tcltest/tcltest.tcl "$(MODULE_INSTALL_DIR)/8.5/tcltest-2.5.3.tm";
-
- @echo "Installing package platform 1.0.14 as a Tcl Module";
- @$(INSTALL_DATA) $(TOP_DIR)/library/platform/platform.tcl "$(MODULE_INSTALL_DIR)/8.4/platform-1.0.14.tm";
- @echo "Installing package platform::shell 1.1.4 as a Tcl Module";
- @$(INSTALL_DATA) $(TOP_DIR)/library/platform/shell.tcl "$(MODULE_INSTALL_DIR)/8.4/platform/shell-1.1.4.tm";
-
- @echo "Installing encoding files to $(SCRIPT_INSTALL_DIR)/encoding/";
- @for i in $(TOP_DIR)/library/encoding/*.enc ; do \
+ done
+ @echo "Installing package msgcat 1.6.1 as a Tcl Module"
+ @$(INSTALL_DATA) $(TOP_DIR)/library/msgcat/msgcat.tcl \
+ "$(MODULE_INSTALL_DIR)/8.5/msgcat-1.6.1.tm"
+ @echo "Installing package tcltest 2.5.3 as a Tcl Module"
+ @$(INSTALL_DATA) $(TOP_DIR)/library/tcltest/tcltest.tcl \
+ "$(MODULE_INSTALL_DIR)/8.5/tcltest-2.5.3.tm"
+ @echo "Installing package platform 1.0.17 as a Tcl Module"
+ @$(INSTALL_DATA) $(TOP_DIR)/library/platform/platform.tcl \
+ "$(MODULE_INSTALL_DIR)/8.4/platform-1.0.17.tm"
+ @echo "Installing package platform::shell 1.1.4 as a Tcl Module"
+ @$(INSTALL_DATA) $(TOP_DIR)/library/platform/shell.tcl \
+ "$(MODULE_INSTALL_DIR)/8.4/platform/shell-1.1.4.tm"
+ @echo "Installing encoding files to $(SCRIPT_INSTALL_DIR)/encoding/"
+ @for i in $(TOP_DIR)/library/encoding/*.enc; do \
$(INSTALL_DATA) $$i "$(SCRIPT_INSTALL_DIR)/encoding"; \
- done;
- @if [ -n "$(TCL_MODULE_PATH)" -a -f $(TOP_DIR)/library/tm.tcl ]; then \
+ done
+ @if [ -n "$(TCL_MODULE_PATH)" -a -f $(TOP_DIR)/library/tm.tcl ] ; then \
echo "Customizing tcl module path"; \
echo "if {![interp issafe]} { ::tcl::tm::roots {$(TCL_MODULE_PATH)} }" >> \
"$(SCRIPT_INSTALL_DIR)/tm.tcl"; \
fi
install-tzdata:
- @for i in tzdata; \
- do \
+ @for i in tzdata; do \
if [ ! -d "$(SCRIPT_INSTALL_DIR)/$$i" ] ; then \
echo "Making directory $(SCRIPT_INSTALL_DIR)/$$i"; \
$(INSTALL_DATA_DIR) "$(SCRIPT_INSTALL_DIR)/$$i"; \
- else true; \
- fi; \
- done;
+ fi; \
+ done
@echo "Installing time zone files to $(SCRIPT_INSTALL_DIR)/tzdata/"
- @for i in $(TOP_DIR)/library/tzdata/* ; do \
+ @for i in $(TOP_DIR)/library/tzdata/*; do \
if [ -d $$i ] ; then \
ii=`basename $$i`; \
if [ ! -d "$(SCRIPT_INSTALL_DIR)/tzdata/$$ii" ] ; then \
$(INSTALL_DATA_DIR) "$(SCRIPT_INSTALL_DIR)/tzdata/$$ii"; \
fi; \
- for j in $$i/* ; do \
+ for j in $$i/*; do \
if [ -d $$j ] ; then \
jj=`basename $$j`; \
if [ ! -d "$(SCRIPT_INSTALL_DIR)/tzdata/$$ii/$$jj" ] ; then \
$(INSTALL_DATA_DIR) "$(SCRIPT_INSTALL_DIR)/tzdata/$$ii/$$jj"; \
fi; \
- for k in $$j/* ; do \
+ for k in $$j/*; do \
$(INSTALL_DATA) $$k "$(SCRIPT_INSTALL_DIR)/tzdata/$$ii/$$jj"; \
done; \
else \
@@ -1005,55 +1006,47 @@ install-tzdata:
else \
$(INSTALL_DATA) $$i "$(SCRIPT_INSTALL_DIR)/tzdata"; \
fi; \
- done;
+ done
install-msgs:
- @for i in msgs; \
- do \
+ @for i in msgs; do \
if [ ! -d "$(SCRIPT_INSTALL_DIR)/$$i" ] ; then \
echo "Making directory $(SCRIPT_INSTALL_DIR)/$$i"; \
$(INSTALL_DATA_DIR) "$(SCRIPT_INSTALL_DIR)/$$i"; \
- else true; \
- fi; \
- done;
+ fi; \
+ done
@echo "Installing message catalog files to $(SCRIPT_INSTALL_DIR)/msgs/"
- @for i in $(TOP_DIR)/library/msgs/*.msg ; do \
- $(INSTALL_DATA) $$i "$(SCRIPT_INSTALL_DIR)/msgs"; \
- done;
+ @for i in $(TOP_DIR)/library/msgs/*.msg; do \
+ $(INSTALL_DATA) $$i "$(SCRIPT_INSTALL_DIR)/msgs"; \
+ done
install-doc: doc
- @for i in "$(MAN_INSTALL_DIR)" "$(MAN1_INSTALL_DIR)" "$(MAN3_INSTALL_DIR)" "$(MANN_INSTALL_DIR)" ; \
- do \
+ @for i in "$(MAN_INSTALL_DIR)" "$(MAN1_INSTALL_DIR)" "$(MAN3_INSTALL_DIR)" "$(MANN_INSTALL_DIR)"; do \
if [ ! -d "$$i" ] ; then \
echo "Making directory $$i"; \
$(INSTALL_DATA_DIR) "$$i"; \
- else true; \
- fi; \
- done;
- @echo "Installing and cross-linking top-level (.1) docs to $(MAN1_INSTALL_DIR)/";
+ fi; \
+ done
+ @echo "Installing and cross-linking top-level (.1) docs to $(MAN1_INSTALL_DIR)/"
@for i in $(TOP_DIR)/doc/*.1; do \
$(SHELL) $(UNIX_DIR)/installManPage $(MAN_FLAGS) $$i "$(MAN1_INSTALL_DIR)"; \
done
-
- @echo "Installing and cross-linking C API (.3) docs to $(MAN3_INSTALL_DIR)/";
+ @echo "Installing and cross-linking C API (.3) docs to $(MAN3_INSTALL_DIR)/"
@for i in $(TOP_DIR)/doc/*.3; do \
$(SHELL) $(UNIX_DIR)/installManPage $(MAN_FLAGS) $$i "$(MAN3_INSTALL_DIR)"; \
done
-
@echo "Installing and cross-linking command (.n) docs to $(MANN_INSTALL_DIR)/";
@for i in $(TOP_DIR)/doc/*.n; do \
$(SHELL) $(UNIX_DIR)/installManPage $(MAN_FLAGS) $$i "$(MANN_INSTALL_DIR)"; \
done
install-headers:
- @for i in "$(INCLUDE_INSTALL_DIR)"; \
- do \
+ @for i in "$(INCLUDE_INSTALL_DIR)"; do \
if [ ! -d "$$i" ] ; then \
echo "Making directory $$i"; \
$(INSTALL_DATA_DIR) "$$i"; \
- else true; \
- fi; \
- done;
+ fi; \
+ done
@echo "Installing header files to $(INCLUDE_INSTALL_DIR)/";
@for i in $(GENERIC_DIR)/tcl.h $(GENERIC_DIR)/tclDecls.h \
$(GENERIC_DIR)/tclOO.h $(GENERIC_DIR)/tclOODecls.h \
@@ -1062,18 +1055,16 @@ install-headers:
$(GENERIC_DIR)/tclTomMathDecls.h ; \
do \
$(INSTALL_DATA) $$i "$(INCLUDE_INSTALL_DIR)"; \
- done;
+ done
# Optional target to install private headers
install-private-headers:
- @for i in "$(PRIVATE_INCLUDE_INSTALL_DIR)"; \
- do \
+ @for i in "$(PRIVATE_INCLUDE_INSTALL_DIR)"; do \
if [ ! -d "$$i" ] ; then \
echo "Making directory $$i"; \
$(INSTALL_DATA_DIR) "$$i"; \
- else true; \
- fi; \
- done;
+ fi; \
+ done
@echo "Installing private header files to $(PRIVATE_INCLUDE_INSTALL_DIR)/";
@for i in $(GENERIC_DIR)/tclInt.h $(GENERIC_DIR)/tclIntDecls.h \
$(GENERIC_DIR)/tclIntPlatDecls.h $(GENERIC_DIR)/tclPort.h \
@@ -1081,10 +1072,10 @@ install-private-headers:
$(UNIX_DIR)/tclUnixPort.h; \
do \
$(INSTALL_DATA) $$i "$(PRIVATE_INCLUDE_INSTALL_DIR)"; \
- done;
+ done
@if test -f tclConfig.h; then\
$(INSTALL_DATA) tclConfig.h "$(PRIVATE_INCLUDE_INSTALL_DIR)"; \
- fi;
+ fi
#--------------------------------------------------------------------------
# Rules for how to compile C files
@@ -1103,42 +1094,45 @@ tclTestInit.o: $(UNIX_DIR)/tclAppInit.c ${TCL_EXE}
@if test -f tclAppInit.o ; then \
rm -f tclAppInit.sav; \
mv tclAppInit.o tclAppInit.sav; \
- fi;
+ fi
$(CC) -c $(APP_CC_SWITCHES) \
-DTCL_BUILDTIME_LIBRARY="\"${TCL_BUILDTIME_LIBRARY}\"" \
-DTCL_TEST $(UNIX_DIR)/tclAppInit.c
- rm -f tclTestInit.o
+ @rm -f tclTestInit.o
mv tclAppInit.o tclTestInit.o
@if test -f tclAppInit.sav ; then \
mv tclAppInit.sav tclAppInit.o; \
- fi;
+ fi
xtTestInit.o: $(UNIX_DIR)/tclAppInit.c ${TCL_EXE}
@if test -f tclAppInit.o ; then \
rm -f tclAppInit.sav; \
mv tclAppInit.o tclAppInit.sav; \
- fi;
+ fi
$(CC) -c $(APP_CC_SWITCHES) \
-DTCL_BUILDTIME_LIBRARY="\"${TCL_BUILDTIME_LIBRARY}\"" \
-DTCL_TEST -DTCL_XT_TEST $(UNIX_DIR)/tclAppInit.c
- rm -f xtTestInit.o
+ @rm -f xtTestInit.o
mv tclAppInit.o xtTestInit.o
@if test -f tclAppInit.sav ; then \
mv tclAppInit.sav tclAppInit.o; \
- fi;
+ fi
# Object files used on all Unix systems:
-REGHDRS=$(GENERIC_DIR)/regex.h $(GENERIC_DIR)/regguts.h \
- $(GENERIC_DIR)/regcustom.h
-TCLREHDRS=$(GENERIC_DIR)/tclRegexp.h
-COMPILEHDR=$(GENERIC_DIR)/tclCompile.h
-FSHDR=$(GENERIC_DIR)/tclFileSystem.h
-IOHDR=$(GENERIC_DIR)/tclIO.h
-MATHHDRS=$(GENERIC_DIR)/tommath.h $(GENERIC_DIR)/tclTomMath.h
-PARSEHDR=$(GENERIC_DIR)/tclParse.h
-NREHDR=$(GENERIC_DIR)/tclInt.h
-TRIMHDR=$(GENERIC_DIR)/tclStringTrim.h
+REGHDRS = $(GENERIC_DIR)/regex.h $(GENERIC_DIR)/regguts.h \
+ $(GENERIC_DIR)/regcustom.h
+TCLREHDRS = $(GENERIC_DIR)/tclRegexp.h
+COMPILEHDR = $(GENERIC_DIR)/tclCompile.h
+FSHDR = $(GENERIC_DIR)/tclFileSystem.h
+IOHDR = $(GENERIC_DIR)/tclIO.h
+MATHHDRS = $(GENERIC_DIR)/tclTomMath.h $(GENERIC_DIR)/tommath.h
+PARSEHDR = $(GENERIC_DIR)/tclParse.h
+NREHDR = $(GENERIC_DIR)/tclInt.h
+TRIMHDR = $(GENERIC_DIR)/tclStringTrim.h
+
+TCL_LOCATIONS = -DTCL_LIBRARY="\"${TCL_LIBRARY}\"" \
+ -DTCL_PACKAGE_PATH="\"${TCL_PACKAGE_PATH}\""
TCLDATEHDR=$(GENERIC_DIR)/tclDate.h $(GENERIC_DIR)/tclStrIdxTree.h
regcomp.o: $(REGHDRS) $(GENERIC_DIR)/regcomp.c $(GENERIC_DIR)/regc_lex.c \
@@ -1371,19 +1365,19 @@ tclPkg.o: $(GENERIC_DIR)/tclPkg.c
# prefix/exec_prefix but all the different paths individually.
tclPkgConfig.o: $(GENERIC_DIR)/tclPkgConfig.c
- $(CC) -c $(CC_SWITCHES) \
+ $(CC) -c $(CC_SWITCHES) \
-DCFG_INSTALL_LIBDIR="\"$(LIB_INSTALL_DIR)\"" \
-DCFG_INSTALL_BINDIR="\"$(BIN_INSTALL_DIR)\"" \
-DCFG_INSTALL_SCRDIR="\"$(SCRIPT_INSTALL_DIR)\"" \
-DCFG_INSTALL_INCDIR="\"$(INCLUDE_INSTALL_DIR)\"" \
-DCFG_INSTALL_DOCDIR="\"$(MAN_INSTALL_DIR)\"" \
- \
-DCFG_RUNTIME_LIBDIR="\"$(libdir)\"" \
-DCFG_RUNTIME_BINDIR="\"$(bindir)\"" \
-DCFG_RUNTIME_SCRDIR="\"$(TCL_LIBRARY)\"" \
-DCFG_RUNTIME_INCDIR="\"$(includedir)\"" \
-DCFG_RUNTIME_DOCDIR="\"$(mandir)\"" \
- \
+ -DCFG_RUNTIME_DLLFILE="\"$(TCL_LIB_FILE)\"" \
+ -DCFG_RUNTIME_ZIPFILE="\"$(TCL_ZIP_FILE)\"" \
$(GENERIC_DIR)/tclPkgConfig.c
tclPosixStr.o: $(GENERIC_DIR)/tclPosixStr.c
@@ -1680,7 +1674,6 @@ tclUnixThrd.o: $(UNIX_DIR)/tclUnixThrd.c
tclUnixTime.o: $(UNIX_DIR)/tclUnixTime.c
$(CC) -c $(CC_SWITCHES) $(UNIX_DIR)/tclUnixTime.c
-TCL_LOCATIONS=-DTCL_LIBRARY="\"${TCL_LIBRARY}\"" -DTCL_PACKAGE_PATH="\"${TCL_PACKAGE_PATH}\""
tclUnixInit.o: $(UNIX_DIR)/tclUnixInit.c tclConfig.sh
$(CC) -c $(CC_SWITCHES) $(TCL_LOCATIONS) $(UNIX_DIR)/tclUnixInit.c
@@ -1794,13 +1787,13 @@ Zzutil.o: $(ZLIB_DIR)/zutil.c
#--------------------------------------------------------------------------
tclStubLib.o: $(GENERIC_DIR)/tclStubLib.c
- $(CC) -c $(STUB_CC_SWITCHES) -DSTATIC_BUILD $(GENERIC_DIR)/tclStubLib.c
+ $(CC) -c $(STUB_CC_SWITCHES) -DSTATIC_BUILD @CFLAGS_NOLTO@ $(GENERIC_DIR)/tclStubLib.c
tclTomMathStubLib.o: $(GENERIC_DIR)/tclTomMathStubLib.c
- $(CC) -c $(STUB_CC_SWITCHES) $(GENERIC_DIR)/tclTomMathStubLib.c
+ $(CC) -c $(STUB_CC_SWITCHES) @CFLAGS_NOLTO@ $(GENERIC_DIR)/tclTomMathStubLib.c
tclOOStubLib.o: $(GENERIC_DIR)/tclOOStubLib.c
- $(CC) -c $(STUB_CC_SWITCHES) $(GENERIC_DIR)/tclOOStubLib.c
+ $(CC) -c $(STUB_CC_SWITCHES) @CFLAGS_NOLTO@ $(GENERIC_DIR)/tclOOStubLib.c
.c.o:
$(CC) -c $(CC_SWITCHES) $<
@@ -1819,79 +1812,79 @@ PKG_DIR = ./pkgs
configure-packages:
@for i in $(PKGS_DIR)/*; do \
- if [ -d $$i ]; then \
- if [ -x $$i/configure ]; then \
- pkg=`basename $$i`; \
- echo "Configuring package '$$pkg'"; \
- mkdir -p $(PKG_DIR)/$$pkg; \
- if [ ! -f $(PKG_DIR)/$$pkg/Makefile ]; then \
- ( cd $(PKG_DIR)/$$pkg; \
- $$i/configure --with-tcl=../.. \
- --with-tclinclude=$(GENERIC_DIR) \
- $(PKG_CFG_ARGS) --libdir=$(PACKAGE_DIR) \
- --enable-shared --enable-threads; ) || exit $$?; \
- fi; \
+ if [ -d $$i ] ; then \
+ if [ -x $$i/configure ] ; then \
+ pkg=`basename $$i`; \
+ echo "Configuring package '$$pkg'"; \
+ mkdir -p $(PKG_DIR)/$$pkg; \
+ if [ ! -f $(PKG_DIR)/$$pkg/Makefile ] ; then \
+ ( cd $(PKG_DIR)/$$pkg; \
+ $$i/configure --with-tcl=../.. \
+ --with-tclinclude=$(GENERIC_DIR) \
+ $(PKG_CFG_ARGS) --libdir=$(PACKAGE_DIR) \
+ --enable-shared --enable-threads; ) || exit $$?; \
+ fi; \
+ fi; \
fi; \
- fi; \
done
packages: configure-packages ${STUB_LIB_FILE}
@for i in $(PKGS_DIR)/*; do \
- if [ -d $$i ]; then \
- pkg=`basename $$i`; \
- if [ -f $(PKG_DIR)/$$pkg/Makefile ]; then \
- echo "Building package '$$pkg'"; \
- ( cd $(PKG_DIR)/$$pkg; $(MAKE); ) || exit $$?; \
+ if [ -d $$i ] ; then \
+ pkg=`basename $$i`; \
+ if [ -f $(PKG_DIR)/$$pkg/Makefile ] ; then \
+ echo "Building package '$$pkg'"; \
+ ( cd $(PKG_DIR)/$$pkg; $(MAKE); ) || exit $$?; \
+ fi; \
fi; \
- fi; \
done
install-packages: packages
@for i in $(PKGS_DIR)/*; do \
- if [ -d $$i ]; then \
- pkg=`basename $$i`; \
- if [ -f $(PKG_DIR)/$$pkg/Makefile ]; then \
- echo "Installing package '$$pkg'"; \
- ( cd $(PKG_DIR)/$$pkg; $(MAKE) install \
- "DESTDIR=$(INSTALL_ROOT)"; ) || exit $$?; \
+ if [ -d $$i ] ; then \
+ pkg=`basename $$i`; \
+ if [ -f $(PKG_DIR)/$$pkg/Makefile ] ; then \
+ echo "Installing package '$$pkg'"; \
+ ( cd $(PKG_DIR)/$$pkg; $(MAKE) install \
+ "DESTDIR=$(INSTALL_ROOT)"; ) || exit $$?; \
+ fi; \
fi; \
- fi; \
done
test-packages: ${TCLTEST_EXE} packages
@for i in $(PKGS_DIR)/*; do \
- if [ -d $$i ]; then \
- pkg=`basename $$i`; \
- if [ -f $(PKG_DIR)/$$pkg/Makefile ]; then \
- echo "Testing package '$$pkg'"; \
- ( cd $(PKG_DIR)/$$pkg; $(MAKE) \
- "@LD_LIBRARY_PATH_VAR@=../..:$${@LD_LIBRARY_PATH_VAR@}" \
- "TCL_LIBRARY=${TCL_BUILDTIME_LIBRARY}" \
- "TCLLIBPATH=../../pkgs" test \
- "TCLSH_PROG=../../${TCLTEST_EXE}"; ) \
+ if [ -d $$i ] ; then \
+ pkg=`basename $$i`; \
+ if [ -f $(PKG_DIR)/$$pkg/Makefile ] ; then \
+ echo "Testing package '$$pkg'"; \
+ ( cd $(PKG_DIR)/$$pkg; $(MAKE) \
+ "@LD_LIBRARY_PATH_VAR@=../..:$${@LD_LIBRARY_PATH_VAR@}" \
+ "TCL_LIBRARY=${TCL_BUILDTIME_LIBRARY}" \
+ "TCLLIBPATH=../../pkgs" test \
+ "TCLSH_PROG=../../${TCLTEST_EXE}"; ) \
+ fi; \
fi; \
- fi; \
done
clean-packages:
@for i in $(PKGS_DIR)/*; do \
- if [ -d $$i ]; then \
- pkg=`basename $$i`; \
- if [ -f $(PKG_DIR)/$$pkg/Makefile ]; then \
- ( cd $(PKG_DIR)/$$pkg; $(MAKE) clean; ) \
+ if [ -d $$i ] ; then \
+ pkg=`basename $$i`; \
+ if [ -f $(PKG_DIR)/$$pkg/Makefile ] ; then \
+ ( cd $(PKG_DIR)/$$pkg; $(MAKE) clean; ) \
+ fi; \
fi; \
- fi; \
done
distclean-packages:
@for i in $(PKGS_DIR)/*; do \
- if [ -d $$i ]; then \
- pkg=`basename $$i`; \
- if [ -f $(PKG_DIR)/$$pkg/Makefile ]; then \
- ( cd $(PKG_DIR)/$$pkg; $(MAKE) distclean; ) \
+ if [ -d $$i ] ; then \
+ pkg=`basename $$i`; \
+ if [ -f $(PKG_DIR)/$$pkg/Makefile ] ; then \
+ ( cd $(PKG_DIR)/$$pkg; $(MAKE) distclean; ) \
+ fi; \
+ rm -rf $(PKG_DIR)/$$pkg; \
fi; \
- rm -rf $(PKG_DIR)/$$pkg; \
- fi; \
done; \
rm -rf $(PKG_DIR)
@@ -1899,13 +1892,13 @@ dist-packages: configure-packages
@rm -rf $(DISTROOT)/pkgs; \
mkdir -p $(DISTROOT)/pkgs; \
for i in $(PKGS_DIR)/*; do \
- if [ -d $$i ]; then \
- pkg=`basename $$i`; \
- if [ -f $(PKG_DIR)/$$pkg/Makefile ]; then \
- ( cd $(PKG_DIR)/$$pkg; $(MAKE) dist \
- "DIST_ROOT=$(DISTROOT)/pkgs"; ) || exit $$?; \
+ if [ -d $$i ] ; then \
+ pkg=`basename $$i`; \
+ if [ -f $(PKG_DIR)/$$pkg/Makefile ] ; then \
+ ( cd $(PKG_DIR)/$$pkg; $(MAKE) dist \
+ "DIST_ROOT=$(DISTROOT)/pkgs"; ) || exit $$?; \
+ fi; \
fi; \
- fi; \
done
#--------------------------------------------------------------------------
@@ -1920,9 +1913,9 @@ dist-packages: configure-packages
gendate:
bison --output-file=$(GENERIC_DIR)/tclDate.c \
- --no-lines \
- --name-prefix=TclDate \
- $(GENERIC_DIR)/tclGetDate.y
+ --no-lines \
+ --name-prefix=TclDate \
+ $(GENERIC_DIR)/tclGetDate.y
# yacc -l $(GENERIC_DIR)/tclGetDate.y
# sed -e 's/yy/TclDate/g' -e '/^#include <values.h>/d' \
@@ -1973,14 +1966,16 @@ genstubs:
checkstubs: $(TCL_LIB_FILE)
-@for i in `nm -p $(TCL_LIB_FILE) \
| awk '$$2 ~ /^[TDBCS]$$/ { sub("^_", "", $$3); print $$3 }' \
- | sort -n`; do \
- match=0; \
- for j in $(TCL_DECLS); do \
- if [ `grep -c "$$i *(" $$j` -gt 0 ]; then \
- match=1; \
- fi; \
- done; \
- if [ $$match -eq 0 ]; then echo $$i; fi \
+ | sort -n` ; do \
+ match=0; \
+ for j in $(TCL_DECLS); do \
+ if [ `grep -c "$$i *(" $$j` -gt 0 ] ; then \
+ match=1; \
+ fi; \
+ done; \
+ if [ $$match -eq 0 ] ; then \
+ echo $$i; \
+ fi; \
done
#
@@ -1991,13 +1986,15 @@ checkstubs: $(TCL_LIB_FILE)
checkdoc: $(TCL_LIB_FILE)
-@for i in `nm -p $(TCL_LIB_FILE) | awk '$$3 ~ /Tcl_/ { print $$3 }' \
| grep -v 'Cmd$$' | sort -n`; do \
- match=0; \
- for j in $(TOP_DIR)/doc/*.3; do \
- if [ `grep '\-' $$j | grep -c $$i` -gt 0 ]; then \
- match=1; \
- fi; \
- done; \
- if [ $$match -eq 0 ]; then echo $$i; fi \
+ match=0; \
+ for j in $(TOP_DIR)/doc/*.3; do \
+ if [ `grep '\-' $$j | grep -c $$i` -gt 0 ]; then \
+ match=1; \
+ fi; \
+ done; \
+ if [ $$match -eq 0 ]; then \
+ echo $$i; \
+ fi; \
done
#
@@ -2005,7 +2002,7 @@ checkdoc: $(TCL_LIB_FILE)
#
checkuchar:
- -egrep isalnum\|isalpha\|iscntrl\|isdigit\|islower\|isprint\|ispunct\|isspace\|isupper\|isxdigit\|toupper\|tolower $(SRCS) | grep -v UCHAR
+ -@egrep isalnum\|isalpha\|iscntrl\|isdigit\|islower\|isprint\|ispunct\|isspace\|isupper\|isxdigit\|toupper\|tolower $(SRCS) | grep -v UCHAR
#
# Target to make sure that only symbols with "Tcl" prefixes are exported.
@@ -2025,15 +2022,18 @@ checkexports: $(TCL_LIB_FILE)
# system.
#
+RPM_PLATFORMS = i386
rpm: all
- rm -f THIS.TCL.SPEC
+ -@rm -f THIS.TCL.SPEC
echo "%define _builddir `pwd`" > THIS.TCL.SPEC
echo "%define _rpmdir `pwd`/RPMS" >> THIS.TCL.SPEC
cat tcl.spec >> THIS.TCL.SPEC
- mkdir -p RPMS/i386
- rpmbuild -bb THIS.TCL.SPEC
- mv RPMS/i386/*.rpm .
- rm -rf RPMS THIS.TCL.SPEC
+ for platform in $(RPM_PLATFORMS); do \
+ mkdir -p RPMS/$$platform && \
+ rpmbuild -bb THIS.TCL.SPEC && \
+ mv RPMS/$$platform/*.rpm .; \
+ done
+ -rm -rf RPMS THIS.TCL.SPEC
#
# Target to create a proper Tcl distribution from information in the
@@ -2062,16 +2062,16 @@ dist: $(UNIX_DIR)/configure $(UNIX_DIR)/tclConfig.h.in $(UNIX_DIR)/tcl.pc.in $(M
mkdir -p $(DISTDIR)/unix
cp -p $(TOP_DIR)/manifest.uuid $(DISTDIR)
cp -p $(UNIX_DIR)/*.[ch] $(DISTDIR)/unix
- cp $(UNIX_DIR)/Makefile.in $(DISTDIR)/unix
+ cp -p $(UNIX_DIR)/Makefile.in $(DISTDIR)/unix
chmod 664 $(DISTDIR)/unix/Makefile.in
- cp $(UNIX_DIR)/configure $(UNIX_DIR)/configure.in \
+ cp -p $(UNIX_DIR)/configure $(UNIX_DIR)/configure.in \
$(UNIX_DIR)/tcl.m4 $(UNIX_DIR)/aclocal.m4 \
$(UNIX_DIR)/tclConfig.sh.in $(UNIX_DIR)/tclooConfig.sh \
$(UNIX_DIR)/install-sh \
$(UNIX_DIR)/README $(UNIX_DIR)/ldAix $(UNIX_DIR)/tcl.spec \
$(UNIX_DIR)/installManPage $(UNIX_DIR)/tclConfig.h.in \
$(UNIX_DIR)/tcl.pc.in $(DISTDIR)/unix
- chmod 775 $(DISTDIR)/unix/configure $(DISTDIR)/unix/configure.in
+ chmod 775 $(DISTDIR)/unix/configure
chmod 775 $(DISTDIR)/unix/ldAix
@mkdir $(DISTDIR)/generic
cp -p $(GENERIC_DIR)/*.[cdh] $(DISTDIR)/generic
@@ -2084,11 +2084,10 @@ dist: $(UNIX_DIR)/configure $(UNIX_DIR)/tclConfig.h.in $(UNIX_DIR)/tcl.pc.in $(M
@mkdir $(DISTDIR)/library
cp -p $(TOP_DIR)/license.terms $(TOP_DIR)/library/*.tcl \
$(TOP_DIR)/library/tclIndex $(DISTDIR)/library
- for i in http1.0 http opt msgcat reg dde tcltest platform; \
- do \
- mkdir $(DISTDIR)/library/$$i ;\
- cp -p $(TOP_DIR)/library/$$i/*.tcl $(DISTDIR)/library/$$i; \
- done;
+ @for i in http1.0 http opt msgcat reg dde tcltest platform; do \
+ mkdir $(DISTDIR)/library/$$i;\
+ cp -p $(TOP_DIR)/library/$$i/*.tcl $(DISTDIR)/library/$$i; \
+ done
@mkdir $(DISTDIR)/library/encoding
cp -p $(TOP_DIR)/library/encoding/*.enc $(DISTDIR)/library/encoding
@mkdir $(DISTDIR)/library/msgs
@@ -2105,7 +2104,8 @@ dist: $(UNIX_DIR)/configure $(UNIX_DIR)/tclConfig.h.in $(UNIX_DIR)/tcl.pc.in $(M
cp -p $(TOP_DIR)/license.terms $(COMPAT_DIR)/*.[ch] \
$(COMPAT_DIR)/README $(DISTDIR)/compat
@mkdir $(DISTDIR)/compat/zlib
- ( cd $(COMPAT_DIR)/zlib; \
+ @echo cp -r $(COMPAT_DIR)/zlib $(DISTDIR)/compat/zlib
+ @( cd $(COMPAT_DIR)/zlib; \
find . -name CVS -prune -o -type f -print ) \
| ( cd $(COMPAT_DIR)/zlib ; xargs tar cf - ) \
| ( cd $(DISTDIR)/compat/zlib ; tar xfp - )
@@ -2114,9 +2114,22 @@ dist: $(UNIX_DIR)/configure $(UNIX_DIR)/tclConfig.h.in $(UNIX_DIR)/tcl.pc.in $(M
cp -p $(TOP_DIR)/tests/*.test $(TOP_DIR)/tests/README \
$(TOP_DIR)/tests/httpd $(TOP_DIR)/tests/*.tcl \
$(DISTDIR)/tests
+ @mkdir $(DISTDIR)/tests/auto0
+ for i in auto1 auto2 ; \
+ do \
+ mkdir $(DISTDIR)/tests/auto0/$$i ;\
+ cp -p $(TOP_DIR)/tests/auto0/$$i/tclIndex $(TOP_DIR)/tests/auto0/$$i/*.tcl \
+ $(DISTDIR)/tests/auto0/$$i; \
+ done;
+ for i in modules modules/mod1 modules/mod2 ; \
+ do \
+ mkdir $(DISTDIR)/tests/auto0/$$i ;\
+ cp -p $(TOP_DIR)/tests/auto0/$$i/*.tm \
+ $(DISTDIR)/tests/auto0/$$i; \
+ done;
@mkdir $(DISTDIR)/win
- cp $(TOP_DIR)/win/Makefile.in $(DISTDIR)/win
- cp $(TOP_DIR)/win/configure.in $(TOP_DIR)/win/configure \
+ cp -p $(TOP_DIR)/win/Makefile.in $(DISTDIR)/win
+ cp -p $(TOP_DIR)/win/configure.in $(TOP_DIR)/win/configure \
$(TOP_DIR)/win/tclConfig.sh.in $(TOP_DIR)/win/tclooConfig.sh \
$(TOP_DIR)/win/tcl.m4 $(TOP_DIR)/win/aclocal.m4 \
$(TOP_DIR)/win/tclsh.exe.manifest.in \
@@ -2156,16 +2169,21 @@ dist: $(UNIX_DIR)/configure $(UNIX_DIR)/tclConfig.h.in $(UNIX_DIR)/tcl.pc.in $(M
@mkdir $(DISTDIR)/libtommath
cp -p $(TOMMATH_SRCS) $(TOMMATH_DIR)/*.h $(DISTDIR)/libtommath
@mkdir $(DISTDIR)/pkgs
- cp $(TOP_DIR)/pkgs/README $(DISTDIR)/pkgs
- cp $(TOP_DIR)/pkgs/package.list.txt $(DISTDIR)/pkgs
+ cp -p $(TOP_DIR)/pkgs/README $(DISTDIR)/pkgs
+ cp -p $(TOP_DIR)/pkgs/package.list.txt $(DISTDIR)/pkgs
for i in `ls $(DISTROOT)/pkgs/*.tar.gz 2> /dev/null`; do \
tar -C $(DISTDIR)/pkgs -xzf "$$i"; \
done
+ cp -p $(TOP_DIR)/.travis.yml $(DISTDIR)
+ mkdir -p $(DISTDIR)/.github/workflows
+ cp -p $(TOP_DIR)/.github/workflows/*.yml $(DISTDIR)/.github/workflows
alldist: dist
rm -f $(DISTROOT)/$(DISTNAME)-src.tar.gz $(DISTROOT)/$(ZIPNAME)
- cd $(DISTROOT); tar cf $(DISTNAME)-src.tar $(DISTNAME); \
- gzip -9 $(DISTNAME)-src.tar; zip -qr8 $(ZIPNAME) $(DISTNAME)
+ ( cd $(DISTROOT); \
+ tar cf $(DISTNAME)-src.tar $(DISTNAME); \
+ gzip -9 $(DISTNAME)-src.tar; \
+ zip -qr8 $(ZIPNAME) $(DISTNAME) )
#--------------------------------------------------------------------------
# This target creates the HTML folder for Tcl & Tk and places it in
diff --git a/unix/configure b/unix/configure
index d452bd3..e830867 100755
--- a/unix/configure
+++ b/unix/configure
@@ -308,7 +308,7 @@ ac_includes_default="\
# include <unistd.h>
#endif"
-ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS MAN_FLAGS CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT CPP EGREP TCL_THREADS TCLSH_PROG ZLIB_OBJS ZLIB_SRCS ZLIB_INCLUDE RANLIB ac_ct_RANLIB AR ac_ct_AR LIBOBJS TCL_LIBS DL_LIBS DL_OBJS PLAT_OBJS PLAT_SRCS LDAIX_SRC CFLAGS_DEBUG CFLAGS_OPTIMIZE CFLAGS_WARNING LDFLAGS_DEBUG LDFLAGS_OPTIMIZE CC_SEARCH_FLAGS LD_SEARCH_FLAGS STLIB_LD SHLIB_LD TCL_SHLIB_LD_EXTRAS TK_SHLIB_LD_EXTRAS SHLIB_LD_LIBS SHLIB_CFLAGS SHLIB_SUFFIX MAKE_LIB MAKE_STUB_LIB INSTALL_LIB DLL_INSTALL_DIR INSTALL_STUB_LIB CFLAGS_DEFAULT LDFLAGS_DEFAULT DTRACE TCL_VERSION TCL_MAJOR_VERSION TCL_MINOR_VERSION TCL_PATCH_LEVEL TCL_YEAR PKG_CFG_ARGS TCL_LIB_FILE TCL_LIB_FLAG TCL_LIB_SPEC TCL_STUB_LIB_FILE TCL_STUB_LIB_FLAG TCL_STUB_LIB_SPEC TCL_STUB_LIB_PATH TCL_INCLUDE_SPEC TCL_BUILD_STUB_LIB_SPEC TCL_BUILD_STUB_LIB_PATH TCL_SRC_DIR CFG_TCL_SHARED_LIB_SUFFIX CFG_TCL_UNSHARED_LIB_SUFFIX TCL_SHARED_BUILD LD_LIBRARY_PATH_VAR TCL_BUILD_LIB_SPEC TCL_LIB_VERSIONS_OK TCL_SHARED_LIB_SUFFIX TCL_UNSHARED_LIB_SUFFIX TCL_HAS_LONGLONG INSTALL_TZDATA DTRACE_SRC DTRACE_HDR DTRACE_OBJ MAKEFILE_SHELL BUILD_DLTEST TCL_PACKAGE_PATH TCL_MODULE_PATH TCL_LIBRARY PRIVATE_INCLUDE_DIR HTML_DIR PACKAGE_DIR EXTRA_CC_SWITCHES EXTRA_APP_CC_SWITCHES EXTRA_INSTALL EXTRA_INSTALL_BINARIES EXTRA_BUILD_HTML EXTRA_TCLSH_LIBS DLTEST_LD DLTEST_SUFFIX'
+ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS MAN_FLAGS CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT CPP EGREP TCL_THREADS TCLSH_PROG ZLIB_OBJS ZLIB_SRCS ZLIB_INCLUDE RANLIB ac_ct_RANLIB AR ac_ct_AR LIBOBJS TCL_LIBS DL_LIBS DL_OBJS PLAT_OBJS PLAT_SRCS LDAIX_SRC CFLAGS_DEBUG CFLAGS_OPTIMIZE CFLAGS_WARNING CFLAGS_NOLTO LDFLAGS_DEBUG LDFLAGS_OPTIMIZE CC_SEARCH_FLAGS LD_SEARCH_FLAGS STLIB_LD SHLIB_LD TCL_SHLIB_LD_EXTRAS TK_SHLIB_LD_EXTRAS SHLIB_LD_LIBS SHLIB_CFLAGS SHLIB_SUFFIX MAKE_LIB MAKE_STUB_LIB INSTALL_LIB DLL_INSTALL_DIR INSTALL_STUB_LIB CFLAGS_DEFAULT LDFLAGS_DEFAULT DTRACE TCL_VERSION TCL_MAJOR_VERSION TCL_MINOR_VERSION TCL_PATCH_LEVEL TCL_YEAR PKG_CFG_ARGS TCL_LIB_FILE TCL_LIB_FLAG TCL_LIB_SPEC TCL_STUB_LIB_FILE TCL_STUB_LIB_FLAG TCL_STUB_LIB_SPEC TCL_STUB_LIB_PATH TCL_INCLUDE_SPEC TCL_BUILD_STUB_LIB_SPEC TCL_BUILD_STUB_LIB_PATH TCL_SRC_DIR CFG_TCL_SHARED_LIB_SUFFIX CFG_TCL_UNSHARED_LIB_SUFFIX TCL_SHARED_BUILD LD_LIBRARY_PATH_VAR TCL_BUILD_LIB_SPEC TCL_LIB_VERSIONS_OK TCL_SHARED_LIB_SUFFIX TCL_UNSHARED_LIB_SUFFIX TCL_HAS_LONGLONG INSTALL_TZDATA DTRACE_SRC DTRACE_HDR DTRACE_OBJ MAKEFILE_SHELL BUILD_DLTEST TCL_PACKAGE_PATH TCL_MODULE_PATH TCL_LIBRARY PRIVATE_INCLUDE_DIR HTML_DIR PACKAGE_DIR EXTRA_CC_SWITCHES EXTRA_APP_CC_SWITCHES EXTRA_INSTALL EXTRA_INSTALL_BINARIES EXTRA_BUILD_HTML EXTRA_TCLSH_LIBS DLTEST_LD DLTEST_SUFFIX'
ac_subst_files=''
# Initialize some variables set by options.
@@ -1335,7 +1335,7 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu
TCL_VERSION=8.6
TCL_MAJOR_VERSION=8
TCL_MINOR_VERSION=6
-TCL_PATCH_LEVEL=".10"
+TCL_PATCH_LEVEL=".11"
VERSION=${TCL_VERSION}
EXTRA_INSTALL_BINARIES=${EXTRA_INSTALL_BINARIES:-"@:"}
@@ -2823,6 +2823,7 @@ cat confdefs.h >>conftest.$ac_ext
cat >>conftest.$ac_ext <<_ACEOF
/* end confdefs.h. */
#include <ctype.h>
+#include <stdlib.h>
#if ((' ' & 0x0FF) == 0x020)
# define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c))
@@ -5714,14 +5715,6 @@ if test "${enable_shared+set}" = set; then
else
tcl_ok=yes
fi;
-
- if test "${enable_shared+set}" = set; then
- enableval="$enable_shared"
- tcl_ok=$enableval
- else
- tcl_ok=yes
- fi
-
if test "$tcl_ok" = "yes" ; then
echo "$as_me:$LINENO: result: shared" >&5
echo "${ECHO_T}shared" >&6
@@ -6787,7 +6780,7 @@ fi
CC_SEARCH_FLAGS=""
LD_SEARCH_FLAGS=""
;;
- CYGWIN_*|MINGW32*|MSYS_*)
+ CYGWIN_*|MINGW32_*|MSYS_*)
SHLIB_CFLAGS=""
SHLIB_LD='${CC} -shared'
SHLIB_SUFFIX=".dll"
@@ -8713,7 +8706,7 @@ fi
case $system in
AIX-*) ;;
BSD/OS*) ;;
- CYGWIN_*|MINGW32*|MSYS_*) ;;
+ CYGWIN_*|MINGW32_*|MSYS_*) ;;
IRIX*) ;;
NetBSD-*|DragonFly-*|FreeBSD-*|OpenBSD-*) ;;
Darwin-*) ;;
@@ -8872,6 +8865,67 @@ cat >>confdefs.h <<\_ACEOF
_ACEOF
fi
+ hold_cflags=$CFLAGS; CFLAGS="$CFLAGS -fno-lto"
+ echo "$as_me:$LINENO: checking for working -fno-lto" >&5
+echo $ECHO_N "checking for working -fno-lto... $ECHO_C" >&6
+if test "${ac_cv_nolto+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. */
+
+int
+main ()
+{
+
+ ;
+ 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
+ ac_cv_nolto=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_nolto=no
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+
+fi
+echo "$as_me:$LINENO: result: $ac_cv_nolto" >&5
+echo "${ECHO_T}$ac_cv_nolto" >&6
+ CFLAGS=$hold_cflags
+ if test "$ac_cv_nolto" = "yes" ; then
+ CFLAGS_NOLTO="-fno-lto"
+ else
+ CFLAGS_NOLTO=""
+ fi
# FIXME: This subst was left in only because the TCL_DL_LIBS
# entry in tclConfig.sh uses it. It is not clear why someone
@@ -8901,6 +8955,7 @@ _ACEOF
+
cat >>confdefs.h <<_ACEOF
#define TCL_SHLIB_EXT "${SHLIB_SUFFIX}"
_ACEOF
@@ -13968,7 +14023,7 @@ cat >>conftest.$ac_ext <<_ACEOF
int
main ()
{
-struct tm tm; tm.tm_tzadj;
+struct tm tm; (void)tm.tm_tzadj;
;
return 0;
}
@@ -19611,6 +19666,7 @@ s,@LDAIX_SRC@,$LDAIX_SRC,;t t
s,@CFLAGS_DEBUG@,$CFLAGS_DEBUG,;t t
s,@CFLAGS_OPTIMIZE@,$CFLAGS_OPTIMIZE,;t t
s,@CFLAGS_WARNING@,$CFLAGS_WARNING,;t t
+s,@CFLAGS_NOLTO@,$CFLAGS_NOLTO,;t t
s,@LDFLAGS_DEBUG@,$LDFLAGS_DEBUG,;t t
s,@LDFLAGS_OPTIMIZE@,$LDFLAGS_OPTIMIZE,;t t
s,@CC_SEARCH_FLAGS@,$CC_SEARCH_FLAGS,;t t
diff --git a/unix/configure.in b/unix/configure.in
index 2a66cb1..21e47376 100644
--- a/unix/configure.in
+++ b/unix/configure.in
@@ -4,7 +4,7 @@ dnl generate the file "configure", which is run during Tcl installation
dnl to configure the system for the local environment.
AC_INIT([tcl],[8.6])
-AC_PREREQ(2.59)
+AC_PREREQ([2.59])
dnl This is only used when included from macosx/configure.ac
m4_ifdef([SC_USE_CONFIG_HEADERS], [
@@ -17,15 +17,16 @@ m4_ifdef([SC_USE_CONFIG_HEADERS], [
/* Undef unused package specific autoheader defines so that we can
* include both tclConfig.h and tkConfig.h at the same time: */
/* override */ #undef PACKAGE_NAME
- /* override */ #undef PACKAGE_STRING
/* override */ #undef PACKAGE_TARNAME
+ /* override */ #undef PACKAGE_VERSION
+ /* override */ #undef PACKAGE_STRING
#endif /* _TCLCONFIG */])
])
TCL_VERSION=8.6
TCL_MAJOR_VERSION=8
TCL_MINOR_VERSION=6
-TCL_PATCH_LEVEL=".10"
+TCL_PATCH_LEVEL=".11"
VERSION=${TCL_VERSION}
EXTRA_INSTALL_BINARIES=${EXTRA_INSTALL_BINARIES:-"@:"}
@@ -112,7 +113,7 @@ if test -z "$no_pipe" && test -n "$GCC"; then
AC_CACHE_CHECK([if the compiler understands -pipe],
tcl_cv_cc_pipe, [
hold_cflags=$CFLAGS; CFLAGS="$CFLAGS -pipe"
- AC_TRY_COMPILE(,, tcl_cv_cc_pipe=yes, tcl_cv_cc_pipe=no)
+ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[]], [[]])],[tcl_cv_cc_pipe=yes],[tcl_cv_cc_pipe=no])
CFLAGS=$hold_cflags])
if test $tcl_cv_cc_pipe = yes; then
CFLAGS="$CFLAGS -pipe"
@@ -285,8 +286,8 @@ AC_CHECK_HEADERS(sys/modem.h)
#--------------------------------------------------------------------
AC_CACHE_CHECK([for fd_set in sys/types], tcl_cv_type_fd_set, [
- AC_TRY_COMPILE([#include <sys/types.h>],[fd_set readMask, writeMask;],
- tcl_cv_type_fd_set=yes, tcl_cv_type_fd_set=no)])
+ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <sys/types.h>]], [[fd_set readMask, writeMask;]])],
+ [tcl_cv_type_fd_set=yes],[tcl_cv_type_fd_set=no])])
tcl_ok=$tcl_cv_type_fd_set
if test $tcl_ok = no; then
AC_CACHE_CHECK([for fd_mask in sys/select], tcl_cv_grep_fd_mask, [
@@ -367,12 +368,12 @@ AC_TYPE_SIZE_T
AC_TYPE_UID_T
AC_CACHE_CHECK([for socklen_t], tcl_cv_type_socklen_t, [
- AC_TRY_COMPILE([
+ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
#include <sys/types.h>
#include <sys/socket.h>
- ],[
+ ]], [[
socklen_t foo;
- ],[tcl_cv_type_socklen_t=yes],[tcl_cv_type_socklen_t=no])])
+ ]])],[tcl_cv_type_socklen_t=yes],[tcl_cv_type_socklen_t=no])])
if test $tcl_cv_type_socklen_t = no; then
AC_DEFINE(socklen_t, int, [Define as int if socklen_t is not available])
fi
@@ -427,12 +428,12 @@ AC_CHECK_FUNC(opendir, , [AC_DEFINE(USE_DIRENT2_H, 1, [May we include <dirent2.h
#--------------------------------------------------------------------
AC_CACHE_CHECK([union wait], tcl_cv_union_wait, [
- AC_TRY_LINK([#include <sys/types.h>
-#include <sys/wait.h>], [
+ AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <sys/types.h>
+#include <sys/wait.h>]], [[
union wait x;
WIFEXITED(x); /* Generates compiler error if WIFEXITED
* uses an int. */
- ], tcl_cv_union_wait=yes, tcl_cv_union_wait=no)])
+ ]])],[tcl_cv_union_wait=yes],[tcl_cv_union_wait=no])])
if test $tcl_cv_union_wait = no; then
AC_DEFINE(NO_UNION_WAIT, 1, [Do we have a usable 'union wait'?])
fi
@@ -482,10 +483,10 @@ fi
AC_C_CHAR_UNSIGNED
AC_CACHE_CHECK([signed char declarations], tcl_cv_char_signed, [
- AC_TRY_COMPILE(, [
+ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[]], [[
signed char *p;
p = 0;
- ], tcl_cv_char_signed=yes, tcl_cv_char_signed=no)])
+ ]])],[tcl_cv_char_signed=yes],[tcl_cv_char_signed=no])])
if test $tcl_cv_char_signed = yes; then
AC_DEFINE(HAVE_SIGNED_CHAR, 1, [Are characters signed?])
fi
@@ -495,7 +496,7 @@ fi
#--------------------------------------------------------------------
AC_CACHE_CHECK([for a putenv() that copies the buffer], tcl_cv_putenv_copy, [
- AC_TRY_RUN([
+ AC_RUN_IFELSE([AC_LANG_SOURCE([[
#include <stdlib.h>
#include <string.h>
#define OURVAR "havecopy=yes"
@@ -514,10 +515,10 @@ AC_CACHE_CHECK([for a putenv() that copies the buffer], tcl_cv_putenv_copy, [
return 1;
}
}
- ],
- tcl_cv_putenv_copy=no,
- tcl_cv_putenv_copy=yes,
- tcl_cv_putenv_copy=no)])
+ ]])],
+ [tcl_cv_putenv_copy=no],
+ [tcl_cv_putenv_copy=yes],
+ [tcl_cv_putenv_copy=no])])
if test $tcl_cv_putenv_copy = yes; then
AC_DEFINE(HAVE_PUTENV_THAT_COPIES, 1,
[Does putenv() copy strings or incorporate them by reference?])
@@ -540,9 +541,9 @@ AC_CHECK_FUNCS(chflags mkstemps)
#--------------------------------------------------------------------
AC_CACHE_CHECK([isnan], tcl_cv_isnan, [
- AC_TRY_LINK([#include <math.h>], [
+ AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <math.h>]], [[
isnan(0.0); /* Generates an error if isnan is missing */
-], tcl_cv_isnan=yes, tcl_cv_isnan=no)])
+]])],[tcl_cv_isnan=yes],[tcl_cv_isnan=no])])
if test $tcl_cv_isnan = no; then
AC_DEFINE(NO_ISNAN, 1, [Do we have a usable 'isnan'?])
fi
@@ -570,7 +571,7 @@ if test "`uname -s`" = "Darwin" ; then
if test "$ac_cv_header_AvailabilityMacros_h" = yes; then
AC_CACHE_CHECK([if weak import is available], tcl_cv_cc_weak_import, [
hold_cflags=$CFLAGS; CFLAGS="$CFLAGS -Werror"
- AC_TRY_LINK([
+ AC_LINK_IFELSE([AC_LANG_PROGRAM([[
#ifdef __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__
#if __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ < 1020
#error __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ < 1020
@@ -579,8 +580,8 @@ if test "`uname -s`" = "Darwin" ; then
#error MAC_OS_X_VERSION_MIN_REQUIRED < 1020
#endif
int rand(void) __attribute__((weak_import));
- ], [rand();],
- tcl_cv_cc_weak_import=yes, tcl_cv_cc_weak_import=no)
+ ]], [[rand();]])],
+ [tcl_cv_cc_weak_import=yes],[tcl_cv_cc_weak_import=no])
CFLAGS=$hold_cflags])
if test $tcl_cv_cc_weak_import = yes; then
AC_DEFINE(HAVE_WEAK_IMPORT, 1, [Is weak import available?])
@@ -588,7 +589,7 @@ if test "`uname -s`" = "Darwin" ; then
AC_CACHE_CHECK([if Darwin SUSv3 extensions are available],
tcl_cv_cc_darwin_c_source, [
hold_cflags=$CFLAGS; CFLAGS="$CFLAGS -Werror"
- AC_TRY_COMPILE([
+ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
#ifdef __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__
#if __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ < 1050
#error __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ < 1050
@@ -598,7 +599,7 @@ if test "`uname -s`" = "Darwin" ; then
#endif
#define _DARWIN_C_SOURCE 1
#include <sys/cdefs.h>
- ],,tcl_cv_cc_darwin_c_source=yes, tcl_cv_cc_darwin_c_source=no)
+ ]], [[]])],[tcl_cv_cc_darwin_c_source=yes],[tcl_cv_cc_darwin_c_source=no])
CFLAGS=$hold_cflags])
if test $tcl_cv_cc_darwin_c_source = yes; then
AC_DEFINE(_DARWIN_C_SOURCE, 1,
@@ -618,15 +619,15 @@ fi
#--------------------------------------------------------------------
AC_CACHE_CHECK([for fts], tcl_cv_api_fts, [
- AC_TRY_LINK([
+ AC_LINK_IFELSE([AC_LANG_PROGRAM([[
#include <sys/param.h>
#include <sys/stat.h>
#include <fts.h>
- ], [
+ ]], [[
char*const p[2] = {"/", NULL};
FTS *f = fts_open(p, FTS_PHYSICAL|FTS_NOCHDIR|FTS_NOSTAT, NULL);
FTSENT *e = fts_read(f); fts_close(f);
- ], tcl_cv_api_fts=yes, tcl_cv_api_fts=no)])
+ ]])],[tcl_cv_api_fts=yes],[tcl_cv_api_fts=no])])
if test $tcl_cv_api_fts = yes; then
AC_DEFINE(HAVE_FTS, 1, [Do we have fts functions?])
fi
@@ -643,7 +644,7 @@ SC_BLOCKING_STYLE
AC_MSG_CHECKING([whether to use dll unloading])
AC_ARG_ENABLE(dll-unloading,
- AC_HELP_STRING([--enable-dll-unloading],
+ AS_HELP_STRING([--enable-dll-unloading],
[enable the 'unload' command (default: on)]),
[tcl_ok=$enableval], [tcl_ok=yes])
if test $tcl_ok = yes; then
@@ -659,7 +660,7 @@ AC_MSG_RESULT([$tcl_ok])
AC_MSG_CHECKING([for timezone data])
AC_ARG_WITH(tzdata,
- AC_HELP_STRING([--with-tzdata],
+ AS_HELP_STRING([--with-tzdata],
[install timezone data (default: autodetect)]),
[tcl_ok=$withval], [tcl_ok=auto])
#
@@ -707,7 +708,7 @@ fi
#--------------------------------------------------------------------
AC_ARG_ENABLE(dtrace,
- AC_HELP_STRING([--enable-dtrace],
+ AS_HELP_STRING([--enable-dtrace],
[build with DTrace support (default: off)]),
[tcl_ok=$enableval], [tcl_ok=no])
if test $tcl_ok = yes; then
@@ -744,7 +745,7 @@ AC_MSG_RESULT([$tcl_ok])
#--------------------------------------------------------------------
AC_CACHE_CHECK([whether the cpuid instruction is usable], tcl_cv_cpuid, [
- AC_TRY_LINK(, [
+ AC_LINK_IFELSE([AC_LANG_PROGRAM([[]], [[
int index,regsPtr[4];
__asm__ __volatile__("mov %%ebx, %%edi \n\t"
"cpuid \n\t"
@@ -752,7 +753,7 @@ AC_CACHE_CHECK([whether the cpuid instruction is usable], tcl_cv_cpuid, [
"mov %%edi, %%ebx \n\t"
: "=a"(regsPtr[0]), "=S"(regsPtr[1]), "=c"(regsPtr[2]), "=d"(regsPtr[3])
: "a"(index) : "edi");
- ], tcl_cv_cpuid=yes, tcl_cv_cpuid=no)])
+ ]])],[tcl_cv_cpuid=yes],[tcl_cv_cpuid=no])])
if test $tcl_cv_cpuid = yes; then
AC_DEFINE(HAVE_CPUID, 1, [Is the cpuid instruction usable?])
fi
diff --git a/unix/installManPage b/unix/installManPage
index 00c6cc5..a442892 100755
--- a/unix/installManPage
+++ b/unix/installManPage
@@ -117,7 +117,7 @@ for Target in $Names; do
chmod 644 "$Dir/$First"
$Gzip "$Dir/$First"
else
- ln "$SymOrLoc$First$Gz" "$Dir/$Target$Gz"
+ ln $SymOrLoc"$First$Gz" "$Dir/$Target$Gz"
fi
done
diff --git a/unix/tcl.m4 b/unix/tcl.m4
index 504826b..8139569 100644
--- a/unix/tcl.m4
+++ b/unix/tcl.m4
@@ -28,9 +28,9 @@ AC_DEFUN([SC_PATH_TCLCONFIG], [
# we reset no_tcl in case something fails here
no_tcl=true
AC_ARG_WITH(tcl,
- AC_HELP_STRING([--with-tcl],
+ AS_HELP_STRING([--with-tcl],
[directory containing tcl configuration (tclConfig.sh)]),
- with_tclconfig="${withval}")
+ [with_tclconfig="${withval}"])
AC_MSG_CHECKING([for Tcl configuration])
AC_CACHE_VAL(ac_cv_c_tclconfig,[
@@ -161,9 +161,9 @@ AC_DEFUN([SC_PATH_TKCONFIG], [
# we reset no_tk in case something fails here
no_tk=true
AC_ARG_WITH(tk,
- AC_HELP_STRING([--with-tk],
+ AS_HELP_STRING([--with-tk],
[directory containing tk configuration (tkConfig.sh)]),
- with_tkconfig="${withval}")
+ [with_tkconfig="${withval}"])
AC_MSG_CHECKING([for Tk configuration])
AC_CACHE_VAL(ac_cv_c_tkconfig,[
@@ -508,17 +508,9 @@ AC_DEFUN([SC_BUILD_TCLSH], [
AC_DEFUN([SC_ENABLE_SHARED], [
AC_MSG_CHECKING([how to build libraries])
AC_ARG_ENABLE(shared,
- AC_HELP_STRING([--enable-shared],
+ AS_HELP_STRING([--enable-shared],
[build and link with shared libraries (default: on)]),
[tcl_ok=$enableval], [tcl_ok=yes])
-
- if test "${enable_shared+set}" = set; then
- enableval="$enable_shared"
- tcl_ok=$enableval
- else
- tcl_ok=yes
- fi
-
if test "$tcl_ok" = "yes" ; then
AC_MSG_RESULT([shared])
SHARED_BUILD=1
@@ -550,7 +542,7 @@ AC_DEFUN([SC_ENABLE_FRAMEWORK], [
if test "`uname -s`" = "Darwin" ; then
AC_MSG_CHECKING([how to package libraries])
AC_ARG_ENABLE(framework,
- AC_HELP_STRING([--enable-framework],
+ AS_HELP_STRING([--enable-framework],
[package shared libraries in MacOSX frameworks (default: off)]),
[enable_framework=$enableval], [enable_framework=no])
if test $enable_framework = yes; then
@@ -597,11 +589,12 @@ AC_DEFUN([SC_ENABLE_FRAMEWORK], [
# TCL_THREADS
# _REENTRANT
# _THREAD_SAFE
+#
#------------------------------------------------------------------------
AC_DEFUN([SC_ENABLE_THREADS], [
AC_ARG_ENABLE(threads,
- AC_HELP_STRING([--enable-threads],
+ AS_HELP_STRING([--enable-threads],
[build with threads (default: on)]),
[tcl_ok=$enableval], [tcl_ok=yes])
@@ -715,7 +708,7 @@ AC_DEFUN([SC_ENABLE_THREADS], [
AC_DEFUN([SC_ENABLE_SYMBOLS], [
AC_MSG_CHECKING([for build with symbols])
AC_ARG_ENABLE(symbols,
- AC_HELP_STRING([--enable-symbols],
+ AS_HELP_STRING([--enable-symbols],
[build with debugging symbols (default: off)]),
[tcl_ok=$enableval], [tcl_ok=no])
# FIXME: Currently, LDFLAGS_DEFAULT is not used, it should work like CFLAGS_DEFAULT.
@@ -774,7 +767,7 @@ AC_DEFUN([SC_ENABLE_SYMBOLS], [
AC_DEFUN([SC_ENABLE_LANGINFO], [
AC_ARG_ENABLE(langinfo,
- AC_HELP_STRING([--enable-langinfo],
+ AS_HELP_STRING([--enable-langinfo],
[use nl_langinfo if possible to determine encoding at startup, otherwise use old heuristic (default: on)]),
[langinfo_ok=$enableval], [langinfo_ok=yes])
@@ -785,8 +778,8 @@ AC_DEFUN([SC_ENABLE_LANGINFO], [
AC_MSG_CHECKING([whether to use nl_langinfo])
if test "$langinfo_ok" = "yes"; then
AC_CACHE_VAL(tcl_cv_langinfo_h, [
- AC_TRY_COMPILE([#include <langinfo.h>], [nl_langinfo(CODESET);],
- [tcl_cv_langinfo_h=yes],[tcl_cv_langinfo_h=no])])
+ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <langinfo.h>]], [[nl_langinfo(CODESET);]])],
+ [tcl_cv_langinfo_h=yes], [tcl_cv_langinfo_h=no])])
AC_MSG_RESULT([$tcl_cv_langinfo_h])
if test $tcl_cv_langinfo_h = yes; then
AC_DEFINE(HAVE_LANGINFO, 1, [Do we have nl_langinfo()?])
@@ -826,22 +819,22 @@ AC_DEFUN([SC_ENABLE_LANGINFO], [
AC_DEFUN([SC_CONFIG_MANPAGES], [
AC_MSG_CHECKING([whether to use symlinks for manpages])
AC_ARG_ENABLE(man-symlinks,
- AC_HELP_STRING([--enable-man-symlinks],
+ AS_HELP_STRING([--enable-man-symlinks],
[use symlinks for the manpages (default: off)]),
- test "$enableval" != "no" && MAN_FLAGS="$MAN_FLAGS --symlinks",
- enableval="no")
+ [test "$enableval" != "no" && MAN_FLAGS="$MAN_FLAGS --symlinks"],
+ [enableval="no"])
AC_MSG_RESULT([$enableval])
AC_MSG_CHECKING([whether to compress the manpages])
AC_ARG_ENABLE(man-compression,
- AC_HELP_STRING([--enable-man-compression=PROG],
+ AS_HELP_STRING([--enable-man-compression=PROG],
[compress the manpages with PROG (default: off)]),
[case $enableval in
yes) AC_MSG_ERROR([missing argument to --enable-man-compression]);;
no) ;;
*) MAN_FLAGS="$MAN_FLAGS --compress $enableval";;
esac],
- enableval="no")
+ [enableval="no"])
AC_MSG_RESULT([$enableval])
if test "$enableval" != "no"; then
AC_MSG_CHECKING([for compressed file suffix])
@@ -855,14 +848,14 @@ AC_DEFUN([SC_CONFIG_MANPAGES], [
AC_MSG_CHECKING([whether to add a package name suffix for the manpages])
AC_ARG_ENABLE(man-suffix,
- AC_HELP_STRING([--enable-man-suffix=STRING],
+ AS_HELP_STRING([--enable-man-suffix=STRING],
[use STRING as a suffix to manpage file names (default: no, AC_PACKAGE_NAME if enabled without specifying STRING)]),
[case $enableval in
yes) enableval="AC_PACKAGE_NAME" MAN_FLAGS="$MAN_FLAGS --suffix $enableval";;
no) ;;
*) MAN_FLAGS="$MAN_FLAGS --suffix $enableval";;
esac],
- enableval="no")
+ [enableval="no"])
AC_MSG_RESULT([$enableval])
AC_SUBST(MAN_FLAGS)
@@ -1006,7 +999,7 @@ AC_DEFUN([SC_CONFIG_CFLAGS], [
AC_MSG_CHECKING([if 64bit support is requested])
AC_ARG_ENABLE(64bit,
- AC_HELP_STRING([--enable-64bit],
+ AS_HELP_STRING([--enable-64bit],
[enable 64bit support (default: off)]),
[do64bit=$enableval], [do64bit=no])
AC_MSG_RESULT([$do64bit])
@@ -1015,7 +1008,7 @@ AC_DEFUN([SC_CONFIG_CFLAGS], [
AC_MSG_CHECKING([if 64bit Sparc VIS support is requested])
AC_ARG_ENABLE(64bit-vis,
- AC_HELP_STRING([--enable-64bit-vis],
+ AS_HELP_STRING([--enable-64bit-vis],
[enable 64bit Sparc VIS support (default: off)]),
[do64bitVIS=$enableval], [do64bitVIS=no])
AC_MSG_RESULT([$do64bitVIS])
@@ -1028,10 +1021,11 @@ AC_DEFUN([SC_CONFIG_CFLAGS], [
AC_CACHE_CHECK([if compiler supports visibility "hidden"],
tcl_cv_cc_visibility_hidden, [
hold_cflags=$CFLAGS; CFLAGS="$CFLAGS -Werror"
- AC_TRY_LINK([
+ AC_LINK_IFELSE([AC_LANG_PROGRAM([[
extern __attribute__((__visibility__("hidden"))) void f(void);
- void f(void) {}], [f();], tcl_cv_cc_visibility_hidden=yes,
- tcl_cv_cc_visibility_hidden=no)
+ void f(void) {}]], [[f();]])],
+ [tcl_cv_cc_visibility_hidden=yes],
+ [tcl_cv_cc_visibility_hidden=no])
CFLAGS=$hold_cflags])
AS_IF([test $tcl_cv_cc_visibility_hidden = yes], [
AC_DEFINE(MODULE_SCOPE,
@@ -1044,7 +1038,7 @@ AC_DEFUN([SC_CONFIG_CFLAGS], [
AC_MSG_CHECKING([if rpath support is requested])
AC_ARG_ENABLE(rpath,
- AC_HELP_STRING([--disable-rpath],
+ AS_HELP_STRING([--disable-rpath],
[disable rpath support (default: on)]),
[doRpath=$enableval], [doRpath=yes])
AC_MSG_RESULT([$doRpath])
@@ -1189,7 +1183,7 @@ AC_DEFUN([SC_CONFIG_CFLAGS], [
CC_SEARCH_FLAGS=""
LD_SEARCH_FLAGS=""
;;
- CYGWIN_*|MINGW32*|MSYS_*)
+ CYGWIN_*|MINGW32_*|MSYS_*)
SHLIB_CFLAGS=""
SHLIB_LD='${CC} -shared'
SHLIB_SUFFIX=".dll"
@@ -1204,13 +1198,13 @@ AC_DEFUN([SC_CONFIG_CFLAGS], [
SHLIB_LD_LIBS="${SHLIB_LD_LIBS} -Wl,--out-implib,\$[@].a"
AC_CACHE_CHECK(for Cygwin version of gcc,
ac_cv_cygwin,
- AC_TRY_COMPILE([
+ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
#ifdef __CYGWIN__
#error cygwin
#endif
- ], [],
- ac_cv_cygwin=no,
- ac_cv_cygwin=yes)
+ ]], [[]])],
+ [ac_cv_cygwin=no],
+ [ac_cv_cygwin=yes])
)
if test "$ac_cv_cygwin" = "no"; then
AC_MSG_ERROR([${CC} is not a cygwin compiler.])
@@ -1399,7 +1393,7 @@ AC_DEFUN([SC_CONFIG_CFLAGS], [
AC_CACHE_CHECK([if compiler accepts -m64 flag], tcl_cv_cc_m64, [
hold_cflags=$CFLAGS
CFLAGS="$CFLAGS -m64"
- AC_TRY_LINK(,, tcl_cv_cc_m64=yes, tcl_cv_cc_m64=no)
+ AC_LINK_IFELSE([AC_LANG_PROGRAM([[]], [[]])],[tcl_cv_cc_m64=yes],[tcl_cv_cc_m64=no])
CFLAGS=$hold_cflags])
AS_IF([test $tcl_cv_cc_m64 = yes], [
CFLAGS="$CFLAGS -m64"
@@ -1541,8 +1535,9 @@ AC_DEFUN([SC_CONFIG_CFLAGS], [
tcl_cv_cc_arch_ppc64, [
hold_cflags=$CFLAGS
CFLAGS="$CFLAGS -arch ppc64 -mpowerpc64 -mcpu=G5"
- AC_TRY_LINK(,, tcl_cv_cc_arch_ppc64=yes,
- tcl_cv_cc_arch_ppc64=no)
+ AC_LINK_IFELSE([AC_LANG_PROGRAM([[]], [[]])],
+ [tcl_cv_cc_arch_ppc64=yes],
+ [tcl_cv_cc_arch_ppc64=no])
CFLAGS=$hold_cflags])
AS_IF([test $tcl_cv_cc_arch_ppc64 = yes], [
CFLAGS="$CFLAGS -arch ppc64 -mpowerpc64 -mcpu=G5"
@@ -1553,8 +1548,9 @@ AC_DEFUN([SC_CONFIG_CFLAGS], [
tcl_cv_cc_arch_x86_64, [
hold_cflags=$CFLAGS
CFLAGS="$CFLAGS -arch x86_64"
- AC_TRY_LINK(,, tcl_cv_cc_arch_x86_64=yes,
- tcl_cv_cc_arch_x86_64=no)
+ AC_LINK_IFELSE([AC_LANG_PROGRAM([[]], [[]])],
+ [tcl_cv_cc_arch_x86_64=yes],
+ [tcl_cv_cc_arch_x86_64=no])
CFLAGS=$hold_cflags])
AS_IF([test $tcl_cv_cc_arch_x86_64 = yes], [
CFLAGS="$CFLAGS -arch x86_64"
@@ -1573,7 +1569,8 @@ AC_DEFUN([SC_CONFIG_CFLAGS], [
AC_CACHE_CHECK([if ld accepts -single_module flag], tcl_cv_ld_single_module, [
hold_ldflags=$LDFLAGS
LDFLAGS="$LDFLAGS -dynamiclib -Wl,-single_module"
- AC_TRY_LINK(, [int i;], tcl_cv_ld_single_module=yes, tcl_cv_ld_single_module=no)
+ AC_LINK_IFELSE([AC_LANG_PROGRAM([[]], [[int i;]])],[tcl_cv_ld_single_module=yes],
+ [tcl_cv_ld_single_module=no])
LDFLAGS=$hold_ldflags])
AS_IF([test $tcl_cv_ld_single_module = yes], [
SHLIB_LD="${SHLIB_LD} -Wl,-single_module"
@@ -1586,8 +1583,8 @@ AC_DEFUN([SC_CONFIG_CFLAGS], [
tcl_cv_ld_search_paths_first, [
hold_ldflags=$LDFLAGS
LDFLAGS="$LDFLAGS -Wl,-search_paths_first"
- AC_TRY_LINK(, [int i;], tcl_cv_ld_search_paths_first=yes,
- tcl_cv_ld_search_paths_first=no)
+ AC_LINK_IFELSE([AC_LANG_PROGRAM([[]], [[int i;]])],[tcl_cv_ld_search_paths_first=yes],
+ [tcl_cv_ld_search_paths_first=no])
LDFLAGS=$hold_ldflags])
AS_IF([test $tcl_cv_ld_search_paths_first = yes], [
LDFLAGS="$LDFLAGS -Wl,-search_paths_first"
@@ -1605,7 +1602,7 @@ AC_DEFUN([SC_CONFIG_CFLAGS], [
PLAT_SRCS='${MAC_OSX_SRCS}'
AC_MSG_CHECKING([whether to use CoreFoundation])
AC_ARG_ENABLE(corefoundation,
- AC_HELP_STRING([--enable-corefoundation],
+ AS_HELP_STRING([--enable-corefoundation],
[use CoreFoundation API on MacOSX (default: on)]),
[tcl_corefoundation=$enableval], [tcl_corefoundation=yes])
AC_MSG_RESULT([$tcl_corefoundation])
@@ -1622,10 +1619,10 @@ AC_DEFUN([SC_CONFIG_CFLAGS], [
eval 'hold_'$v'="$'$v'";'$v'="`echo "$'$v' "|sed -e "s/-arch ppc64 / /g" -e "s/-arch x86_64 / /g"`"'
done])
LIBS="$LIBS -framework CoreFoundation"
- AC_TRY_LINK([#include <CoreFoundation/CoreFoundation.h>],
- [CFBundleRef b = CFBundleGetMainBundle();],
- tcl_cv_lib_corefoundation=yes,
- tcl_cv_lib_corefoundation=no)
+ AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <CoreFoundation/CoreFoundation.h>]],
+ [[CFBundleRef b = CFBundleGetMainBundle();]])],
+ [tcl_cv_lib_corefoundation=yes],
+ [tcl_cv_lib_corefoundation=no])
AS_IF([test "$fat_32_64" = yes], [
for v in CFLAGS CPPFLAGS LDFLAGS; do
eval $v'="$hold_'$v'"'
@@ -1642,10 +1639,10 @@ AC_DEFUN([SC_CONFIG_CFLAGS], [
for v in CFLAGS CPPFLAGS LDFLAGS; do
eval 'hold_'$v'="$'$v'";'$v'="`echo "$'$v' "|sed -e "s/-arch ppc / /g" -e "s/-arch i386 / /g"`"'
done
- AC_TRY_LINK([#include <CoreFoundation/CoreFoundation.h>],
- [CFBundleRef b = CFBundleGetMainBundle();],
- tcl_cv_lib_corefoundation_64=yes,
- tcl_cv_lib_corefoundation_64=no)
+ AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <CoreFoundation/CoreFoundation.h>]],
+ [[CFBundleRef b = CFBundleGetMainBundle();]])],
+ [tcl_cv_lib_corefoundation_64=yes],
+ [tcl_cv_lib_corefoundation_64=no])
for v in CFLAGS CPPFLAGS LDFLAGS; do
eval $v'="$hold_'$v'"'
done])
@@ -1932,7 +1929,7 @@ AC_DEFUN([SC_CONFIG_CFLAGS], [
AC_CACHE_CHECK([for ld accepts -Bexport flag], tcl_cv_ld_Bexport, [
hold_ldflags=$LDFLAGS
LDFLAGS="$LDFLAGS -Wl,-Bexport"
- AC_TRY_LINK(, [int i;], tcl_cv_ld_Bexport=yes, tcl_cv_ld_Bexport=no)
+ AC_LINK_IFELSE([AC_LANG_PROGRAM([[]], [[int i;]])],[tcl_cv_ld_Bexport=yes],[tcl_cv_ld_Bexport=no])
LDFLAGS=$hold_ldflags])
AS_IF([test $tcl_cv_ld_Bexport = yes], [
LDFLAGS="$LDFLAGS -Wl,-Bexport"
@@ -1959,7 +1956,7 @@ dnl # preprocessing tests use only CPPFLAGS.
# Step 4: disable dynamic loading if requested via a command-line switch.
AC_ARG_ENABLE(load,
- AC_HELP_STRING([--enable-load],
+ AS_HELP_STRING([--enable-load],
[allow dynamic loading and "load" command (default: on)]),
[tcl_ok=$enableval], [tcl_ok=yes])
AS_IF([test "$tcl_ok" = no], [DL_OBJS=""])
@@ -2046,18 +2043,30 @@ dnl # preprocessing tests use only CPPFLAGS.
AC_CACHE_CHECK(for cast to union support,
tcl_cv_cast_to_union,
- AC_TRY_COMPILE([],
- [
+ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[]], [[
union foo { int i; double d; };
union foo f = (union foo) (int) 0;
- ],
- tcl_cv_cast_to_union=yes,
- tcl_cv_cast_to_union=no)
+ ]])],
+ [tcl_cv_cast_to_union=yes],
+ [tcl_cv_cast_to_union=no])
)
if test "$tcl_cv_cast_to_union" = "yes"; then
AC_DEFINE(HAVE_CAST_TO_UNION, 1,
[Defined when compiler supports casting to union type.])
fi
+ hold_cflags=$CFLAGS; CFLAGS="$CFLAGS -fno-lto"
+ AC_CACHE_CHECK(for working -fno-lto,
+ ac_cv_nolto,
+ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([])],
+ [ac_cv_nolto=yes],
+ [ac_cv_nolto=no])
+ )
+ CFLAGS=$hold_cflags
+ if test "$ac_cv_nolto" = "yes" ; then
+ CFLAGS_NOLTO="-fno-lto"
+ else
+ CFLAGS_NOLTO=""
+ fi
# FIXME: This subst was left in only because the TCL_DL_LIBS
# entry in tclConfig.sh uses it. It is not clear why someone
@@ -2072,6 +2081,7 @@ dnl # preprocessing tests use only CPPFLAGS.
AC_SUBST(CFLAGS_DEBUG)
AC_SUBST(CFLAGS_OPTIMIZE)
AC_SUBST(CFLAGS_WARNING)
+ AC_SUBST(CFLAGS_NOLTO)
AC_SUBST(LDFLAGS)
AC_SUBST(LDFLAGS_DEBUG)
@@ -2127,8 +2137,8 @@ dnl # preprocessing tests use only CPPFLAGS.
AC_DEFUN([SC_MISSING_POSIX_HEADERS], [
AC_CACHE_CHECK([dirent.h], tcl_cv_dirent_h, [
- AC_TRY_LINK([#include <sys/types.h>
-#include <dirent.h>], [
+ AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <sys/types.h>
+#include <dirent.h>]], [[
#ifndef _POSIX_SOURCE
# ifdef __Lynx__
/*
@@ -2146,7 +2156,7 @@ d = opendir("foobar");
entryPtr = readdir(d);
p = entryPtr->d_name;
closedir(d);
-], tcl_cv_dirent_h=yes, tcl_cv_dirent_h=no)])
+]])],[tcl_cv_dirent_h=yes],[tcl_cv_dirent_h=no])])
if test $tcl_cv_dirent_h = no; then
AC_DEFINE(NO_DIRENT_H, 1, [Do we have <dirent.h>?])
@@ -2176,7 +2186,7 @@ closedir(d);
AC_CHECK_HEADER(dlfcn.h, , [AC_DEFINE(NO_DLFCN_H, 1, [Do we have <dlfcn.h>?])])
# OS/390 lacks sys/param.h (and doesn't need it, by chance).
- AC_HAVE_HEADERS(sys/param.h)
+ AC_CHECK_HEADERS([sys/param.h])
])
#--------------------------------------------------------------------
@@ -2205,7 +2215,7 @@ AC_DEFUN([SC_PATH_X], [
not_really_there=""
if test "$no_x" = ""; then
if test "$x_includes" = ""; then
- AC_TRY_CPP([#include <X11/Xlib.h>], , not_really_there="yes")
+ AC_PREPROC_IFELSE([AC_LANG_SOURCE([[#include <X11/Xlib.h>]])],[],[not_really_there="yes"])
else
if test ! -r $x_includes/X11/Xlib.h; then
not_really_there="yes"
@@ -2215,7 +2225,7 @@ AC_DEFUN([SC_PATH_X], [
if test "$no_x" = "yes" -o "$not_really_there" = "yes"; then
AC_MSG_CHECKING([for X11 header files])
found_xincludes="no"
- AC_TRY_CPP([#include <X11/Xlib.h>], found_xincludes="yes", found_xincludes="no")
+ AC_PREPROC_IFELSE([AC_LANG_SOURCE([[#include <X11/Xlib.h>]])],[found_xincludes="yes"],[found_xincludes="no"])
if test "$found_xincludes" = "no"; then
dirs="/usr/unsupported/include /usr/local/include /usr/X386/include /usr/X11R6/include /usr/X11R5/include /usr/include/X11R5 /usr/include/X11R4 /usr/openwin/include /usr/X11/include /usr/sww/include"
for i in $dirs ; do
@@ -2332,15 +2342,17 @@ AC_DEFUN([SC_TIME_HANDLER], [
AC_CHECK_FUNCS(gmtime_r localtime_r mktime)
AC_CACHE_CHECK([tm_tzadj in struct tm], tcl_cv_member_tm_tzadj, [
- AC_TRY_COMPILE([#include <time.h>], [struct tm tm; tm.tm_tzadj;],
- tcl_cv_member_tm_tzadj=yes, tcl_cv_member_tm_tzadj=no)])
+ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <time.h>]], [[struct tm tm; (void)tm.tm_tzadj;]])],
+ [tcl_cv_member_tm_tzadj=yes],
+ [tcl_cv_member_tm_tzadj=no])])
if test $tcl_cv_member_tm_tzadj = yes ; then
AC_DEFINE(HAVE_TM_TZADJ, 1, [Should we use the tm_tzadj field of struct tm?])
fi
AC_CACHE_CHECK([tm_gmtoff in struct tm], tcl_cv_member_tm_gmtoff, [
- AC_TRY_COMPILE([#include <time.h>], [struct tm tm; (void)tm.tm_gmtoff;],
- tcl_cv_member_tm_gmtoff=yes, tcl_cv_member_tm_gmtoff=no)])
+ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <time.h>]], [[struct tm tm; (void)tm.tm_gmtoff;]])],
+ [tcl_cv_member_tm_gmtoff=yes],
+ [tcl_cv_member_tm_gmtoff=no])])
if test $tcl_cv_member_tm_gmtoff = yes ; then
AC_DEFINE(HAVE_TM_GMTOFF, 1, [Should we use the tm_gmtoff field of struct tm?])
fi
@@ -2350,11 +2362,11 @@ AC_DEFUN([SC_TIME_HANDLER], [
# (like convex) have timezone functions, etc.
#
AC_CACHE_CHECK([long timezone variable], tcl_cv_timezone_long, [
- AC_TRY_COMPILE([#include <time.h>],
- [extern long timezone;
+ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <time.h>]],
+ [[extern long timezone;
timezone += 1;
- exit (0);],
- tcl_cv_timezone_long=yes, tcl_cv_timezone_long=no)])
+ exit (0);]])],
+ [tcl_cv_timezone_long=yes], [tcl_cv_timezone_long=no])])
if test $tcl_cv_timezone_long = yes ; then
AC_DEFINE(HAVE_TIMEZONE_VAR, 1, [Should we use the global timezone variable?])
else
@@ -2362,11 +2374,11 @@ AC_DEFUN([SC_TIME_HANDLER], [
# On some systems (eg IRIX 6.2), timezone is a time_t and not a long.
#
AC_CACHE_CHECK([time_t timezone variable], tcl_cv_timezone_time, [
- AC_TRY_COMPILE([#include <time.h>],
- [extern time_t timezone;
+ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <time.h>]],
+ [[extern time_t timezone;
timezone += 1;
- exit (0);],
- tcl_cv_timezone_time=yes, tcl_cv_timezone_time=no)])
+ exit (0);]])],
+ [tcl_cv_timezone_time=yes], [tcl_cv_timezone_time=no])])
if test $tcl_cv_timezone_time = yes ; then
AC_DEFINE(HAVE_TIMEZONE_VAR, 1, [Should we use the global timezone variable?])
fi
@@ -2377,8 +2389,8 @@ AC_DEFUN([SC_TIME_HANDLER], [
# SC_TCL_LINK_LIBS
#
# Search for the libraries needed to link the Tcl shell.
-# Things like the math library (-lm) and socket stuff (-lsocket vs.
-# -lnsl) are dealt with here.
+# Things like the math library (-lm), socket stuff (-lsocket vs.
+# -lnsl), zlib (-lz) and libtommath (-ltommath) are dealt with here.
#
# Arguments:
# None.
@@ -2464,11 +2476,11 @@ AC_DEFUN([SC_TCL_LINK_LIBS], [
AC_DEFUN([SC_TCL_EARLY_FLAG],[
AC_CACHE_VAL([tcl_cv_flag_]translit($1,[A-Z],[a-z]),
- AC_TRY_COMPILE([$2], $3, [tcl_cv_flag_]translit($1,[A-Z],[a-z])=no,
- AC_TRY_COMPILE([[#define ]$1[ 1
-]$2], $3,
- [tcl_cv_flag_]translit($1,[A-Z],[a-z])=yes,
- [tcl_cv_flag_]translit($1,[A-Z],[a-z])=no)))
+ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[$2]], [[$3]])],
+ [tcl_cv_flag_]translit($1,[A-Z],[a-z])=no,[AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[[#define ]$1[ 1
+]$2]], [[$3]])],
+ [tcl_cv_flag_]translit($1,[A-Z],[a-z])=yes,
+ [tcl_cv_flag_]translit($1,[A-Z],[a-z])=no)]))
if test ["x${tcl_cv_flag_]translit($1,[A-Z],[a-z])[}" = "xyes"] ; then
AC_DEFINE($1, 1, [Add the ]$1[ flag when building])
tcl_flags="$tcl_flags $1"
@@ -2515,14 +2527,14 @@ AC_DEFUN([SC_TCL_64BIT_FLAGS], [
AC_CACHE_VAL(tcl_cv_type_64bit,[
tcl_cv_type_64bit=none
# See if the compiler knows natively about __int64
- AC_TRY_COMPILE(,[__int64 value = (__int64) 0;],
- tcl_type_64bit=__int64, tcl_type_64bit="long long")
+ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[]], [[__int64 value = (__int64) 0;]])],
+ [tcl_type_64bit=__int64], [tcl_type_64bit="long long"])
# See if we should use long anyway Note that we substitute in the
# type that is our current guess for a 64-bit type inside this check
# program, so it should be modified only carefully...
- AC_TRY_COMPILE(,[switch (0) {
- case 1: case (sizeof(]${tcl_type_64bit}[)==sizeof(long)): ;
- }],tcl_cv_type_64bit=${tcl_type_64bit})])
+ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[]], [[switch (0) {
+ case 1: case (sizeof(${tcl_type_64bit})==sizeof(long)): ;
+ }]])],[tcl_cv_type_64bit=${tcl_type_64bit}],[])])
if test "${tcl_cv_type_64bit}" = none ; then
AC_DEFINE(TCL_WIDE_INT_IS_LONG, 1, [Are wide integers to be implemented with C 'long's?])
AC_MSG_RESULT([using long])
@@ -2533,26 +2545,26 @@ AC_DEFUN([SC_TCL_64BIT_FLAGS], [
# Now check for auxiliary declarations
AC_CACHE_CHECK([for struct dirent64], tcl_cv_struct_dirent64,[
- AC_TRY_COMPILE([#include <sys/types.h>
-#include <dirent.h>],[struct dirent64 p;],
- tcl_cv_struct_dirent64=yes,tcl_cv_struct_dirent64=no)])
+ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <sys/types.h>
+#include <dirent.h>]], [[struct dirent64 p;]])],
+ [tcl_cv_struct_dirent64=yes],[tcl_cv_struct_dirent64=no])])
if test "x${tcl_cv_struct_dirent64}" = "xyes" ; then
AC_DEFINE(HAVE_STRUCT_DIRENT64, 1, [Is 'struct dirent64' in <sys/types.h>?])
fi
AC_CACHE_CHECK([for DIR64], tcl_cv_DIR64,[
- AC_TRY_COMPILE([#include <sys/types.h>
-#include <dirent.h>],[struct dirent64 *p; DIR64 d = opendir64(".");
- p = readdir64(d); rewinddir64(d); closedir64(d);],
- tcl_cv_DIR64=yes,tcl_cv_DIR64=no)])
+ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <sys/types.h>
+#include <dirent.h>]], [[struct dirent64 *p; DIR64 d = opendir64(".");
+ p = readdir64(d); rewinddir64(d); closedir64(d);]])],
+ [tcl_cv_DIR64=yes], [tcl_cv_DIR64=no])])
if test "x${tcl_cv_DIR64}" = "xyes" ; then
AC_DEFINE(HAVE_DIR64, 1, [Is 'DIR64' in <sys/types.h>?])
fi
AC_CACHE_CHECK([for struct stat64], tcl_cv_struct_stat64,[
- AC_TRY_COMPILE([#include <sys/stat.h>],[struct stat64 p;
-],
- tcl_cv_struct_stat64=yes,tcl_cv_struct_stat64=no)])
+ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <sys/stat.h>]], [[struct stat64 p;
+]])],
+ [tcl_cv_struct_stat64=yes], [tcl_cv_struct_stat64=no])])
if test "x${tcl_cv_struct_stat64}" = "xyes" ; then
AC_DEFINE(HAVE_STRUCT_STAT64, 1, [Is 'struct stat64' in <sys/stat.h>?])
fi
@@ -2560,9 +2572,9 @@ AC_DEFUN([SC_TCL_64BIT_FLAGS], [
AC_CHECK_FUNCS(open64 lseek64)
AC_MSG_CHECKING([for off64_t])
AC_CACHE_VAL(tcl_cv_type_off64_t,[
- AC_TRY_COMPILE([#include <sys/types.h>],[off64_t offset;
-],
- tcl_cv_type_off64_t=yes,tcl_cv_type_off64_t=no)])
+ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <sys/types.h>]], [[off64_t offset;
+]])],
+ [tcl_cv_type_off64_t=yes], [tcl_cv_type_off64_t=no])])
dnl Define HAVE_TYPE_OFF64_T only when the off64_t type and the
dnl functions lseek64 and open64 are defined.
if test "x${tcl_cv_type_off64_t}" = "xyes" && \
@@ -2595,9 +2607,9 @@ AC_DEFUN([SC_TCL_64BIT_FLAGS], [
AC_DEFUN([SC_TCL_CFG_ENCODING], [
AC_ARG_WITH(encoding,
- AC_HELP_STRING([--with-encoding],
+ AS_HELP_STRING([--with-encoding],
[encoding for configuration values (default: iso8859-1)]),
- with_tcencoding=${withval})
+ [with_tcencoding=${withval}])
if test x"${with_tcencoding}" != x ; then
AC_DEFINE_UNQUOTED(TCL_CFGVAL_ENCODING,"${with_tcencoding}",
@@ -2628,11 +2640,11 @@ AC_DEFUN([SC_TCL_CHECK_BROKEN_FUNC],[
AC_CHECK_FUNC($1, tcl_ok=1, tcl_ok=0)
if test ["$tcl_ok"] = 1; then
AC_CACHE_CHECK([proper ]$1[ implementation], [tcl_cv_]$1[_unbroken],
- AC_TRY_RUN([[
+ AC_RUN_IFELSE([AC_LANG_SOURCE([[[
#include <stdlib.h>
#include <string.h>
-int main() {]$2[}]],[tcl_cv_]$1[_unbroken]=ok,
- [tcl_cv_]$1[_unbroken]=broken,[tcl_cv_]$1[_unbroken]=unknown))
+int main() {]$2[}]]])],[tcl_cv_$1_unbroken=ok],
+ [tcl_cv_$1_unbroken=broken],[tcl_cv_$1_unbroken=unknown]))
if test ["$tcl_cv_]$1[_unbroken"] = "ok"; then
tcl_ok=1
else
@@ -2677,9 +2689,9 @@ AC_DEFUN([SC_TCL_GETHOSTBYADDR_R_DECL], [AC_CHECK_DECLS(gethostbyaddr_r, [
AC_DEFUN([SC_TCL_GETHOSTBYADDR_R_TYPE], [AC_CHECK_FUNC(gethostbyaddr_r, [
AC_CACHE_CHECK([for gethostbyaddr_r with 7 args], tcl_cv_api_gethostbyaddr_r_7, [
- AC_TRY_COMPILE([
+ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
#include <netdb.h>
- ], [
+ ]], [[
char *addr;
int length;
int type;
@@ -2690,16 +2702,16 @@ AC_DEFUN([SC_TCL_GETHOSTBYADDR_R_TYPE], [AC_CHECK_FUNC(gethostbyaddr_r, [
(void) gethostbyaddr_r(addr, length, type, result, buffer, buflen,
&h_errnop);
- ], tcl_cv_api_gethostbyaddr_r_7=yes, tcl_cv_api_gethostbyaddr_r_7=no)])
+ ]])],[tcl_cv_api_gethostbyaddr_r_7=yes],[tcl_cv_api_gethostbyaddr_r_7=no])])
tcl_ok=$tcl_cv_api_gethostbyaddr_r_7
if test "$tcl_ok" = yes; then
AC_DEFINE(HAVE_GETHOSTBYADDR_R_7, 1,
[Define to 1 if gethostbyaddr_r takes 7 args.])
else
AC_CACHE_CHECK([for gethostbyaddr_r with 8 args], tcl_cv_api_gethostbyaddr_r_8, [
- AC_TRY_COMPILE([
+ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
#include <netdb.h>
- ], [
+ ]], [[
char *addr;
int length;
int type;
@@ -2710,7 +2722,7 @@ AC_DEFUN([SC_TCL_GETHOSTBYADDR_R_TYPE], [AC_CHECK_FUNC(gethostbyaddr_r, [
(void) gethostbyaddr_r(addr, length, type, result, buffer, buflen,
&resultp, &h_errnop);
- ], tcl_cv_api_gethostbyaddr_r_8=yes, tcl_cv_api_gethostbyaddr_r_8=no)])
+ ]])],[tcl_cv_api_gethostbyaddr_r_8=yes],[tcl_cv_api_gethostbyaddr_r_8=no])])
tcl_ok=$tcl_cv_api_gethostbyaddr_r_8
if test "$tcl_ok" = yes; then
AC_DEFINE(HAVE_GETHOSTBYADDR_R_8, 1,
@@ -2758,9 +2770,9 @@ AC_DEFUN([SC_TCL_GETHOSTBYNAME_R_DECL], [AC_CHECK_DECLS(gethostbyname_r, [
AC_DEFUN([SC_TCL_GETHOSTBYNAME_R_TYPE], [AC_CHECK_FUNC(gethostbyname_r, [
AC_CACHE_CHECK([for gethostbyname_r with 6 args], tcl_cv_api_gethostbyname_r_6, [
- AC_TRY_COMPILE([
+ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
#include <netdb.h>
- ], [
+ ]], [[
char *name;
struct hostent *he, *res;
char buffer[2048];
@@ -2768,16 +2780,16 @@ AC_DEFUN([SC_TCL_GETHOSTBYNAME_R_TYPE], [AC_CHECK_FUNC(gethostbyname_r, [
int h_errnop;
(void) gethostbyname_r(name, he, buffer, buflen, &res, &h_errnop);
- ], tcl_cv_api_gethostbyname_r_6=yes, tcl_cv_api_gethostbyname_r_6=no)])
+ ]])],[tcl_cv_api_gethostbyname_r_6=yes],[tcl_cv_api_gethostbyname_r_6=no])])
tcl_ok=$tcl_cv_api_gethostbyname_r_6
if test "$tcl_ok" = yes; then
AC_DEFINE(HAVE_GETHOSTBYNAME_R_6, 1,
[Define to 1 if gethostbyname_r takes 6 args.])
else
AC_CACHE_CHECK([for gethostbyname_r with 5 args], tcl_cv_api_gethostbyname_r_5, [
- AC_TRY_COMPILE([
+ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
#include <netdb.h>
- ], [
+ ]], [[
char *name;
struct hostent *he;
char buffer[2048];
@@ -2785,22 +2797,22 @@ AC_DEFUN([SC_TCL_GETHOSTBYNAME_R_TYPE], [AC_CHECK_FUNC(gethostbyname_r, [
int h_errnop;
(void) gethostbyname_r(name, he, buffer, buflen, &h_errnop);
- ], tcl_cv_api_gethostbyname_r_5=yes, tcl_cv_api_gethostbyname_r_5=no)])
+ ]])],[tcl_cv_api_gethostbyname_r_5=yes],[tcl_cv_api_gethostbyname_r_5=no])])
tcl_ok=$tcl_cv_api_gethostbyname_r_5
if test "$tcl_ok" = yes; then
AC_DEFINE(HAVE_GETHOSTBYNAME_R_5, 1,
[Define to 1 if gethostbyname_r takes 5 args.])
else
AC_CACHE_CHECK([for gethostbyname_r with 3 args], tcl_cv_api_gethostbyname_r_3, [
- AC_TRY_COMPILE([
+ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
#include <netdb.h>
- ], [
+ ]], [[
char *name;
struct hostent *he;
struct hostent_data data;
(void) gethostbyname_r(name, he, &data);
- ], tcl_cv_api_gethostbyname_r_3=yes, tcl_cv_api_gethostbyname_r_3=no)])
+ ]])],[tcl_cv_api_gethostbyname_r_3=yes],[tcl_cv_api_gethostbyname_r_3=no])])
tcl_ok=$tcl_cv_api_gethostbyname_r_3
if test "$tcl_ok" = yes; then
AC_DEFINE(HAVE_GETHOSTBYNAME_R_3, 1,
@@ -2834,34 +2846,34 @@ AC_DEFUN([SC_TCL_GETHOSTBYNAME_R_TYPE], [AC_CHECK_FUNC(gethostbyname_r, [
AC_DEFUN([SC_TCL_GETPWUID_R], [AC_CHECK_FUNC(getpwuid_r, [
AC_CACHE_CHECK([for getpwuid_r with 5 args], tcl_cv_api_getpwuid_r_5, [
- AC_TRY_COMPILE([
+ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
#include <sys/types.h>
#include <pwd.h>
- ], [
+ ]], [[
uid_t uid;
struct passwd pw, *pwp;
char buf[512];
int buflen = 512;
(void) getpwuid_r(uid, &pw, buf, buflen, &pwp);
- ], tcl_cv_api_getpwuid_r_5=yes, tcl_cv_api_getpwuid_r_5=no)])
+ ]])],[tcl_cv_api_getpwuid_r_5=yes],[tcl_cv_api_getpwuid_r_5=no])])
tcl_ok=$tcl_cv_api_getpwuid_r_5
if test "$tcl_ok" = yes; then
AC_DEFINE(HAVE_GETPWUID_R_5, 1,
[Define to 1 if getpwuid_r takes 5 args.])
else
AC_CACHE_CHECK([for getpwuid_r with 4 args], tcl_cv_api_getpwuid_r_4, [
- AC_TRY_COMPILE([
+ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
#include <sys/types.h>
#include <pwd.h>
- ], [
+ ]], [[
uid_t uid;
struct passwd pw;
char buf[512];
int buflen = 512;
(void)getpwnam_r(uid, &pw, buf, buflen);
- ], tcl_cv_api_getpwuid_r_4=yes, tcl_cv_api_getpwuid_r_4=no)])
+ ]])],[tcl_cv_api_getpwuid_r_4=yes],[tcl_cv_api_getpwuid_r_4=no])])
tcl_ok=$tcl_cv_api_getpwuid_r_4
if test "$tcl_ok" = yes; then
AC_DEFINE(HAVE_GETPWUID_R_4, 1,
@@ -2894,34 +2906,34 @@ AC_DEFUN([SC_TCL_GETPWUID_R], [AC_CHECK_FUNC(getpwuid_r, [
AC_DEFUN([SC_TCL_GETPWNAM_R], [AC_CHECK_FUNC(getpwnam_r, [
AC_CACHE_CHECK([for getpwnam_r with 5 args], tcl_cv_api_getpwnam_r_5, [
- AC_TRY_COMPILE([
+ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
#include <sys/types.h>
#include <pwd.h>
- ], [
+ ]], [[
char *name;
struct passwd pw, *pwp;
char buf[512];
int buflen = 512;
(void) getpwnam_r(name, &pw, buf, buflen, &pwp);
- ], tcl_cv_api_getpwnam_r_5=yes, tcl_cv_api_getpwnam_r_5=no)])
+ ]])],[tcl_cv_api_getpwnam_r_5=yes],[tcl_cv_api_getpwnam_r_5=no])])
tcl_ok=$tcl_cv_api_getpwnam_r_5
if test "$tcl_ok" = yes; then
AC_DEFINE(HAVE_GETPWNAM_R_5, 1,
[Define to 1 if getpwnam_r takes 5 args.])
else
AC_CACHE_CHECK([for getpwnam_r with 4 args], tcl_cv_api_getpwnam_r_4, [
- AC_TRY_COMPILE([
+ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
#include <sys/types.h>
#include <pwd.h>
- ], [
+ ]], [[
char *name;
struct passwd pw;
char buf[512];
int buflen = 512;
(void)getpwnam_r(name, &pw, buf, buflen);
- ], tcl_cv_api_getpwnam_r_4=yes, tcl_cv_api_getpwnam_r_4=no)])
+ ]])],[tcl_cv_api_getpwnam_r_4=yes],[tcl_cv_api_getpwnam_r_4=no])])
tcl_ok=$tcl_cv_api_getpwnam_r_4
if test "$tcl_ok" = yes; then
AC_DEFINE(HAVE_GETPWNAM_R_4, 1,
@@ -2954,34 +2966,34 @@ AC_DEFUN([SC_TCL_GETPWNAM_R], [AC_CHECK_FUNC(getpwnam_r, [
AC_DEFUN([SC_TCL_GETGRGID_R], [AC_CHECK_FUNC(getgrgid_r, [
AC_CACHE_CHECK([for getgrgid_r with 5 args], tcl_cv_api_getgrgid_r_5, [
- AC_TRY_COMPILE([
+ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
#include <sys/types.h>
#include <grp.h>
- ], [
+ ]], [[
gid_t gid;
struct group gr, *grp;
char buf[512];
int buflen = 512;
(void) getgrgid_r(gid, &gr, buf, buflen, &grp);
- ], tcl_cv_api_getgrgid_r_5=yes, tcl_cv_api_getgrgid_r_5=no)])
+ ]])],[tcl_cv_api_getgrgid_r_5=yes],[tcl_cv_api_getgrgid_r_5=no])])
tcl_ok=$tcl_cv_api_getgrgid_r_5
if test "$tcl_ok" = yes; then
AC_DEFINE(HAVE_GETGRGID_R_5, 1,
[Define to 1 if getgrgid_r takes 5 args.])
else
AC_CACHE_CHECK([for getgrgid_r with 4 args], tcl_cv_api_getgrgid_r_4, [
- AC_TRY_COMPILE([
+ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
#include <sys/types.h>
#include <grp.h>
- ], [
+ ]], [[
gid_t gid;
struct group gr;
char buf[512];
int buflen = 512;
(void)getgrgid_r(gid, &gr, buf, buflen);
- ], tcl_cv_api_getgrgid_r_4=yes, tcl_cv_api_getgrgid_r_4=no)])
+ ]])],[tcl_cv_api_getgrgid_r_4=yes],[tcl_cv_api_getgrgid_r_4=no])])
tcl_ok=$tcl_cv_api_getgrgid_r_4
if test "$tcl_ok" = yes; then
AC_DEFINE(HAVE_GETGRGID_R_4, 1,
@@ -3014,34 +3026,34 @@ AC_DEFUN([SC_TCL_GETGRGID_R], [AC_CHECK_FUNC(getgrgid_r, [
AC_DEFUN([SC_TCL_GETGRNAM_R], [AC_CHECK_FUNC(getgrnam_r, [
AC_CACHE_CHECK([for getgrnam_r with 5 args], tcl_cv_api_getgrnam_r_5, [
- AC_TRY_COMPILE([
+ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
#include <sys/types.h>
#include <grp.h>
- ], [
+ ]], [[
char *name;
struct group gr, *grp;
char buf[512];
int buflen = 512;
(void) getgrnam_r(name, &gr, buf, buflen, &grp);
- ], tcl_cv_api_getgrnam_r_5=yes, tcl_cv_api_getgrnam_r_5=no)])
+ ]])],[tcl_cv_api_getgrnam_r_5=yes],[tcl_cv_api_getgrnam_r_5=no])])
tcl_ok=$tcl_cv_api_getgrnam_r_5
if test "$tcl_ok" = yes; then
AC_DEFINE(HAVE_GETGRNAM_R_5, 1,
[Define to 1 if getgrnam_r takes 5 args.])
else
AC_CACHE_CHECK([for getgrnam_r with 4 args], tcl_cv_api_getgrnam_r_4, [
- AC_TRY_COMPILE([
+ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
#include <sys/types.h>
#include <grp.h>
- ], [
+ ]], [[
char *name;
struct group gr;
char buf[512];
int buflen = 512;
(void)getgrnam_r(name, &gr, buf, buflen);
- ], tcl_cv_api_getgrnam_r_4=yes, tcl_cv_api_getgrnam_r_4=no)])
+ ]])],[tcl_cv_api_getgrnam_r_4=yes],[tcl_cv_api_getgrnam_r_4=no])])
tcl_ok=$tcl_cv_api_getgrnam_r_4
if test "$tcl_ok" = yes; then
AC_DEFINE(HAVE_GETGRNAM_R_4, 1,
diff --git a/unix/tcl.spec b/unix/tcl.spec
index e050a30..1758836 100644
--- a/unix/tcl.spec
+++ b/unix/tcl.spec
@@ -4,7 +4,7 @@
Name: tcl
Summary: Tcl scripting language development environment
-Version: 8.6.10
+Version: 8.6.11
Release: 2
License: BSD
Group: Development/Languages
diff --git a/unix/tclConfig.h.in b/unix/tclConfig.h.in
index 2aa3bb8..c8d4e0c 100644
--- a/unix/tclConfig.h.in
+++ b/unix/tclConfig.h.in
@@ -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
@@ -222,10 +219,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. */
@@ -366,9 +363,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
@@ -447,17 +441,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
@@ -512,7 +498,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 */
@@ -528,6 +514,7 @@
/* Undef unused package specific autoheader defines so that we can
* include both tclConfig.h and tkConfig.h at the same time: */
/* override */ #undef PACKAGE_NAME
- /* override */ #undef PACKAGE_STRING
/* override */ #undef PACKAGE_TARNAME
+ /* override */ #undef PACKAGE_VERSION
+ /* override */ #undef PACKAGE_STRING
#endif /* _TCLCONFIG */
diff --git a/unix/tclUnixInit.c b/unix/tclUnixInit.c
index 72039ac..7467938 100644
--- a/unix/tclUnixInit.c
+++ b/unix/tclUnixInit.c
@@ -48,10 +48,10 @@ DLLIMPORT extern __stdcall void GetSystemInfo(void *);
}
#endif
-#define NUMPROCESSORS 11
+#define NUMPROCESSORS 15
static const char *const processors[NUMPROCESSORS] = {
- "intel", "mips", "alpha", "ppc", "shx", "arm", "ia64", "alpha64", "msil",
- "amd64", "ia32_on_win64"
+ "i686", "mips", "alpha", "ppc", "shx", "arm", "ia64", "alpha64", "msil",
+ "x86_64", "ia32_on_win64", "neutral", "arm64", "arm32_on_win64", "ia32_on_arm64"
};
typedef struct {
@@ -895,8 +895,7 @@ TclpSetVariables(
GetSystemInfo(&sysInfo);
- Tcl_SetVar2(interp, "tcl_platform", "os",
- "Windows NT", TCL_GLOBAL_ONLY);
+ Tcl_SetVar2(interp, "tcl_platform", "os", "Windows NT", TCL_GLOBAL_ONLY);
sprintf(buffer, "%d.%d", osInfo.dwMajorVersion, osInfo.dwMinorVersion);
Tcl_SetVar2(interp, "tcl_platform", "osVersion", buffer, TCL_GLOBAL_ONLY);
if (sysInfo.wProcessorArchitecture < NUMPROCESSORS) {
diff --git a/win/Makefile.in b/win/Makefile.in
index 34a5dcb..73c8c6d 100644
--- a/win/Makefile.in
+++ b/win/Makefile.in
@@ -180,7 +180,7 @@ TCL_EXE = @TCL_EXE@
# Setting the VPATH variable to a list of paths will cause the Makefile to
# look into these paths when resolving .c to .obj dependencies.
-VPATH = $(GENERIC_DIR):$(TOMMATH_DIR):$(WIN_DIR):$(COMPAT_DIR):$(ZLIB_DIR)
+VPATH = $(GENERIC_DIR):$(WIN_DIR):$(COMPAT_DIR):$(ZLIB_DIR):$(TOMMATH_DIR)
AR = @AR@
RANLIB = @RANLIB@
@@ -424,7 +424,7 @@ ZLIB_OBJS = \
uncompr.$(OBJEXT) \
zutil.$(OBJEXT)
-TCL_OBJS = ${GENERIC_OBJS} $(TOMMATH_OBJS) ${WIN_OBJS} @ZLIB_OBJS@
+TCL_OBJS = ${GENERIC_OBJS} ${WIN_OBJS} @ZLIB_OBJS@ $(TOMMATH_OBJS)
TCL_DOCS = "$(ROOT_DIR_NATIVE)"/doc/*.[13n]
@@ -471,7 +471,7 @@ doc:
$(TCLSH): $(TCLSH_OBJS) @LIBRARIES@ $(TCL_STUB_LIB_FILE) tclsh.$(RES)
$(CC) $(CFLAGS) $(TCLSH_OBJS) $(TCL_LIB_FILE) $(TCL_STUB_LIB_FILE) $(LIBS) \
- tclsh.$(RES) $(CC_EXENAME) $(LDFLAGS_CONSOLE)
+ tclsh.$(RES) $(CC_EXENAME) $(LDFLAGS_CONSOLE)
$(COPY) tclsh.exe.manifest $(TCLSH).manifest
@VC_MANIFEST_EMBED_EXE@
@@ -585,13 +585,13 @@ tclPkgConfig.${OBJEXT}: tclPkgConfig.c
# as DLL objects but none of the symbols should be exported
tclStubLib.${OBJEXT}: tclStubLib.c
- $(CC) -c $(CC_SWITCHES) -DSTATIC_BUILD @DEPARG@ $(CC_OBJNAME)
+ $(CC) -c $(CC_SWITCHES) -DSTATIC_BUILD @CFLAGS_NOLTO@ @DEPARG@ $(CC_OBJNAME)
tclTomMathStubLib.${OBJEXT}: tclTomMathStubLib.c
- $(CC) -c $(CC_SWITCHES) -DSTATIC_BUILD @DEPARG@ $(CC_OBJNAME)
+ $(CC) -c $(CC_SWITCHES) @CFLAGS_NOLTO@ @DEPARG@ $(CC_OBJNAME)
tclOOStubLib.${OBJEXT}: tclOOStubLib.c
- $(CC) -c $(CC_SWITCHES) -DSTATIC_BUILD @DEPARG@ $(CC_OBJNAME)
+ $(CC) -c $(CC_SWITCHES) @CFLAGS_NOLTO@ @DEPARG@ $(CC_OBJNAME)
# Implicit rule for all object files that will end up in the Tcl library
@@ -624,7 +624,7 @@ gentommath_h:
install: all install-binaries install-libraries install-doc install-packages
install-binaries: binaries
- @for i in "$(LIB_INSTALL_DIR)" "$(BIN_INSTALL_DIR)" ; \
+ @for i in "$(LIB_INSTALL_DIR)" "$(BIN_INSTALL_DIR)"; \
do \
if [ ! -d "$$i" ] ; then \
echo "Making directory $$i"; \
@@ -732,8 +732,8 @@ install-libraries: libraries install-tzdata install-msgs
@$(COPY) $(ROOT_DIR)/library/msgcat/msgcat.tcl "$(MODULE_INSTALL_DIR)/8.5/msgcat-1.6.1.tm";
@echo "Installing package tcltest 2.5.3 as a Tcl Module";
@$(COPY) $(ROOT_DIR)/library/tcltest/tcltest.tcl "$(MODULE_INSTALL_DIR)/8.5/tcltest-2.5.3.tm";
- @echo "Installing package platform 1.0.14 as a Tcl Module";
- @$(COPY) $(ROOT_DIR)/library/platform/platform.tcl "$(MODULE_INSTALL_DIR)/8.4/platform-1.0.14.tm";
+ @echo "Installing package platform 1.0.17 as a Tcl Module";
+ @$(COPY) $(ROOT_DIR)/library/platform/platform.tcl "$(MODULE_INSTALL_DIR)/8.4/platform-1.0.17.tm";
@echo "Installing package platform::shell 1.1.4 as a Tcl Module";
@$(COPY) $(ROOT_DIR)/library/platform/shell.tcl "$(MODULE_INSTALL_DIR)/8.4/platform/shell-1.1.4.tm";
@echo "Installing encodings";
@@ -811,11 +811,12 @@ cleanhelp:
clean: cleanhelp clean-packages
$(RM) *.lib *.a *.exp *.dll *.$(RES) *.${OBJEXT} *~ \#* TAGS a.out
$(RM) $(TCLSH) $(CAT32) $(TEST_EXE_FILE) $(TEST_DLL_FILE) tcltest.cmd tcltest.sh
- $(RM) *.pch *.ilk *.pdb
+ $(RM) *.pch *.ilk *.pdb *.zip
+ $(RMDIR) *.vfs
distclean: distclean-packages clean
$(RM) Makefile config.status config.cache config.log tclConfig.sh \
- tcl.hpj config.status.lineno
+ tcl.hpj config.status.lineno tclsh.exe.manifest
#
# Bundled package targets
diff --git a/win/configure b/win/configure
index dae49d6..d6a934e 100755
--- a/win/configure
+++ b/win/configure
@@ -1,6 +1,6 @@
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.59.
+# Generated by GNU Autoconf 2.59 for tcl 8.6.
#
# Copyright (C) 2003 Free Software Foundation, Inc.
# This configure script is free software; the Free Software Foundation
@@ -265,11 +265,11 @@ SHELL=${CONFIG_SHELL-/bin/sh}
: ${ac_max_here_lines=38}
# Identity of this package.
-PACKAGE_NAME=
-PACKAGE_TARNAME=
-PACKAGE_VERSION=
-PACKAGE_STRING=
-PACKAGE_BUGREPORT=
+PACKAGE_NAME='tcl'
+PACKAGE_TARNAME='tcl'
+PACKAGE_VERSION='8.6'
+PACKAGE_STRING='tcl 8.6'
+PACKAGE_BUGREPORT=''
ac_unique_file="../generic/tcl.h"
# Factoring default headers for most tests.
@@ -309,7 +309,7 @@ ac_includes_default="\
# include <unistd.h>
#endif"
-ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT CPP EGREP AR ac_ct_AR RANLIB ac_ct_RANLIB RC ac_ct_RC SET_MAKE TCL_THREADS CYGPATH CELIB_DIR DL_LIBS CFLAGS_DEBUG CFLAGS_OPTIMIZE CFLAGS_WARNING ZLIB_DLL_FILE ZLIB_LIBS ZLIB_OBJS CFLAGS_DEFAULT LDFLAGS_DEFAULT VC_MANIFEST_EMBED_DLL VC_MANIFEST_EMBED_EXE TCL_WIN_VERSION MACHINE TCL_VERSION TCL_MAJOR_VERSION TCL_MINOR_VERSION TCL_PATCH_LEVEL PKG_CFG_ARGS TCL_EXE TCL_LIB_FILE TCL_LIB_FLAG TCL_STATIC_LIB_FILE TCL_STATIC_LIB_FLAG TCL_IMPORT_LIB_FILE TCL_IMPORT_LIB_FLAG TCL_LIB_SPEC TCL_STUB_LIB_FILE TCL_STUB_LIB_FLAG TCL_STUB_LIB_SPEC TCL_STUB_LIB_PATH TCL_INCLUDE_SPEC TCL_BUILD_STUB_LIB_SPEC TCL_BUILD_STUB_LIB_PATH TCL_DLL_FILE TCL_SRC_DIR TCL_BIN_DIR TCL_DBGX CFG_TCL_SHARED_LIB_SUFFIX CFG_TCL_UNSHARED_LIB_SUFFIX CFG_TCL_EXPORT_FILE_SUFFIX EXTRA_CFLAGS DEPARG CC_OBJNAME CC_EXENAME LDFLAGS_DEBUG LDFLAGS_OPTIMIZE LDFLAGS_CONSOLE LDFLAGS_WINDOW STLIB_LD SHLIB_LD SHLIB_LD_LIBS SHLIB_CFLAGS SHLIB_SUFFIX TCL_SHARED_BUILD LIBS_GUI DLLSUFFIX LIBPREFIX LIBSUFFIX EXESUFFIX LIBRARIES MAKE_LIB MAKE_STUB_LIB POST_MAKE_LIB MAKE_DLL MAKE_EXE TCL_BUILD_LIB_SPEC TCL_CC_SEARCH_FLAGS TCL_LD_SEARCH_FLAGS TCL_NEEDS_EXP_FILE TCL_BUILD_EXP_FILE TCL_EXP_FILE TCL_LIB_VERSIONS_OK TCL_PACKAGE_PATH TCL_DDE_VERSION TCL_DDE_MAJOR_VERSION TCL_DDE_MINOR_VERSION TCL_REG_VERSION TCL_REG_MAJOR_VERSION TCL_REG_MINOR_VERSION RC_OUT RC_TYPE RC_INCLUDE RC_DEFINE RC_DEFINES RES LIBOBJS LTLIBOBJS'
+ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT CPP EGREP AR ac_ct_AR RANLIB ac_ct_RANLIB RC ac_ct_RC SET_MAKE TCL_THREADS CYGPATH CELIB_DIR DL_LIBS CFLAGS_DEBUG CFLAGS_OPTIMIZE CFLAGS_WARNING CFLAGS_NOLTO ZLIB_DLL_FILE ZLIB_LIBS ZLIB_OBJS CFLAGS_DEFAULT LDFLAGS_DEFAULT VC_MANIFEST_EMBED_DLL VC_MANIFEST_EMBED_EXE TCL_WIN_VERSION MACHINE TCL_VERSION TCL_MAJOR_VERSION TCL_MINOR_VERSION TCL_PATCH_LEVEL PKG_CFG_ARGS TCL_EXE TCL_LIB_FILE TCL_LIB_FLAG TCL_STATIC_LIB_FILE TCL_STATIC_LIB_FLAG TCL_IMPORT_LIB_FILE TCL_IMPORT_LIB_FLAG TCL_LIB_SPEC TCL_STUB_LIB_FILE TCL_STUB_LIB_FLAG TCL_STUB_LIB_SPEC TCL_STUB_LIB_PATH TCL_INCLUDE_SPEC TCL_BUILD_STUB_LIB_SPEC TCL_BUILD_STUB_LIB_PATH TCL_DLL_FILE TCL_SRC_DIR TCL_BIN_DIR TCL_DBGX CFG_TCL_SHARED_LIB_SUFFIX CFG_TCL_UNSHARED_LIB_SUFFIX CFG_TCL_EXPORT_FILE_SUFFIX EXTRA_CFLAGS DEPARG CC_OBJNAME CC_EXENAME LDFLAGS_DEBUG LDFLAGS_OPTIMIZE LDFLAGS_CONSOLE LDFLAGS_WINDOW STLIB_LD SHLIB_LD SHLIB_LD_LIBS SHLIB_CFLAGS SHLIB_SUFFIX TCL_SHARED_BUILD LIBS_GUI DLLSUFFIX LIBPREFIX LIBSUFFIX EXESUFFIX LIBRARIES MAKE_LIB MAKE_STUB_LIB POST_MAKE_LIB MAKE_DLL MAKE_EXE TCL_BUILD_LIB_SPEC TCL_CC_SEARCH_FLAGS TCL_LD_SEARCH_FLAGS TCL_NEEDS_EXP_FILE TCL_BUILD_EXP_FILE TCL_EXP_FILE TCL_LIB_VERSIONS_OK TCL_PACKAGE_PATH TCL_DDE_VERSION TCL_DDE_MAJOR_VERSION TCL_DDE_MINOR_VERSION TCL_REG_VERSION TCL_REG_MAJOR_VERSION TCL_REG_MINOR_VERSION RC_OUT RC_TYPE RC_INCLUDE RC_DEFINE RC_DEFINES RES LIBOBJS LTLIBOBJS'
ac_subst_files=''
# Initialize some variables set by options.
@@ -778,7 +778,7 @@ if test "$ac_init_help" = "long"; then
# Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF
-\`configure' configures this package to adapt to many kinds of systems.
+\`configure' configures tcl 8.6 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
@@ -834,7 +834,9 @@ _ACEOF
fi
if test -n "$ac_init_help"; then
-
+ case $ac_init_help in
+ short | recursive ) echo "Configuration of tcl 8.6:";;
+ esac
cat <<\_ACEOF
Optional Features:
@@ -962,6 +964,8 @@ fi
test -n "$ac_init_help" && exit 0
if $ac_init_version; then
cat <<\_ACEOF
+tcl configure 8.6
+generated by GNU Autoconf 2.59
Copyright (C) 2003 Free Software Foundation, Inc.
This configure script is free software; the Free Software Foundation
@@ -974,7 +978,7 @@ cat >&5 <<_ACEOF
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
-It was created by $as_me, which was
+It was created by tcl $as_me 8.6, which was
generated by GNU Autoconf 2.59. Invocation command line was
$ $0 $@
@@ -1304,6 +1308,15 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+
+
+
+
+
+
+
+
# The following define is needed when building with Cygwin since newer
# versions of autoconf incorrectly set SHELL to /bin/bash instead of
# /bin/sh. The bash shell seems to suffer from some strange failures.
@@ -1312,7 +1325,7 @@ SHELL=/bin/sh
TCL_VERSION=8.6
TCL_MAJOR_VERSION=8
TCL_MINOR_VERSION=6
-TCL_PATCH_LEVEL=".10"
+TCL_PATCH_LEVEL=".11"
VER=$TCL_MAJOR_VERSION$TCL_MINOR_VERSION
TCL_DDE_VERSION=1.4
@@ -2716,6 +2729,7 @@ cat confdefs.h >>conftest.$ac_ext
cat >>conftest.$ac_ext <<_ACEOF
/* end confdefs.h. */
#include <ctype.h>
+#include <stdlib.h>
#if ((' ' & 0x0FF) == 0x020)
# define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c))
@@ -3133,14 +3147,6 @@ if test "${enable_shared+set}" = set; then
else
tcl_ok=yes
fi;
-
- if test "${enable_shared+set}" = set; then
- enableval="$enable_shared"
- tcl_ok=$enableval
- else
- tcl_ok=yes
- fi
-
if test "$tcl_ok" = "yes" ; then
echo "$as_me:$LINENO: result: shared" >&5
echo "${ECHO_T}shared" >&6
@@ -3530,6 +3536,66 @@ echo "${ECHO_T}$ac_cv_municode" >&6
else
extra_cflags="$extra_cflags -DTCL_BROKEN_MAINARGS"
fi
+ echo "$as_me:$LINENO: checking for working -fno-lto" >&5
+echo $ECHO_N "checking for working -fno-lto... $ECHO_C" >&6
+if test "${ac_cv_nolto+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. */
+
+int
+main ()
+{
+
+ ;
+ 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
+ ac_cv_nolto=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_nolto=no
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+
+fi
+echo "$as_me:$LINENO: result: $ac_cv_nolto" >&5
+echo "${ECHO_T}$ac_cv_nolto" >&6
+ CFLAGS=$hold_cflags
+ if test "$ac_cv_nolto" = "yes" ; then
+ CFLAGS_NOLTO="-fno-lto"
+ else
+ CFLAGS_NOLTO=""
+ fi
fi
echo "$as_me:$LINENO: checking compiler flags" >&5
@@ -4218,6 +4284,7 @@ _ACEOF
+
# Cross-compiling
case ${host_alias} in
*mingw32*)
@@ -5075,7 +5142,7 @@ eval "TCL_STUB_LIB_SPEC=\"-L${libdir} ${TCL_STUB_LIB_FLAG}\""
eval "TCL_BUILD_STUB_LIB_PATH=\"`$CYGPATH $(pwd)`/${TCL_STUB_LIB_FILE}\""
eval "TCL_STUB_LIB_PATH=\"${libdir}/${TCL_STUB_LIB_FILE}\""
-if test ${SHARED_BUILD} = 0 ; then
+if test ${SHARED_BUILD} = 0 -o "$GCC" != "yes" ; then
eval "TCL_LIB_FILE=\"${LIBPREFIX}tcl${VER}${LIBSUFFIX}\""
else
eval "TCL_LIB_FILE=\"${LIBPREFIX}tcl${VER}${DLLSUFFIX}.a\""
@@ -5240,6 +5307,7 @@ TCL_WIN_VERSION="$TCL_VERSION.$TCL_RELEASE_LEVEL.`echo $TCL_PATCH_LEVEL | tr -d
ac_config_files="$ac_config_files Makefile tclConfig.sh tcl.hpj tclsh.exe.manifest"
+
cat >confcache <<\_ACEOF
# This file is a shell script that caches the results of configure
# tests run on this system so they can be shared between configure
@@ -5633,7 +5701,7 @@ _ASBOX
} >&5
cat >&5 <<_CSEOF
-This file was extended by $as_me, which was
+This file was extended by tcl $as_me 8.6, which was
generated by GNU Autoconf 2.59. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
@@ -5688,7 +5756,7 @@ _ACEOF
cat >>$CONFIG_STATUS <<_ACEOF
ac_cs_version="\\
-config.status
+tcl config.status 8.6
configured by $0, generated by GNU Autoconf 2.59,
with options \\"`echo "$ac_configure_args" | sed 's/[\\""\`\$]/\\\\&/g'`\\"
@@ -5900,6 +5968,7 @@ s,@DL_LIBS@,$DL_LIBS,;t t
s,@CFLAGS_DEBUG@,$CFLAGS_DEBUG,;t t
s,@CFLAGS_OPTIMIZE@,$CFLAGS_OPTIMIZE,;t t
s,@CFLAGS_WARNING@,$CFLAGS_WARNING,;t t
+s,@CFLAGS_NOLTO@,$CFLAGS_NOLTO,;t t
s,@ZLIB_DLL_FILE@,$ZLIB_DLL_FILE,;t t
s,@ZLIB_LIBS@,$ZLIB_LIBS,;t t
s,@ZLIB_OBJS@,$ZLIB_OBJS,;t t
diff --git a/win/configure.in b/win/configure.in
index 9e0dd19..2453eab 100644
--- a/win/configure.in
+++ b/win/configure.in
@@ -3,8 +3,9 @@
# generate the file "configure", which is run during Tcl installation
# to configure the system for the local environment.
-AC_INIT(../generic/tcl.h)
-AC_PREREQ(2.59)
+AC_INIT([tcl],[8.6])
+AC_CONFIG_SRCDIR([../generic/tcl.h])
+AC_PREREQ([2.59])
# The following define is needed when building with Cygwin since newer
# versions of autoconf incorrectly set SHELL to /bin/bash instead of
@@ -14,7 +15,7 @@ SHELL=/bin/sh
TCL_VERSION=8.6
TCL_MAJOR_VERSION=8
TCL_MINOR_VERSION=6
-TCL_PATCH_LEVEL=".10"
+TCL_PATCH_LEVEL=".11"
VER=$TCL_MAJOR_VERSION$TCL_MINOR_VERSION
TCL_DDE_VERSION=1.4
@@ -103,7 +104,7 @@ SC_ENABLE_SHARED
AC_MSG_CHECKING([force of 64-bit time_t])
AC_ARG_ENABLE(time64bit,
- AC_HELP_STRING([--enable-time64bit],
+ AS_HELP_STRING([--enable-time64bit],
[force 64-bit time_t for 32-bit build (default: off)]),
[tcl_ok=$enableval], [tcl_ok=no])
AC_MSG_RESULT("$tcl_ok")
@@ -198,17 +199,16 @@ AC_CHECK_TYPE([uintptr_t], [
AC_CACHE_CHECK(for FINDEX_INFO_LEVELS in winbase.h,
tcl_cv_findex_enums,
-AC_TRY_COMPILE([
+AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
#define WIN32_LEAN_AND_MEAN
#include <windows.h>
#undef WIN32_LEAN_AND_MEAN
-],
-[
+]], [[
FINDEX_INFO_LEVELS i;
FINDEX_SEARCH_OPS j;
-],
- tcl_cv_findex_enums=yes,
- tcl_cv_findex_enums=no)
+]])],
+ [tcl_cv_findex_enums=yes],
+ [tcl_cv_findex_enums=no])
)
if test "$tcl_cv_findex_enums" = "no"; then
AC_DEFINE(HAVE_NO_FINDEX_ENUMS, 1,
@@ -219,17 +219,16 @@ fi
AC_CACHE_CHECK(for intrinsics support in compiler,
tcl_cv_intrinsics,
-AC_TRY_LINK([
+AC_LINK_IFELSE([AC_LANG_PROGRAM([[
#define WIN32_LEAN_AND_MEAN
#include <windows.h>
#undef WIN32_LEAN_AND_MEAN
#include <intrin.h>
-],
-[
+]], [[
__cpuidex(0,0,0);
-],
- tcl_cv_intrinsics=yes,
- tcl_cv_intrinsics=no)
+]])],
+ [tcl_cv_intrinsics=yes],
+ [tcl_cv_intrinsics=no])
)
if test "$tcl_cv_intrinsics" = "yes"; then
AC_DEFINE(HAVE_INTRIN_H, 1,
@@ -240,11 +239,11 @@ fi
AC_CACHE_CHECK(for wspiapi.h,
tcl_cv_wspiapi_h,
-AC_TRY_COMPILE([
+AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
#include <wspiapi.h>
-], [],
- tcl_cv_wspiapi_h=yes,
- tcl_cv_wspiapi_h=no)
+]], [[]])],
+ [tcl_cv_wspiapi_h=yes],
+ [tcl_cv_wspiapi_h=no])
)
if test "$tcl_cv_wspiapi_h" = "yes"; then
AC_DEFINE(HAVE_WSPIAPI_H, 1,
@@ -257,17 +256,16 @@ fi
AC_CACHE_CHECK(for FINDEX_INFO_LEVELS in winbase.h,
tcl_cv_findex_enums,
-AC_TRY_COMPILE([
+AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
#define WIN32_LEAN_AND_MEAN
#include <windows.h>
#undef WIN32_LEAN_AND_MEAN
-],
-[
+]], [[
FINDEX_INFO_LEVELS i;
FINDEX_SEARCH_OPS j;
-],
- tcl_cv_findex_enums=yes,
- tcl_cv_findex_enums=no)
+]])],
+ [tcl_cv_findex_enums=yes],
+ [tcl_cv_findex_enums=no])
)
if test "$tcl_cv_findex_enums" = "no"; then
AC_DEFINE(HAVE_NO_FINDEX_ENUMS, 1,
@@ -311,7 +309,7 @@ eval "TCL_STUB_LIB_SPEC=\"-L${libdir} ${TCL_STUB_LIB_FLAG}\""
eval "TCL_BUILD_STUB_LIB_PATH=\"`$CYGPATH $(pwd)`/${TCL_STUB_LIB_FILE}\""
eval "TCL_STUB_LIB_PATH=\"${libdir}/${TCL_STUB_LIB_FILE}\""
-if test ${SHARED_BUILD} = 0 ; then
+if test ${SHARED_BUILD} = 0 -o "$GCC" != "yes" ; then
eval "TCL_LIB_FILE=\"${LIBPREFIX}tcl${VER}${LIBSUFFIX}\""
else
eval "TCL_LIB_FILE=\"${LIBPREFIX}tcl${VER}${DLLSUFFIX}.a\""
@@ -475,8 +473,9 @@ AC_SUBST(RC_DEFINE)
AC_SUBST(RC_DEFINES)
AC_SUBST(RES)
-AC_OUTPUT(Makefile tclConfig.sh tcl.hpj tclsh.exe.manifest)
+AC_CONFIG_FILES(Makefile tclConfig.sh tcl.hpj tclsh.exe.manifest)
+AC_OUTPUT
dnl Local Variables:
-dnl mode: autoconf;
+dnl mode: autoconf
dnl End:
diff --git a/win/makefile.vc b/win/makefile.vc
index a998943..8ee0ec9 100644
--- a/win/makefile.vc
+++ b/win/makefile.vc
@@ -16,7 +16,7 @@
# General usage:
# nmake [-nologo] -f makefile.vc [TARGET|MACRODEF [TARGET|MACRODEF] [...]]
#
-# For MACRODEF, see TIP 477 (https://core.tcl-lang.org/tips/doc/trunk/tip/477.md)
+# For MACRODEF, see TIP 477 (https://core.tcl-lang.org/tips/doc/main/tip/477.md)
# or examine Sections 6-8 in rules.vc.
#
# Possible values of TARGET are:
diff --git a/win/rules-ext.vc b/win/rules-ext.vc
index 531e070..6da5689 100644
--- a/win/rules-ext.vc
+++ b/win/rules-ext.vc
@@ -31,7 +31,7 @@ macro to the name of the project makefile.
# We extract version numbers using the nmakehlp program. For now use
# the local copy of nmakehlp. Once we locate Tcl, we will use that
# one if it is newer.
-!if [$(CC) -nologo "nmakehlp.c" -link -subsystem:console > nul]
+!if [$(CC) -nologo -DNDEBUG "nmakehlp.c" -link -subsystem:console > nul]
!endif
# First locate the Tcl directory that we are working with.
diff --git a/win/rules.vc b/win/rules.vc
index f3e5439..2ec5292 100644
--- a/win/rules.vc
+++ b/win/rules.vc
@@ -6,7 +6,7 @@
# compiler switches, defining common targets and macros. The Tcl makefile
# directly includes this. Extensions include it via "rules-ext.vc".
#
-# See TIP 477 (https://core.tcl-lang.org/tips/doc/trunk/tip/477.md) for
+# See TIP 477 (https://core.tcl-lang.org/tips/doc/main/tip/477.md) for
# detailed documentation.
#
# See the file "license.terms" for information on usage and redistribution
@@ -24,7 +24,7 @@ _RULES_VC = 1
# For modifications that are not backward-compatible, you *must* change
# the major version.
RULES_VERSION_MAJOR = 1
-RULES_VERSION_MINOR = 6
+RULES_VERSION_MINOR = 9
# The PROJECT macro must be defined by parent makefile.
!if "$(PROJECT)" == ""
@@ -652,8 +652,130 @@ LINKERFLAGS = $(LINKERFLAGS) -ltcg
!endif
!endif
+
+################################################################
+# 6. Extract various version numbers from headers
+# For Tcl and Tk, version numbers are extracted from tcl.h and tk.h
+# respectively. For extensions, versions are extracted from the
+# configure.in or configure.ac from the TEA configuration if it
+# exists, and unset otherwise.
+# Sets the following macros:
+# TCL_MAJOR_VERSION
+# TCL_MINOR_VERSION
+# TCL_RELEASE_SERIAL
+# TCL_PATCH_LEVEL
+# TCL_PATCH_LETTER
+# TCL_VERSION
+# TK_MAJOR_VERSION
+# TK_MINOR_VERSION
+# TK_RELEASE_SERIAL
+# TK_PATCH_LEVEL
+# TK_PATCH_LETTER
+# TK_VERSION
+# DOTVERSION - set as (for example) 2.5
+# VERSION - set as (for example 25)
+#--------------------------------------------------------------
+
+!if [echo REM = This file is generated from rules.vc > versions.vc]
+!endif
+!if [echo TCL_MAJOR_VERSION = \>> versions.vc] \
+ && [nmakehlp -V "$(_TCL_H)" TCL_MAJOR_VERSION >> versions.vc]
+!endif
+!if [echo TCL_MINOR_VERSION = \>> versions.vc] \
+ && [nmakehlp -V "$(_TCL_H)" TCL_MINOR_VERSION >> versions.vc]
+!endif
+!if [echo TCL_RELEASE_SERIAL = \>> versions.vc] \
+ && [nmakehlp -V "$(_TCL_H)" TCL_RELEASE_SERIAL >> versions.vc]
+!endif
+!if [echo TCL_PATCH_LEVEL = \>> versions.vc] \
+ && [nmakehlp -V "$(_TCL_H)" TCL_PATCH_LEVEL >> versions.vc]
+!endif
+
+!if defined(_TK_H)
+!if [echo TK_MAJOR_VERSION = \>> versions.vc] \
+ && [nmakehlp -V $(_TK_H) TK_MAJOR_VERSION >> versions.vc]
+!endif
+!if [echo TK_MINOR_VERSION = \>> versions.vc] \
+ && [nmakehlp -V $(_TK_H) TK_MINOR_VERSION >> versions.vc]
+!endif
+!if [echo TK_RELEASE_SERIAL = \>> versions.vc] \
+ && [nmakehlp -V "$(_TK_H)" TK_RELEASE_SERIAL >> versions.vc]
+!endif
+!if [echo TK_PATCH_LEVEL = \>> versions.vc] \
+ && [nmakehlp -V $(_TK_H) TK_PATCH_LEVEL >> versions.vc]
+!endif
+!endif # _TK_H
+
+!include versions.vc
+
+TCL_VERSION = $(TCL_MAJOR_VERSION)$(TCL_MINOR_VERSION)
+TCL_DOTVERSION = $(TCL_MAJOR_VERSION).$(TCL_MINOR_VERSION)
+!if [nmakehlp -f $(TCL_PATCH_LEVEL) "a"]
+TCL_PATCH_LETTER = a
+!elseif [nmakehlp -f $(TCL_PATCH_LEVEL) "b"]
+TCL_PATCH_LETTER = b
+!else
+TCL_PATCH_LETTER = .
+!endif
+
+!if defined(_TK_H)
+
+TK_VERSION = $(TK_MAJOR_VERSION)$(TK_MINOR_VERSION)
+TK_DOTVERSION = $(TK_MAJOR_VERSION).$(TK_MINOR_VERSION)
+!if [nmakehlp -f $(TK_PATCH_LEVEL) "a"]
+TK_PATCH_LETTER = a
+!elseif [nmakehlp -f $(TK_PATCH_LEVEL) "b"]
+TK_PATCH_LETTER = b
+!else
+TK_PATCH_LETTER = .
+!endif
+
+!endif
+
+# Set DOTVERSION and VERSION
+!if $(DOING_TCL)
+
+DOTVERSION = $(TCL_MAJOR_VERSION).$(TCL_MINOR_VERSION)
+VERSION = $(TCL_VERSION)
+
+!elseif $(DOING_TK)
+
+DOTVERSION = $(TK_DOTVERSION)
+VERSION = $(TK_VERSION)
+
+!else # Doing a non-Tk extension
+
+# If parent makefile has not defined DOTVERSION, try to get it from TEA
+# first from a configure.in file, and then from configure.ac
+!ifndef DOTVERSION
+!if [echo DOTVERSION = \> versions.vc] \
+ || [nmakehlp -V $(ROOT)\configure.in ^[$(PROJECT)^] >> versions.vc]
+!if [echo DOTVERSION = \> versions.vc] \
+ || [nmakehlp -V $(ROOT)\configure.ac ^[$(PROJECT)^] >> versions.vc]
+!error *** Could not figure out extension version. Please define DOTVERSION in parent makefile before including rules.vc.
+!endif
+!endif
+!include versions.vc
+!endif # DOTVERSION
+VERSION = $(DOTVERSION:.=)
+
+!endif # $(DOING_TCL) ... etc.
+
+# Windows RC files have 3 version components. Ensure this irrespective
+# of how many components the package has specified. Basically, ensure
+# minimum 4 components by appending 4 0's and then pick out the first 4.
+# Also take care of the fact that DOTVERSION may have "a" or "b" instead
+# of "." separating the version components.
+DOTSEPARATED=$(DOTVERSION:a=.)
+DOTSEPARATED=$(DOTSEPARATED:b=.)
+!if [echo RCCOMMAVERSION = \> versions.vc] \
+ || [for /f "tokens=1,2,3,4,5* delims=." %a in ("$(DOTSEPARATED).0.0.0.0") do echo %a,%b,%c,%d >> versions.vc]
+!error *** Could not generate RCCOMMAVERSION ***
+!endif
+!include versions.vc
+
########################################################################
-# 6. Parse the OPTS macro to work out the requested build configuration.
+# 7. Parse the OPTS macro to work out the requested build configuration.
# Based on this, we will construct the actual switches to be passed to the
# compiler and linker using the macros defined in the previous section.
# The following macros are defined by this section based on OPTS
@@ -667,9 +789,10 @@ LINKERFLAGS = $(LINKERFLAGS) -ltcg
# MSVCRT - 1 -> link to dynamic C runtime even when building static Tcl build
# 0 -> link to static C runtime for static Tcl build.
# Does not impact shared Tcl builds (STATIC_BUILD == 0)
+# Default: 1 for Tcl 8.7 and up, 0 otherwise.
# TCL_USE_STATIC_PACKAGES - 1 -> statically link the registry and dde extensions
-# in the Tcl shell. 0 -> keep them as shared libraries
-# Does not impact shared Tcl builds.
+# in the Tcl and Wish shell. 0 -> keep them as shared libraries. Does
+# not impact shared Tcl builds. Implied by STATIC_BUILD since Tcl 8.7.
# USE_THREAD_ALLOC - 1 -> Use a shared global free pool for allocation.
# 0 -> Use the non-thread allocator.
# UNCHECKED - 1 -> when doing a debug build with symbols, use the release
@@ -724,7 +847,7 @@ MSVCRT = 0
!if [nmakehlp -f $(OPTS) "msvcrt"]
!message *** Doing msvcrt
!else
-!if $(STATIC_BUILD)
+!if $(TCL_MAJOR_VERSION) == 8 && $(TCL_MINOR_VERSION) < 7 && $(STATIC_BUILD)
MSVCRT = 0
!endif
!endif
@@ -741,7 +864,7 @@ TCL_THREADS = 0
USE_THREAD_ALLOC= 0
!endif
-!if "$(TCL_MAJOR_VERSION)" == "8"
+!if $(TCL_MAJOR_VERSION) == 8
!if [nmakehlp -f $(OPTS) "time64bit"]
!message *** Force 64-bit time_t
_USE_64BIT_TIME_T = 1
@@ -836,7 +959,7 @@ This compiler does not support profile guided optimization.
!endif
################################################################
-# 7. Parse the STATS macro to configure code instrumentation
+# 8. Parse the STATS macro to configure code instrumentation
# The following macros are set by this section:
# TCL_MEM_DEBUG - 1 -> enables memory allocation instrumentation
# 0 -> disables
@@ -866,7 +989,7 @@ TCL_COMPILE_DEBUG = 0
!endif
####################################################################
-# 8. Parse the CHECKS macro to configure additional compiler checks
+# 9. Parse the CHECKS macro to configure additional compiler checks
# The following macros are set by this section:
# WARNINGS - compiler switches that control the warnings level
# TCL_NO_DEPRECATED - 1 -> disable support for deprecated functions
@@ -898,99 +1021,6 @@ WARNINGS = $(WARNINGS) -Wp64
!endif
-################################################################
-# 9. Extract various version numbers
-# For Tcl and Tk, version numbers are extracted from tcl.h and tk.h
-# respectively. For extensions, versions are extracted from the
-# configure.in or configure.ac from the TEA configuration if it
-# exists, and unset otherwise.
-# Sets the following macros:
-# TCL_MAJOR_VERSION
-# TCL_MINOR_VERSION
-# TCL_PATCH_LEVEL
-# TCL_VERSION
-# TK_MAJOR_VERSION
-# TK_MINOR_VERSION
-# TK_PATCH_LEVEL
-# TK_VERSION
-# DOTVERSION - set as (for example) 2.5
-# VERSION - set as (for example 25)
-#--------------------------------------------------------------
-
-!if [echo REM = This file is generated from rules.vc > versions.vc]
-!endif
-!if [echo TCL_MAJOR_VERSION = \>> versions.vc] \
- && [nmakehlp -V "$(_TCL_H)" TCL_MAJOR_VERSION >> versions.vc]
-!endif
-!if [echo TCL_MINOR_VERSION = \>> versions.vc] \
- && [nmakehlp -V "$(_TCL_H)" TCL_MINOR_VERSION >> versions.vc]
-!endif
-!if [echo TCL_PATCH_LEVEL = \>> versions.vc] \
- && [nmakehlp -V "$(_TCL_H)" TCL_PATCH_LEVEL >> versions.vc]
-!endif
-
-!if defined(_TK_H)
-!if [echo TK_MAJOR_VERSION = \>> versions.vc] \
- && [nmakehlp -V $(_TK_H) TK_MAJOR_VERSION >> versions.vc]
-!endif
-!if [echo TK_MINOR_VERSION = \>> versions.vc] \
- && [nmakehlp -V $(_TK_H) TK_MINOR_VERSION >> versions.vc]
-!endif
-!if [echo TK_PATCH_LEVEL = \>> versions.vc] \
- && [nmakehlp -V $(_TK_H) TK_PATCH_LEVEL >> versions.vc]
-!endif
-!endif # _TK_H
-
-!include versions.vc
-
-TCL_VERSION = $(TCL_MAJOR_VERSION)$(TCL_MINOR_VERSION)
-TCL_DOTVERSION = $(TCL_MAJOR_VERSION).$(TCL_MINOR_VERSION)
-!if defined(_TK_H)
-TK_VERSION = $(TK_MAJOR_VERSION)$(TK_MINOR_VERSION)
-TK_DOTVERSION = $(TK_MAJOR_VERSION).$(TK_MINOR_VERSION)
-!endif
-
-# Set DOTVERSION and VERSION
-!if $(DOING_TCL)
-
-DOTVERSION = $(TCL_MAJOR_VERSION).$(TCL_MINOR_VERSION)
-VERSION = $(TCL_VERSION)
-
-!elseif $(DOING_TK)
-
-DOTVERSION = $(TK_DOTVERSION)
-VERSION = $(TK_VERSION)
-
-!else # Doing a non-Tk extension
-
-# If parent makefile has not defined DOTVERSION, try to get it from TEA
-# first from a configure.in file, and then from configure.ac
-!ifndef DOTVERSION
-!if [echo DOTVERSION = \> versions.vc] \
- || [nmakehlp -V $(ROOT)\configure.in ^[$(PROJECT)^] >> versions.vc]
-!if [echo DOTVERSION = \> versions.vc] \
- || [nmakehlp -V $(ROOT)\configure.ac ^[$(PROJECT)^] >> versions.vc]
-!error *** Could not figure out extension version. Please define DOTVERSION in parent makefile before including rules.vc.
-!endif
-!endif
-!include versions.vc
-!endif # DOTVERSION
-VERSION = $(DOTVERSION:.=)
-
-!endif # $(DOING_TCL) ... etc.
-
-# Windows RC files have 3 version components. Ensure this irrespective
-# of how many components the package has specified. Basically, ensure
-# minimum 4 components by appending 4 0's and then pick out the first 4.
-# Also take care of the fact that DOTVERSION may have "a" or "b" instead
-# of "." separating the version components.
-DOTSEPARATED=$(DOTVERSION:a=.)
-DOTSEPARATED=$(DOTSEPARATED:b=.)
-!if [echo RCCOMMAVERSION = \> versions.vc] \
- || [for /f "tokens=1,2,3,4,5* delims=." %a in ("$(DOTSEPARATED).0.0.0.0") do echo %a,%b,%c,%d >> versions.vc]
-!error *** Could not generate RCCOMMAVERSION ***
-!endif
-!include versions.vc
################################################################
# 10. Construct output directory and file paths
@@ -1087,14 +1117,21 @@ OUT_DIR = $(TMP_DIR)
# The name of the stubs library for the project being built
STUBPREFIX = $(PROJECT)stub
+#
# Set up paths to various Tcl executables and libraries needed by extensions
-!if $(DOING_TCL)
+#
+# TIP 430. Unused for 8.6 but no harm defining it to allow a common rules.vc
+TCLSCRIPTZIPNAME = libtcl$(TCL_MAJOR_VERSION).$(TCL_MINOR_VERSION)$(TCL_PATCH_LETTER)$(TCL_RELEASE_SERIAL).zip
+TKSCRIPTZIPNAME = libtk$(TK_MAJOR_VERSION)$(TK_MINOR_VERSION)$(TK_PATCH_LETTER)$(TK_RELEASE_SERIAL).zip
+
+!if $(DOING_TCL)
TCLSHNAME = $(PROJECT)sh$(VERSION)$(SUFX).exe
TCLSH = $(OUT_DIR)\$(TCLSHNAME)
TCLIMPLIB = $(OUT_DIR)\$(PROJECT)$(VERSION)$(SUFX).lib
TCLLIBNAME = $(PROJECT)$(VERSION)$(SUFX).$(EXT)
TCLLIB = $(OUT_DIR)\$(TCLLIBNAME)
+TCLSCRIPTZIP = $(OUT_DIR)\$(TCLSCRIPTZIPNAME)
TCLSTUBLIBNAME = $(STUBPREFIX)$(VERSION).lib
TCLSTUBLIB = $(OUT_DIR)\$(TCLSTUBLIBNAME)
@@ -1122,6 +1159,7 @@ TCLIMPLIB = $(_TCLDIR)\lib\tcl$(TCL_VERSION)t$(SUFX:t=).lib
TCL_LIBRARY = $(_TCLDIR)\lib
TCLREGLIB = $(_TCLDIR)\lib\tclreg13$(SUFX:t=).lib
TCLDDELIB = $(_TCLDIR)\lib\tcldde14$(SUFX:t=).lib
+TCLSCRIPTZIP = $(_TCLDIR)\lib\$(TCLSCRIPTZIPNAME)
TCLTOOLSDIR = \must\have\tcl\sources\to\build\this\target
TCL_INCLUDES = -I"$(_TCLDIR)\include"
@@ -1141,6 +1179,7 @@ TCLIMPLIB = $(_TCLDIR)\win\$(BUILDDIRTOP)\tcl$(TCL_VERSION)t$(SUFX:t=).lib
TCL_LIBRARY = $(_TCLDIR)\library
TCLREGLIB = $(_TCLDIR)\win\$(BUILDDIRTOP)\tclreg13$(SUFX:t=).lib
TCLDDELIB = $(_TCLDIR)\win\$(BUILDDIRTOP)\tcldde14$(SUFX:t=).lib
+TCLSCRIPTZIP = $(_TCLDIR)\win\$(BUILDDIRTOP)\$(TCLSCRIPTZIPNAME)
TCLTOOLSDIR = $(_TCLDIR)\tools
TCL_INCLUDES = -I"$(_TCLDIR)\generic" -I"$(_TCLDIR)\win"
@@ -1173,7 +1212,8 @@ WISH = $(OUT_DIR)\$(WISHNAME)
TKSTUBLIB = $(OUT_DIR)\$(TKSTUBLIBNAME)
TKIMPLIB = $(OUT_DIR)\$(TKIMPLIBNAME)
TKLIB = $(OUT_DIR)\$(TKLIBNAME)
-TK_INCLUDES = -I"$(WIN_DIR)" -I"$(GENERICDIR)"
+TK_INCLUDES = -I"$(WIN_DIR)" -I"$(GENERICDIR)"
+TKSCRIPTZIP = $(OUT_DIR)\$(TKSCRIPTZIPNAME)
!else # effectively NEED_TK
@@ -1188,7 +1228,10 @@ TKIMPLIBNAME = tk$(TK_VERSION)$(SUFX:t=).lib
TKIMPLIB = $(_TKDIR)\lib\$(TKIMPLIBNAME)
!endif
TK_INCLUDES = -I"$(_TKDIR)\include"
+TKSCRIPTZIP = $(_TKDIR)\lib\$(TKSCRIPTZIPNAME)
+
!else # Building against Tk sources
+
WISH = $(_TKDIR)\win\$(BUILDDIRTOP)\$(WISHNAME)
TKSTUBLIB = $(_TKDIR)\win\$(BUILDDIRTOP)\$(TKSTUBLIBNAME)
TKIMPLIB = $(_TKDIR)\win\$(BUILDDIRTOP)\$(TKIMPLIBNAME)
@@ -1199,7 +1242,10 @@ TKIMPLIBNAME = tk$(TK_VERSION)$(SUFX:t=).lib
TKIMPLIB = $(_TKDIR)\win\$(BUILDDIRTOP)\$(TKIMPLIBNAME)
!endif
TK_INCLUDES = -I"$(_TKDIR)\generic" -I"$(_TKDIR)\win" -I"$(_TKDIR)\xlib"
+TKSCRIPTZIP = $(_TKDIR)\win\$(BUILDDIRTOP)\$(TKSCRIPTZIPNAME)
+
!endif # TKINSTALL
+
tklibs = "$(TKSTUBLIB)" "$(TKIMPLIB)"
!endif # $(DOING_TK)
@@ -1286,7 +1332,7 @@ INCLUDE_INSTALL_DIR = $(_INSTALLDIR)\..\include
# define PRJ_LIBS before including rules.rc if additional libs are needed
OPTDEFINES = /DSTDC_HEADERS
-!if $(VCVERSION) >= 1600
+!if $(VCVERSION) > 1600
OPTDEFINES = $(OPTDEFINES) /DHAVE_STDINT_H=1
!else
OPTDEFINES = $(OPTDEFINES) /DMP_NO_STDINT=1
@@ -1456,7 +1502,7 @@ pkgcflags_nostubs = $(appcflags_nostubs) $(PKGNAMEFLAGS) /DBUILD_$(PROJECT)
# so we do not remove it from cflags. -GL may prevent extensions
# compiled with one VC version to fail to link against stubs library
# compiled with another VC version. Check for this and fix accordingly.
-stubscflags = $(cflags) $(PKGNAMEFLAGS) $(PRJ_DEFINES) $(OPTDEFINES) -Zl /DSTATIC_BUILD $(INCLUDES) $(USE_STUBS_DEFS)
+stubscflags = $(cflags) $(PKGNAMEFLAGS) $(PRJ_DEFINES) $(OPTDEFINES) /Zl /GL- /DSTATIC_BUILD $(INCLUDES) $(USE_STUBS_DEFS)
# Link flags
@@ -1481,18 +1527,6 @@ lflags = -nologo -machine:$(MACHINE) $(LINKERFLAGS) $(ldebug)
lflags = $(lflags) -nodefaultlib:libucrt.lib
!endif
-# Old linkers (Visual C++ 6 in particular) will link for fast loading
-# on Win98. Since we do not support Win98 any more, we specify nowin98
-# as recommended for NT and later. However, this is only required by
-# IX86 on older compilers and only needed if we are not doing a static build.
-
-!if "$(MACHINE)" == "IX86" && !$(STATIC_BUILD)
-!if [nmakehlp -l -opt:nowin98 $(LINKER_TESTFLAGS)]
-# Align sections for PE size savings.
-lflags = $(lflags) -opt:nowin98
-!endif
-!endif
-
dlllflags = $(lflags) -dll
conlflags = $(lflags) -subsystem:console
guilflags = $(lflags) -subsystem:windows
@@ -1600,6 +1634,8 @@ default-install-pdbs:
@if not exist "$(LIB_INSTALL_DIR)" mkdir "$(LIB_INSTALL_DIR)"
@$(CPY) "$(OUT_DIR)\*.pdb" "$(LIB_INSTALL_DIR)\"
+# "emacs font-lock highlighting fix
+
default-install-docs-html:
@echo Installing documentation files to '$(DOC_INSTALL_DIR)'
@if not exist "$(DOC_INSTALL_DIR)" mkdir "$(DOC_INSTALL_DIR)"
@@ -1764,8 +1800,8 @@ $<
TCLNMAKECONFIG = "$(_TCLDIR)\lib\nmake\tcl.nmake"
!endif
!else # !$(TCLINSTALL) - building against Tcl source
-!if exist("$(OUT_DIR)\tcl.nmake")
-TCLNMAKECONFIG = "$(OUT_DIR)\tcl.nmake"
+!if exist("$(_TCLDIR)\win\$(BUILDDIRTOP)\tcl.nmake")
+TCLNMAKECONFIG = "$(_TCLDIR)\win\$(BUILDDIRTOP)\tcl.nmake"
!endif
!endif # TCLINSTALL
diff --git a/win/targets.vc b/win/targets.vc
index 6bfebc7..077e8f7 100644
--- a/win/targets.vc
+++ b/win/targets.vc
@@ -4,7 +4,7 @@
# Part of the nmake based build system for Tcl and its extensions.
# This file defines some standard targets for the convenience of extensions
# and can be optionally included by the extension makefile.
-# See TIP 477 (https://core.tcl-lang.org/tips/doc/trunk/tip/477.md) for docs.
+# See TIP 477 (https://core.tcl-lang.org/tips/doc/main/tip/477.md) for docs.
$(PROJECT): setup pkgindex $(PRJLIB)
diff --git a/win/tcl.m4 b/win/tcl.m4
index 44bb380..40ce538 100644
--- a/win/tcl.m4
+++ b/win/tcl.m4
@@ -28,7 +28,7 @@ AC_DEFUN([SC_PATH_TCLCONFIG], [
# we reset no_tcl in case something fails here
no_tcl=true
AC_ARG_WITH(tcl,
- AC_HELP_STRING([--with-tcl],
+ AS_HELP_STRING([--with-tcl],
[directory containing tcl configuration (tclConfig.sh)]),
with_tclconfig="${withval}")
AC_MSG_CHECKING([for Tcl configuration])
@@ -146,7 +146,7 @@ AC_DEFUN([SC_PATH_TKCONFIG], [
# we reset no_tk in case something fails here
no_tk=true
AC_ARG_WITH(tk,
- AC_HELP_STRING([--with-tk],
+ AS_HELP_STRING([--with-tk],
[directory containing tk configuration (tkConfig.sh)]),
with_tkconfig="${withval}")
AC_MSG_CHECKING([for Tk configuration])
@@ -364,14 +364,6 @@ AC_DEFUN([SC_ENABLE_SHARED], [
AC_ARG_ENABLE(shared,
[ --enable-shared build and link with shared libraries (default: on)],
[tcl_ok=$enableval], [tcl_ok=yes])
-
- if test "${enable_shared+set}" = set; then
- enableval="$enable_shared"
- tcl_ok=$enableval
- else
- tcl_ok=yes
- fi
-
if test "$tcl_ok" = "yes" ; then
AC_MSG_RESULT([shared])
SHARED_BUILD=1
@@ -507,6 +499,7 @@ AC_DEFUN([SC_ENABLE_SYMBOLS], [
# CFLAGS_DEBUG
# CFLAGS_OPTIMIZE
# CFLAGS_WARNING
+# CFLAGS_NOLTO
# LDFLAGS_DEBUG
# LDFLAGS_OPTIMIZE
# LDFLAGS_CONSOLE
@@ -571,13 +564,13 @@ AC_DEFUN([SC_CONFIG_CFLAGS], [
AC_CACHE_CHECK(for cross-compile version of gcc,
ac_cv_cross,
- AC_TRY_COMPILE([
+ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
#ifndef _WIN32
#error cross-compiler
#endif
- ], [],
- ac_cv_cross=no,
- ac_cv_cross=yes)
+ ]], [[]])],
+ [ac_cv_cross=no],
+ [ac_cv_cross=yes])
)
if test "$ac_cv_cross" = "yes"; then
@@ -638,13 +631,13 @@ AC_DEFUN([SC_CONFIG_CFLAGS], [
extra_ldflags="-pipe -static-libgcc"
AC_CACHE_CHECK(for mingw32 version of gcc,
ac_cv_win32,
- AC_TRY_COMPILE([
+ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
#ifdef _WIN32
#error win32
#endif
- ], [],
- ac_cv_win32=no,
- ac_cv_win32=yes)
+ ]], [[]])],
+ [ac_cv_win32=no],
+ [ac_cv_win32=yes])
)
if test "$ac_cv_win32" != "yes"; then
AC_MSG_ERROR([${CC} cannot produce win32 executables.])
@@ -653,13 +646,12 @@ AC_DEFUN([SC_CONFIG_CFLAGS], [
hold_cflags=$CFLAGS; CFLAGS="$CFLAGS -mwindows -municode -Dmain=xxmain"
AC_CACHE_CHECK(for working -municode linker flag,
ac_cv_municode,
- AC_TRY_LINK([
+ AC_LINK_IFELSE([AC_LANG_PROGRAM([[
#include <windows.h>
int APIENTRY wWinMain(HINSTANCE a, HINSTANCE b, LPWSTR c, int d) {return 0;}
- ],
- [],
- ac_cv_municode=yes,
- ac_cv_municode=no)
+ ]], [[]])],
+ [ac_cv_municode=yes],
+ [ac_cv_municode=no])
)
CFLAGS=$hold_cflags
if test "$ac_cv_municode" = "yes" ; then
@@ -667,6 +659,18 @@ AC_DEFUN([SC_CONFIG_CFLAGS], [
else
extra_cflags="$extra_cflags -DTCL_BROKEN_MAINARGS"
fi
+ AC_CACHE_CHECK(for working -fno-lto,
+ ac_cv_nolto,
+ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([])],
+ [ac_cv_nolto=yes],
+ [ac_cv_nolto=no])
+ )
+ CFLAGS=$hold_cflags
+ if test "$ac_cv_nolto" = "yes" ; then
+ CFLAGS_NOLTO="-fno-lto"
+ else
+ CFLAGS_NOLTO=""
+ fi
fi
AC_MSG_CHECKING([compiler flags])
@@ -771,13 +775,13 @@ AC_DEFUN([SC_CONFIG_CFLAGS], [
AC_MSG_RESULT([ Using 64-bit $MACHINE mode])
;;
*)
- AC_TRY_COMPILE([
+ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
#ifndef _WIN64
#error 32-bit
#endif
- ], [],
- tcl_win_64bit=yes,
- tcl_win_64bit=no
+ ]], [[]])],
+ [tcl_win_64bit=yes],
+ [tcl_win_64bit=no]
)
if test "$tcl_win_64bit" = "yes" ; then
do64bit=amd64
@@ -996,7 +1000,7 @@ AC_DEFUN([SC_CONFIG_CFLAGS], [
if test "${GCC}" = "yes" ; then
AC_CACHE_CHECK(for SEH support in compiler,
tcl_cv_seh,
- AC_TRY_RUN([
+ AC_RUN_IFELSE([AC_LANG_SOURCE([[
#define WIN32_LEAN_AND_MEAN
#include <windows.h>
#undef WIN32_LEAN_AND_MEAN
@@ -1011,10 +1015,10 @@ AC_DEFUN([SC_CONFIG_CFLAGS], [
}
return 1;
}
- ],
- tcl_cv_seh=yes,
- tcl_cv_seh=no,
- tcl_cv_seh=no)
+ ]])],
+ [tcl_cv_seh=yes],
+ [tcl_cv_seh=no],
+ [tcl_cv_seh=no])
)
if test "$tcl_cv_seh" = "no" ; then
AC_DEFINE(HAVE_NO_SEH, 1,
@@ -1029,15 +1033,15 @@ AC_DEFUN([SC_CONFIG_CFLAGS], [
#
AC_CACHE_CHECK(for EXCEPTION_DISPOSITION support in include files,
tcl_cv_eh_disposition,
- AC_TRY_COMPILE([
+ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
# define WIN32_LEAN_AND_MEAN
# include <windows.h>
# undef WIN32_LEAN_AND_MEAN
- ],[
+ ]], [[
EXCEPTION_DISPOSITION x;
- ],
- tcl_cv_eh_disposition=yes,
- tcl_cv_eh_disposition=no)
+ ]])],
+ [tcl_cv_eh_disposition=yes],
+ [tcl_cv_eh_disposition=no])
)
if test "$tcl_cv_eh_disposition" = "no" ; then
AC_DEFINE(EXCEPTION_DISPOSITION, int,
@@ -1050,18 +1054,18 @@ AC_DEFUN([SC_CONFIG_CFLAGS], [
AC_CACHE_CHECK(for winnt.h that ignores VOID define,
tcl_cv_winnt_ignore_void,
- AC_TRY_COMPILE([
+ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
#define VOID void
#define WIN32_LEAN_AND_MEAN
#include <windows.h>
#undef WIN32_LEAN_AND_MEAN
- ], [
+ ]], [[
CHAR c;
SHORT s;
LONG l;
- ],
- tcl_cv_winnt_ignore_void=yes,
- tcl_cv_winnt_ignore_void=no)
+ ]])],
+ [tcl_cv_winnt_ignore_void=yes],
+ [tcl_cv_winnt_ignore_void=no])
)
if test "$tcl_cv_winnt_ignore_void" = "yes" ; then
AC_DEFINE(HAVE_WINNT_IGNORE_VOID, 1,
@@ -1074,13 +1078,12 @@ AC_DEFUN([SC_CONFIG_CFLAGS], [
AC_CACHE_CHECK(for cast to union support,
tcl_cv_cast_to_union,
- AC_TRY_COMPILE([],
- [
+ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[]], [[
union foo { int i; double d; };
union foo f = (union foo) (int) 0;
- ],
- tcl_cv_cast_to_union=yes,
- tcl_cv_cast_to_union=no)
+ ]])],
+ [tcl_cv_cast_to_union=yes],
+ [tcl_cv_cast_to_union=no])
)
if test "$tcl_cv_cast_to_union" = "yes"; then
AC_DEFINE(HAVE_CAST_TO_UNION, 1,
@@ -1093,6 +1096,7 @@ AC_DEFUN([SC_CONFIG_CFLAGS], [
AC_SUBST(CFLAGS_DEBUG)
AC_SUBST(CFLAGS_OPTIMIZE)
AC_SUBST(CFLAGS_WARNING)
+ AC_SUBST(CFLAGS_NOLTO)
])
#------------------------------------------------------------------------
@@ -1251,7 +1255,7 @@ AC_DEFUN([SC_TCL_CFG_ENCODING], [
AC_DEFUN([SC_EMBED_MANIFEST], [
AC_MSG_CHECKING(whether to embed manifest)
AC_ARG_ENABLE(embedded-manifest,
- AC_HELP_STRING([--enable-embedded-manifest],
+ AS_HELP_STRING([--enable-embedded-manifest],
[embed manifest if possible (default: yes)]),
[embed_ok=$enableval], [embed_ok=yes])
diff --git a/win/tclWinFile.c b/win/tclWinFile.c
index 6cfeae1..fba82d7 100644
--- a/win/tclWinFile.c
+++ b/win/tclWinFile.c
@@ -264,11 +264,21 @@ WinLink(
TclWinConvertError(GetLastError());
} else if (linkAction & TCL_CREATE_SYMBOLIC_LINK) {
- /*
- * Can't symlink files.
- */
+ if (!tclWinProcs.createSymbolicLink) {
+ /*
+ * Can't symlink files.
+ */
+ Tcl_SetErrno(EINVAL);
+ } else if (tclWinProcs.createSymbolicLink(linkSourcePath, linkTargetPath,
+ 0x2 /* SYMBOLIC_LINK_FLAG_ALLOW_UNPRIVILEGED_CREATE */)) {
+ /*
+ * Success!
+ */
- Tcl_SetErrno(ENOTDIR);
+ return 0;
+ } else {
+ TclWinConvertError(GetLastError());
+ }
} else {
Tcl_SetErrno(ENODEV);
}
@@ -1250,7 +1260,7 @@ WinIsReserved(
if (path[4] == '\0') {
return 4;
- } else if (path [4] == ':' && path[5] == '\0') {
+ } else if (path[4] == ':' && path[5] == '\0') {
return 4;
}
} else if ((path[2] == 'n' || path[2] == 'N') && path[3] == '\0') {
@@ -1271,7 +1281,7 @@ WinIsReserved(
if (path[4] == '\0') {
return 4;
- } else if (path [4] == ':' && path[5] == '\0') {
+ } else if (path[4] == ':' && path[5] == '\0') {
return 4;
}
}
@@ -3100,7 +3110,8 @@ TclNativeCreateNativeRep(
goto done;
}
MultiByteToWideChar(CP_UTF8, MB_ERR_INVALID_CHARS, str, -1, nativePathPtr,
- len + 1);
+ len + 2);
+ nativePathPtr[len] = 0;
/*
* If path starts with "//?/" or "\\?\" (extended path), translate any
diff --git a/win/tclWinInit.c b/win/tclWinInit.c
index 6b8f18a..d1b8156 100644
--- a/win/tclWinInit.c
+++ b/win/tclWinInit.c
@@ -87,10 +87,10 @@ TclWinProcs tclWinProcs;
* processor values.
*/
-#define NUMPROCESSORS 11
+#define NUMPROCESSORS 15
static const char *const processors[NUMPROCESSORS] = {
"intel", "mips", "alpha", "ppc", "shx", "arm", "ia64", "alpha64", "msil",
- "amd64", "ia32_on_win64"
+ "amd64", "ia32_on_win64", "neutral", "arm64", "arm32_on_win64", "ia32_on_arm64"
};
/*
@@ -164,6 +164,9 @@ TclpInitPlatform(void)
tclWinProcs.cancelSynchronousIo =
(BOOL (WINAPI *)(HANDLE))(void *)GetProcAddress(handle,
"CancelSynchronousIo");
+ tclWinProcs.createSymbolicLink =
+ (BOOLEAN (WINAPI *)(LPCWSTR, LPCWSTR, DWORD))(void *)GetProcAddress(handle,
+ "CreateSymbolicLinkW");
}
/*
diff --git a/win/tclWinInt.h b/win/tclWinInt.h
index ac95da5..7aac7d0 100644
--- a/win/tclWinInt.h
+++ b/win/tclWinInt.h
@@ -36,6 +36,7 @@ typedef struct TCLEXCEPTION_REGISTRATION {
*/
typedef struct TclWinProcs {
BOOL (WINAPI *cancelSynchronousIo)(HANDLE);
+ BOOLEAN (WINAPI *createSymbolicLink)(LPCWSTR, LPCWSTR, DWORD);
} TclWinProcs;
MODULE_SCOPE TclWinProcs tclWinProcs;