summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorjan.nijtmans <nijtmans@users.sourceforge.net>2014-11-14 09:47:56 (GMT)
committerjan.nijtmans <nijtmans@users.sourceforge.net>2014-11-14 09:47:56 (GMT)
commita7e595de7ccd127759d73b8e56999f12d2200b9e (patch)
tree377838b4cfa040448e9015c9e13221322aaf0e23
parent04e6c3503ccfb8c50a37f230b7d149a3fdbe40d9 (diff)
parentc297897b8f3cef07ec0a8b86f7bf56322f8e65dc (diff)
downloadtcl-a7e595de7ccd127759d73b8e56999f12d2200b9e.zip
tcl-a7e595de7ccd127759d73b8e56999f12d2200b9e.tar.gz
tcl-a7e595de7ccd127759d73b8e56999f12d2200b9e.tar.bz2
merge trunk
-rw-r--r--changes6
-rw-r--r--doc/open.n61
-rw-r--r--generic/tclFileName.c8
-rw-r--r--license.terms4
-rw-r--r--macosx/configure.ac2
-rw-r--r--pkgs/README4
-rw-r--r--tests/winFCmd.test13
-rwxr-xr-xunix/ldAix6
-rw-r--r--unix/tcl.spec2
-rw-r--r--unix/tclUnixChan.c8
-rw-r--r--unix/tclUnixInit.c2
-rw-r--r--unix/tclUnixPipe.c4
-rw-r--r--unix/tclUnixSock.c50
-rw-r--r--unix/tclUnixThrd.h2
-rw-r--r--unix/tclUnixTime.c2
-rw-r--r--win/tclConfig.sh.in2
-rw-r--r--win/tclWinChan.c32
-rw-r--r--win/tclWinConsole.c2
-rw-r--r--win/tclWinFile.c4
-rw-r--r--win/tclWinSerial.c2
-rw-r--r--win/tclWinSock.c90
21 files changed, 134 insertions, 172 deletions
diff --git a/changes b/changes
index 945b167..1decfe2 100644
--- a/changes
+++ b/changes
@@ -8303,11 +8303,11 @@ reported usage of large expressions (porter)
Many optmizations, improvements, and tightened stack management in bytecode.
---- Released 8.6.1, September 20, 2013 --- http://core.tcl.tk/tcl/ for details
+--- Released 8.6.1, September 20, 2013 --- http://core.tcl.tk/tcl/ for details
2013-09-27 (enhancement) improved ::env synchronization (fellows)
-2013-10-20 (bug fix)[2835313] segfault from
+2013-10-20 (bug fix)[2835313] segfault from
[apply {{} {while 1 {a {*}[return -level 0 -code continue]}}}] (fellows)
2013-10-22 (bug fix)[3556215] [scan %E%G%X] support (fellows)
@@ -8451,7 +8451,7 @@ include ::oo::class (fellows)
2014-08-25 (TIP 429) New command [string cat] (leitgeb,ferrieux)
---- Released 8.6.2, August 27, 2014 --- http://core.tcl.tk/tcl/ for details
+--- Released 8.6.2, August 27, 2014 --- http://core.tcl.tk/tcl/ for details
2014-08-28 (bug)[b9e1a3] Correct Method Search Order (nadkarni,fellows)
=> TclOO 1.0.3
diff --git a/doc/open.n b/doc/open.n
index 0b1b83f..7fccdf1 100644
--- a/doc/open.n
+++ b/doc/open.n
@@ -361,18 +361,17 @@ may cause this error.
A BREAK condition has been detected by your UART (see above).
.SH "PORTABILITY ISSUES"
.TP
-\fBWindows \fR(all versions)
+\fBWindows \fR
.
Valid values for \fIfileName\fR to open a serial port are of the form
-\fBcom\fIX\fB:\fR, where \fIX\fR is a number, generally from 1 to 4.
-This notation only works for serial ports from 1 to 9, if the system
-happens to have more than four. An attempt to open a serial port that
+\fBcom\fIX\fB\fR, where \fIX\fR is a number, generally from 1 to 9.
+A legacy form accepted as well is \fBcom\fIX\fB:\fR. This notation only
+works for serial ports from 1 to 9. An attempt to open a serial port that
does not exist or has a number greater than 9 will fail. An alternate
-form of opening serial ports is to use the filename \fB\e\e.\ecomX\fR,
-where X is any number that corresponds to a serial port; please note
-that this method is considerably slower on Windows 95 and Windows 98.
-.TP
-\fBWindows NT\fR
+form of opening serial ports is to use the filename \fB//./comX\fR,
+where X is any number that corresponds to a serial port.
+.RS
+.PP
.
When running Tcl interactively, there may be some strange interactions
between the real console, if one is present, and a command pipeline that uses
@@ -380,45 +379,11 @@ standard input or output. If a command pipeline is opened for reading, some
of the lines entered at the console will be sent to the command pipeline and
some will be sent to the Tcl evaluator. If a command pipeline is opened for
writing, keystrokes entered into the console are not visible until the
-pipe is closed. This behavior occurs whether the command pipeline is
-executing 16-bit or 32-bit applications. These problems only occur because
-both Tcl and the child application are competing for the console at
-the same time. If the command pipeline is started from a script, so that Tcl
-is not accessing the console, or if the command pipeline does not use
-standard input or output, but is redirected from or to a file, then the
-above problems do not occur.
-.TP
-\fBWindows 95\fR
-.
-A command pipeline that executes a 16-bit DOS application cannot be opened
-for both reading and writing, since 16-bit DOS applications that receive
-standard input from a pipe and send standard output to a pipe run
-synchronously. Command pipelines that do not execute 16-bit DOS
-applications run asynchronously and can be opened for both reading and
-writing.
-.RS
-.PP
-When running Tcl interactively, there may be some strange interactions
-between the real console, if one is present, and a command pipeline that uses
-standard input or output. If a command pipeline is opened for reading from
-a 32-bit application, some of the keystrokes entered at the console will be
-sent to the command pipeline and some will be sent to the Tcl evaluator. If
-a command pipeline is opened for writing to a 32-bit application, no output
-is visible on the console until the pipe is closed. These problems only
-occur because both Tcl and the child application are competing for the
-console at the same time. If the command pipeline is started from a script,
-so that Tcl is not accessing the console, or if the command pipeline does
-not use standard input or output, but is redirected from or to a file, then
-the above problems do not occur.
-.PP
-Whether or not Tcl is running interactively, if a command pipeline is opened
-for reading from a 16-bit DOS application, the call to \fBopen\fR will not
-return until end-of-file has been received from the command pipeline's
-standard output. If a command pipeline is opened for writing to a 16-bit DOS
-application, no data will be sent to the command pipeline's standard output
-until the pipe is actually closed. This problem occurs because 16-bit DOS
-applications are run synchronously, as described above.
-.RE
+pipe is closed. These problems only occur because both Tcl and the child
+application are competing for the console at the same time. If the command
+pipeline is started from a script, so that Tcl is not accessing the console,
+or if the command pipeline does not use standard input or output, but is
+redirected from or to a file, then the above problems do not occur.
.TP
\fBUnix\fR\0\0\0\0\0\0\0
.
diff --git a/generic/tclFileName.c b/generic/tclFileName.c
index 847a97a..8ecd9be 100644
--- a/generic/tclFileName.c
+++ b/generic/tclFileName.c
@@ -244,9 +244,9 @@ ExtractWinRoot(
if ((path[0] == 'c' || path[0] == 'C')
&& (path[1] == 'o' || path[1] == 'O')) {
if ((path[2] == 'm' || path[2] == 'M')
- && path[3] >= '1' && path[3] <= '4') {
+ && path[3] >= '1' && path[3] <= '9') {
/*
- * May have match for 'com[1-4]:?', which is a serial port.
+ * May have match for 'com[1-9]:?', which is a serial port.
*/
if (path[4] == '\0') {
@@ -266,9 +266,9 @@ ExtractWinRoot(
} else if ((path[0] == 'l' || path[0] == 'L')
&& (path[1] == 'p' || path[1] == 'P')
&& (path[2] == 't' || path[2] == 'T')) {
- if (path[3] >= '1' && path[3] <= '3') {
+ if (path[3] >= '1' && path[3] <= '9') {
/*
- * May have match for 'lpt[1-3]:?'
+ * May have match for 'lpt[1-9]:?'
*/
if (path[4] == '\0') {
diff --git a/license.terms b/license.terms
index 164d65e..d8049cd 100644
--- a/license.terms
+++ b/license.terms
@@ -29,7 +29,7 @@ MODIFICATIONS.
GOVERNMENT USE: If you are acquiring this software on behalf of the
U.S. government, the Government shall have only "Restricted Rights"
-in the software and related documentation as defined in the Federal
+in the software and related documentation as defined in the Federal
Acquisition Regulations (FARs) in Clause 52.227.19 (c) (2). If you
are acquiring the software on behalf of the Department of Defense, the
software shall be classified as "Commercial Computer Software" and the
@@ -37,4 +37,4 @@ Government shall have only "Restricted Rights" as defined in Clause
252.227-7014 (b) (3) of DFARs. Notwithstanding the foregoing, the
authors grant the U.S. Government and others acting in its behalf
permission to use and distribute the software in accordance with the
-terms specified in this license.
+terms specified in this license.
diff --git a/macosx/configure.ac b/macosx/configure.ac
index 01c3697..f7a8bb3 100644
--- a/macosx/configure.ac
+++ b/macosx/configure.ac
@@ -3,7 +3,7 @@ dnl This file is an input file used by the GNU "autoconf" program to
dnl generate the file "configure", which is run during Tcl installation
dnl to configure the system for the local environment.
-dnl Ensure that the config (auto)headers support is used, then just
+dnl Ensure that the config (auto)headers support is used, then just
dnl include the configure sources from ../unix:
m4_include(../unix/aclocal.m4)
diff --git a/pkgs/README b/pkgs/README
index 01c6f43..283a837 100644
--- a/pkgs/README
+++ b/pkgs/README
@@ -36,14 +36,14 @@ needs to conform to the following conventions.
clean: Delete all files generated by the default build target.
- distclean: Delete all generated files.
+ distclean: Delete all generated files.
dist: Produce a copy of the package's source code distribution.
Must respect the DIST_ROOT variable determing where to
write the generated directory.
Packages that are written to make use of the Tcl Extension Architecture (TEA)
-and that make use of the tclconfig collection of support files, should
+and that make use of the tclconfig collection of support files, should
conform to these conventions without further efforts.
These conventions are subject to revision and refinement over time to
diff --git a/tests/winFCmd.test b/tests/winFCmd.test
index ab675d7..a808c82 100644
--- a/tests/winFCmd.test
+++ b/tests/winFCmd.test
@@ -1314,14 +1314,14 @@ test winFCmd-18.1.2 {Windows reserved path names} -constraints win -body {
file pathtype com4
} -result "absolute"
test winFCmd-18.1.3 {Windows reserved path names} -constraints win -body {
- file pathtype com5
-} -result "relative"
+ file pathtype com9
+} -result "absolute"
test winFCmd-18.1.4 {Windows reserved path names} -constraints win -body {
file pathtype lpt3
} -result "absolute"
test winFCmd-18.1.5 {Windows reserved path names} -constraints win -body {
- file pathtype lpt4
-} -result "relative"
+ file pathtype lpt9
+} -result "absolute"
test winFCmd-18.1.6 {Windows reserved path names} -constraints win -body {
file pathtype nul
} -result "absolute"
@@ -1423,6 +1423,11 @@ 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 {
+ file normalize //./com1
+} -result //./com1
+
+
# This block of code used to occur after the "return" call, so I'm
# commenting it out and assuming that this code is still under construction.
#foreach source {tef ted tnf tnd "" nul com1} {
diff --git a/unix/ldAix b/unix/ldAix
index 51b2995..f115ea8 100755
--- a/unix/ldAix
+++ b/unix/ldAix
@@ -1,5 +1,5 @@
#!/bin/sh
-#
+#
# ldAix ldCmd ldArg ldArg ...
#
# This shell script provides a wrapper for ld under AIX in order to
@@ -40,8 +40,8 @@ rm -f lib.exp
echo "#! $outputFile" >lib.exp
/usr/ccs/bin/nm $nmopts $ofiles | sed -e '/:$/d' -e '/ U /d' -e 's/^\.//' -e 's/[ |].*//' | sort | uniq >>lib.exp
-# If we're linking a .a file, then link all the objects together into a
-# single file "shr.o" and then put that into the archive. Otherwise link
+# If we're linking a .a file, then link all the objects together into a
+# single file "shr.o" and then put that into the archive. Otherwise link
# the object files directly into the .a file.
noDotA=`echo $outputFile | sed -e '/\.a$/d'`
diff --git a/unix/tcl.spec b/unix/tcl.spec
index f4839ce..0858ee7 100644
--- a/unix/tcl.spec
+++ b/unix/tcl.spec
@@ -30,7 +30,7 @@ CFLAGS="%optflags" ./configure \
--prefix=%{directory} \
--exec-prefix=%{directory} \
--libdir=%{directory}/%{_lib}
-make
+make
%install
cd unix
diff --git a/unix/tclUnixChan.c b/unix/tclUnixChan.c
index e59f49d..d9bc4b6 100644
--- a/unix/tclUnixChan.c
+++ b/unix/tclUnixChan.c
@@ -792,7 +792,7 @@ TtySetOptionProc(
*
* Results:
* A standard Tcl result. Also sets the supplied DString to the string
- * value of the option(s) returned. Sets error message if needed
+ * value of the option(s) returned. Sets error message if needed
* (by calling Tcl_BadChannelOption).
*
*----------------------------------------------------------------------
@@ -1201,7 +1201,7 @@ TtyParseMode(
char parity;
const char *bad = "bad value for -mode";
- i = sscanf(mode, "%d,%c,%d,%d%n",
+ i = sscanf(mode, "%d,%c,%d,%d%n",
&ttyPtr->baud,
&parity,
&ttyPtr->data,
@@ -1292,7 +1292,7 @@ TtyInit(
|| iostate.c_lflag != 0
|| iostate.c_cflag & CREAD
|| iostate.c_cc[VMIN] != 1
- || iostate.c_cc[VTIME] != 0)
+ || iostate.c_cc[VTIME] != 0)
{
iostate.c_iflag = IGNBRK;
iostate.c_oflag = 0;
@@ -1824,7 +1824,7 @@ TclUnixWaitForFile(
if (FD_ISSET(fd, &writableMask)) {
SET_BITS(result, TCL_WRITABLE);
}
- if (FD_ISSET(fd, &exceptionMask)) {
+ if (FD_ISSET(fd, &exceptionMask)) {
SET_BITS(result, TCL_EXCEPTION);
}
result &= mask;
diff --git a/unix/tclUnixInit.c b/unix/tclUnixInit.c
index 8207612..6ff22cc 100644
--- a/unix/tclUnixInit.c
+++ b/unix/tclUnixInit.c
@@ -768,7 +768,7 @@ TclpSetVariables(
*/
CFLocaleRef localeRef;
-
+
if (CFLocaleCopyCurrent != NULL && CFLocaleGetIdentifier != NULL &&
(localeRef = CFLocaleCopyCurrent())) {
CFStringRef locale = CFLocaleGetIdentifier(localeRef);
diff --git a/unix/tclUnixPipe.c b/unix/tclUnixPipe.c
index 1583939..3fa2af8 100644
--- a/unix/tclUnixPipe.c
+++ b/unix/tclUnixPipe.c
@@ -261,7 +261,7 @@ TclpTempFileName(void)
*
* On Unix, it works to load a shared object from a file of any name, so this
* function is merely a thin wrapper around TclpTempFileName().
- *
+ *
*----------------------------------------------------------------------------
*/
@@ -969,7 +969,7 @@ PipeClose2Proc(
pipePtr->outFile = NULL;
}
}
-
+
/*
* If half-closing, stop here.
*/
diff --git a/unix/tclUnixSock.c b/unix/tclUnixSock.c
index d06e7f1..0188ea6 100644
--- a/unix/tclUnixSock.c
+++ b/unix/tclUnixSock.c
@@ -438,11 +438,11 @@ WaitForConnect(
/*
* Check if an async connect is running. If not return ok
*/
-
+
if (!(statePtr->flags & TCP_ASYNC_PENDING)) {
return 0;
}
-
+
if (errorCodePtr == NULL || (statePtr->flags & TCP_NONBLOCKING)) {
timeout = 0;
} else {
@@ -601,7 +601,7 @@ TcpCloseProc(
* handlers are already deleted in the generic IO channel closing code
* that called this function, so we do not have to delete them here.
*/
-
+
for (fds = &statePtr->fds; fds != NULL; fds = fds->next) {
if (fds->fd < 0) {
continue;
@@ -610,7 +610,7 @@ TcpCloseProc(
if (close(fds->fd) < 0) {
errorCode = errno;
}
-
+
}
fds = statePtr->fds.next;
while (fds != NULL) {
@@ -974,7 +974,7 @@ TcpWatchProc(
*/
return;
}
-
+
if (statePtr->flags & TCP_ASYNC_PENDING) {
/* Async sockets use a FileHandler internally while connecting, so we
* need to cache this request until the connection has succeeded. */
@@ -1111,7 +1111,7 @@ TcpConnect(
for (statePtr->myaddr = statePtr->myaddrlist; statePtr->myaddr != NULL;
statePtr->myaddr = statePtr->myaddr->ai_next) {
int reuseaddr = 1;
-
+
/*
* No need to try combinations of local and remote addresses of
* different families.
@@ -1141,15 +1141,15 @@ TcpConnect(
* Set the close-on-exec flag so that the socket will not get
* inherited by child processes.
*/
-
+
fcntl(statePtr->fds.fd, F_SETFD, FD_CLOEXEC);
-
+
/*
* Set kernel space buffering
*/
-
+
TclSockMinimumBuffers(INT2PTR(statePtr->fds.fd), SOCKET_BUFSIZE);
-
+
if (async) {
ret = TclUnixSetBlockingMode(statePtr->fds.fd,TCL_MODE_NONBLOCKING);
if (ret < 0) {
@@ -1160,7 +1160,7 @@ TcpConnect(
/* Gotta reset the error variable here, before we use it for the
* first time in this iteration. */
error = 0;
-
+
(void) setsockopt(statePtr->fds.fd, SOL_SOCKET, SO_REUSEADDR,
(char *) &reuseaddr, sizeof(reuseaddr));
ret = bind(statePtr->fds.fd, statePtr->myaddr->ai_addr,
@@ -1176,7 +1176,7 @@ TcpConnect(
* will set up a file handler on the socket if she is interested
* in being informed when the connect completes.
*/
-
+
ret = connect(statePtr->fds.fd, statePtr->addr->ai_addr,
statePtr->addr->ai_addrlen);
if (ret < 0) error = errno;
@@ -1459,28 +1459,28 @@ Tcl_OpenTcpServer(
}
continue;
}
-
+
/*
* Set the close-on-exec flag so that the socket will not get
* inherited by child processes.
*/
-
+
fcntl(sock, F_SETFD, FD_CLOEXEC);
-
+
/*
* Set kernel space buffering
*/
-
+
TclSockMinimumBuffers(INT2PTR(sock), SOCKET_BUFSIZE);
-
+
/*
* Set up to reuse server addresses automatically and bind to the
* specified port.
*/
-
- (void) setsockopt(sock, SOL_SOCKET, SO_REUSEADDR,
+
+ (void) setsockopt(sock, SOL_SOCKET, SO_REUSEADDR,
(char *) &reuseaddr, sizeof(reuseaddr));
-
+
/*
* Make sure we use the same port number when opening two server
* sockets for IPv4 and IPv6 on a random port.
@@ -1509,7 +1509,7 @@ Tcl_OpenTcpServer(
if (howfar < BIND) {
howfar = BIND;
my_errno = errno;
- }
+ }
close(sock);
sock = -1;
continue;
@@ -1541,7 +1541,7 @@ Tcl_OpenTcpServer(
/*
* Allocate a new TcpState for this socket.
*/
-
+
statePtr = ckalloc(sizeof(TcpState));
memset(statePtr, 0, sizeof(TcpState));
statePtr->acceptProc = acceptProc;
@@ -1556,12 +1556,12 @@ Tcl_OpenTcpServer(
newfds->fd = sock;
newfds->statePtr = statePtr;
fds = newfds;
-
+
/*
* Set up the callback mechanism for accepting connections from new
* clients.
*/
-
+
Tcl_CreateFileHandler(sock, TCL_READABLE, TcpAccept, fds);
}
@@ -1620,7 +1620,7 @@ TcpAccept(
socklen_t len; /* For accept interface */
char channelName[SOCK_CHAN_LENGTH];
char host[NI_MAXHOST], port[NI_MAXSERV];
-
+
len = sizeof(addr);
newsock = accept(fds->fd, &addr.sa, &len);
if (newsock < 0) {
diff --git a/unix/tclUnixThrd.h b/unix/tclUnixThrd.h
index 6a73132..f03b530 100644
--- a/unix/tclUnixThrd.h
+++ b/unix/tclUnixThrd.h
@@ -8,7 +8,7 @@
* See the file "license.terms" for information on usage and redistribution
* of this file, and for a DISCLAIMER OF ALL WARRANTIES.
*/
-
+
#ifndef _TCLUNIXTHRD
#define _TCLUNIXTHRD
diff --git a/unix/tclUnixTime.c b/unix/tclUnixTime.c
index 27b6a58..470b122 100644
--- a/unix/tclUnixTime.c
+++ b/unix/tclUnixTime.c
@@ -174,7 +174,7 @@ TclpWideClicksToNanoseconds(
#ifdef MAC_OSX_TCL
static mach_timebase_info_data_t tb;
static uint64_t maxClicksForUInt64;
-
+
if (!tb.denom) {
mach_timebase_info(&tb);
maxClicksForUInt64 = UINT64_MAX / tb.numer;
diff --git a/win/tclConfig.sh.in b/win/tclConfig.sh.in
index 00a8790..75324b2 100644
--- a/win/tclConfig.sh.in
+++ b/win/tclConfig.sh.in
@@ -1,5 +1,5 @@
# tclConfig.sh --
-#
+#
# This shell script (for sh) is generated automatically by Tcl's
# configure script. It will create shell variables for most of
# the configuration options discovered by the configure script.
diff --git a/win/tclWinChan.c b/win/tclWinChan.c
index 6a78eb4..4b3f930 100644
--- a/win/tclWinChan.c
+++ b/win/tclWinChan.c
@@ -971,7 +971,7 @@ TclpOpenFileChannel(
switch (FileGetType(handle)) {
case FILE_TYPE_SERIAL:
/*
- * Natively named serial ports "com1-9", "\\\\.\\comXX" are
+ * Natively named serial ports "com1-9", "\\\\.\\comXX" are
* already done with the code above.
* Here we handle all other serial port names.
*
@@ -1525,12 +1525,11 @@ FileGetType(
* NativeIsComPort --
*
* Determines if a path refers to a Windows serial port.
- * A simple and efficient solution is to use a "name hint" to detect
- * COM ports by their filename instead of resorting to a syscall
+ * A simple and efficient solution is to use a "name hint" to detect
+ * COM ports by their filename instead of resorting to a syscall
* to detect serialness after the fact.
* The following patterns cover common serial port names:
- * COM[1-9]:?
- * //./COM[0-9]+
+ * COM[1-9]
* \\.\COM[0-9]+
*
* Results:
@@ -1550,33 +1549,26 @@ NativeIsComPort(
* 1. Look for com[1-9]:?
*/
- if ( (len >= 4) && (len <= 5)
- && (_wcsnicmp(p, L"com", 3) == 0) ) {
+ if ( (len == 4) && (_wcsnicmp(p, L"com", 3) == 0) ) {
/*
- * The 4th character must be a digit 1..9 optionally followed by a ":"
+ * The 4th character must be a digit 1..9
*/
-
+
if ( (p[3] < L'1') || (p[3] > L'9') ) {
return 0;
}
- if ( (len == 5) && (p[4] != L':') ) {
- return 0;
- }
return 1;
}
-
+
/*
- * 2. Look for //./com[0-9]+ or \\.\com[0-9]+
+ * 2. Look for \\.\com[0-9]+
*/
-
- if ( (len >= 8) && (
- (_wcsnicmp(p, L"//./com", 7) == 0)
- || (_wcsnicmp(p, L"\\\\.\\com", 7) == 0) ) )
- {
+
+ if ((len >= 8) && (_wcsnicmp(p, L"\\\\.\\com", 7) == 0)) {
/*
* Charaters 8..end must be a digits 0..9
*/
-
+
for ( i=7; i<len; i++ ) {
if ( (p[i] < '0') || (p[i] > '9') ) {
return 0;
diff --git a/win/tclWinConsole.c b/win/tclWinConsole.c
index b8c4782..6053f2e 100644
--- a/win/tclWinConsole.c
+++ b/win/tclWinConsole.c
@@ -761,7 +761,7 @@ ConsoleInputProc(
* by the caller. In practice this is harmless, since all writes
* are into ChannelBuffers, and those have padding, but still
* ought to remove this, unless some Windows wizard can give
- * a reason not to.
+ * a reason not to.
*/
buf[count] = '\0';
return count;
diff --git a/win/tclWinFile.c b/win/tclWinFile.c
index 4cd042a..d6ca348 100644
--- a/win/tclWinFile.c
+++ b/win/tclWinFile.c
@@ -1262,9 +1262,9 @@ WinIsReserved(
} else if ((path[0] == 'l' || path[0] == 'L')
&& (path[1] == 'p' || path[1] == 'P')
&& (path[2] == 't' || path[2] == 'T')) {
- if (path[3] >= '1' && path[3] <= '3') {
+ if (path[3] >= '1' && path[3] <= '9') {
/*
- * May have match for 'lpt[1-3]:?'
+ * May have match for 'lpt[1-9]:?'
*/
if (path[4] == '\0') {
diff --git a/win/tclWinSerial.c b/win/tclWinSerial.c
index aa16f67..0ce5f4d 100644
--- a/win/tclWinSerial.c
+++ b/win/tclWinSerial.c
@@ -1415,7 +1415,7 @@ SerialWriterThread(
* Opens or Reopens the serial port with the OVERLAPPED FLAG set
*
* Results:
- * Returns the new handle, or INVALID_HANDLE_VALUE.
+ * Returns the new handle, or INVALID_HANDLE_VALUE.
* If an existing channel is specified it is closed and reopened.
*
* Side effects:
diff --git a/win/tclWinSock.c b/win/tclWinSock.c
index 5062ef8..8364c86 100644
--- a/win/tclWinSock.c
+++ b/win/tclWinSock.c
@@ -596,7 +596,7 @@ WaitForConnect(
/*
* Check if an async connect is running. If not return ok
*/
-
+
if (!(statePtr->flags & TCP_ASYNC_CONNECT)) {
return 0;
}
@@ -616,7 +616,7 @@ WaitForConnect(
/* get statePtr lock */
tsdPtr = TclThreadDataKeyGet(&dataKey);
WaitForSingleObject(tsdPtr->socketListLock, INFINITE);
-
+
/* Check for connect event */
if (statePtr->readyEvents & FD_CONNECT) {
@@ -1250,7 +1250,7 @@ TcpGetOptionProc(
return TCL_ERROR;
}
- /*
+ /*
* Go one step in async connect
* If any error is thrown save it as backround error to report eventually below
*/
@@ -1647,14 +1647,14 @@ TcpConnect(
/* We were called by the event procedure and continue our loop */
int async_callback = statePtr->flags & TCP_ASYNC_PENDING;
ThreadSpecificData *tsdPtr = TclThreadDataKeyGet(&dataKey);
-
+
if (async_callback) {
goto reenter;
}
-
+
for (statePtr->addr = statePtr->addrlist; statePtr->addr != NULL;
statePtr->addr = statePtr->addr->ai_next) {
-
+
for (statePtr->myaddr = statePtr->myaddrlist; statePtr->myaddr != NULL;
statePtr->myaddr = statePtr->myaddr->ai_next) {
@@ -1670,7 +1670,7 @@ TcpConnect(
/*
* Close the socket if it is still open from the last unsuccessful
* iteration.
- */
+ */
if (statePtr->sockets->fd != INVALID_SOCKET) {
closesocket(statePtr->sockets->fd);
}
@@ -1683,9 +1683,9 @@ TcpConnect(
*/
statePtr->notifierConnectError = 0;
Tcl_SetErrno(0);
-
+
statePtr->sockets->fd = socket(statePtr->myaddr->ai_family, SOCK_STREAM, 0);
-
+
/* Free list lock */
SetEvent(tsdPtr->socketListLock);
@@ -1754,7 +1754,7 @@ TcpConnect(
* thread.
*/
statePtr->selectEvents |= FD_CONNECT;
-
+
/*
* Free list lock
*/
@@ -1768,7 +1768,7 @@ TcpConnect(
/*
* Attempt to connect to the remote socket.
*/
-
+
connect(statePtr->sockets->fd, statePtr->addr->ai_addr,
statePtr->addr->ai_addrlen);
@@ -1809,7 +1809,7 @@ TcpConnect(
* the FD_CONNECT asyncroneously
*/
tsdPtr->pendingTcpState = NULL;
-
+
if (Tcl_GetErrno() == 0) {
goto out;
}
@@ -1835,12 +1835,12 @@ out:
* Set up the select mask for read/write events.
*/
statePtr->selectEvents = FD_READ | FD_WRITE | FD_CLOSE;
-
+
/*
* Register for interest in events in the select mask. Note that this
* automatically places the socket into non-blocking mode.
*/
-
+
SendMessage(tsdPtr->hwnd, SOCKET_SELECT, (WPARAM) SELECT,
(LPARAM) statePtr);
} else {
@@ -2092,20 +2092,20 @@ Tcl_OpenTcpServer(
TclWinConvertError((DWORD) WSAGetLastError());
continue;
}
-
+
/*
* Win-NT has a misfeature that sockets are inherited in child
* processes by default. Turn off the inherit bit.
*/
-
+
SetHandleInformation((HANDLE) sock, HANDLE_FLAG_INHERIT, 0);
-
+
/*
* Set kernel space buffering
*/
-
+
TclSockMinimumBuffers((void *)sock, TCP_BUFFER_SIZE);
-
+
/*
* Make sure we use the same port when opening two server sockets
* for IPv4 and IPv6.
@@ -2113,12 +2113,12 @@ Tcl_OpenTcpServer(
* As sockaddr_in6 uses the same offset and size for the port
* member as sockaddr_in, we can handle both through the IPv4 API.
*/
-
+
if (port == 0 && chosenport != 0) {
((struct sockaddr_in *) addrPtr->ai_addr)->sin_port =
htons(chosenport);
}
-
+
/*
* Bind to the specified port. Note that we must not call
* setsockopt with SO_REUSEADDR because Microsoft allows addresses
@@ -2128,7 +2128,7 @@ Tcl_OpenTcpServer(
* set into nonblocking mode. If there is trouble, this is one
* place to look for bugs.
*/
-
+
if (bind(sock, addrPtr->ai_addr, addrPtr->ai_addrlen)
== SOCKET_ERROR) {
TclWinConvertError((DWORD) WSAGetLastError());
@@ -2138,29 +2138,29 @@ Tcl_OpenTcpServer(
if (port == 0 && chosenport == 0) {
address sockname;
socklen_t namelen = sizeof(sockname);
-
+
/*
* Synchronize port numbers when binding to port 0 of multiple
* addresses.
*/
-
+
if (getsockname(sock, &sockname.sa, &namelen) >= 0) {
chosenport = ntohs(sockname.sa4.sin_port);
}
}
-
+
/*
* Set the maximum number of pending connect requests to the max
* value allowed on each platform (Win32 and Win32s may be
* different, and there may be differences between TCP/IP stacks).
*/
-
+
if (listen(sock, SOMAXCONN) == SOCKET_ERROR) {
TclWinConvertError((DWORD) WSAGetLastError());
closesocket(sock);
continue;
}
-
+
if (statePtr == NULL) {
/*
* Add this socket to the global list of sockets.
@@ -2186,9 +2186,9 @@ error:
/*
* Set up the select mask for connection request events.
*/
-
+
statePtr->selectEvents = FD_ACCEPT;
-
+
/*
* Register for interest in events in the select mask. Note that this
* automatically places the socket into non-blocking mode.
@@ -2652,7 +2652,7 @@ SocketEventProc(
WaitForConnect(statePtr,NULL);
} else {
-
+
/*
* No async connect reenter pending. Just clear event.
*/
@@ -2681,7 +2681,7 @@ SocketEventProc(
* network stack conditions that can result in FD_ACCEPT but a subsequent
* failure on accept() by the time we get around to it.
* Access to sockets (acceptEventCount, readyEvents) in socketList
- * is still protected by the lock (prevents reintroduction of
+ * is still protected by the lock (prevents reintroduction of
* SF Tcl Bug 3056775.
*/
@@ -2713,9 +2713,9 @@ SocketEventProc(
return 1;
}
- /* Loop terminated with no sockets accepted; clear the ready mask so
- * we can detect the next connection request. Note that connection
- * requests are level triggered, so if there is a request already
+ /* Loop terminated with no sockets accepted; clear the ready mask so
+ * we can detect the next connection request. Note that connection
+ * requests are level triggered, so if there is a request already
* pending, a new event will be generated.
*/
statePtr->acceptEventCount = 0;
@@ -2758,7 +2758,7 @@ SocketEventProc(
if ( statePtr->flags & TCP_ASYNC_FAILED ) {
mask |= TCL_READABLE;
-
+
} else {
fd_set readFds;
struct timeval timeout;
@@ -2796,11 +2796,11 @@ SocketEventProc(
if (events & FD_WRITE) {
mask |= TCL_WRITABLE;
}
-
+
/*
* Call registered event procedures
*/
-
+
if (mask) {
Tcl_NotifyChannel(statePtr->channel, mask);
}
@@ -2812,7 +2812,7 @@ SocketEventProc(
*
* AddSocketInfoFd --
*
- * This function adds a SOCKET file descriptor to the 'sockets' linked
+ * This function adds a SOCKET file descriptor to the 'sockets' linked
* list of a TcpState structure.
*
* Results:
@@ -2826,7 +2826,7 @@ SocketEventProc(
static void
AddSocketInfoFd(
- TcpState *statePtr,
+ TcpState *statePtr,
SOCKET socket)
{
TcpFdList *fds = statePtr->sockets;
@@ -2840,7 +2840,7 @@ AddSocketInfoFd(
while ( fds->next != NULL ) {
fds = fds->next;
}
-
+
fds->next = ckalloc(sizeof(TcpFdList));
fds = fds->next;
}
@@ -2851,7 +2851,7 @@ AddSocketInfoFd(
fds->next = NULL;
}
-
+
/*
*----------------------------------------------------------------------
*
@@ -2935,7 +2935,7 @@ WaitForSocketEvent(
/* get statePtr lock */
WaitForSingleObject(tsdPtr->socketListLock, INFINITE);
-
+
/* Check if event occured */
event_found = (statePtr->readyEvents & events);
@@ -2946,7 +2946,7 @@ WaitForSocketEvent(
if (event_found) {
break;
}
-
+
/* Exit loop if event did not occur but this is a non-blocking channel */
if (statePtr->flags & TCP_NONBLOCKING) {
*errorCodePtr = EWOULDBLOCK;
@@ -3253,11 +3253,11 @@ TcpThreadActionProc(
WaitForSingleObject(tsdPtr->socketListLock, INFINITE);
statePtr->nextPtr = tsdPtr->socketList;
tsdPtr->socketList = statePtr;
-
+
if (statePtr == tsdPtr->pendingTcpState) {
tsdPtr->pendingTcpState = NULL;
}
-
+
SetEvent(tsdPtr->socketListLock);
notifyCmd = SELECT;