summaryrefslogtreecommitdiffstats
path: root/win
diff options
context:
space:
mode:
authorjan.nijtmans <nijtmans@users.sourceforge.net>2023-04-05 16:06:52 (GMT)
committerjan.nijtmans <nijtmans@users.sourceforge.net>2023-04-05 16:06:52 (GMT)
commit3d9106c78b8e38fa4016a3f4d43db9c6900a93a0 (patch)
tree8539a6d220c828812856f5300357aec6e4fb7922 /win
parent1c6c9f56e950ca6c8f697b31209aeea184a74660 (diff)
parentfc9cd641eb779a5038416f122c6d0da0949cbbcb (diff)
downloadtcl-3d9106c78b8e38fa4016a3f4d43db9c6900a93a0.zip
tcl-3d9106c78b8e38fa4016a3f4d43db9c6900a93a0.tar.gz
tcl-3d9106c78b8e38fa4016a3f4d43db9c6900a93a0.tar.bz2
Merge 8.7
Diffstat (limited to 'win')
-rw-r--r--win/tclWinChan.c6
-rw-r--r--win/tclWinSerial.c2
2 files changed, 4 insertions, 4 deletions
diff --git a/win/tclWinChan.c b/win/tclWinChan.c
index 7d1f849..cc030f0 100644
--- a/win/tclWinChan.c
+++ b/win/tclWinChan.c
@@ -1005,7 +1005,7 @@ Tcl_MakeFileChannel(
TclFile readFile = NULL, writeFile = NULL;
BOOL result;
- if (mode == 0) {
+ if ((mode & (TCL_READABLE|TCL_WRITABLE)) == 0) {
return NULL;
}
@@ -1287,7 +1287,7 @@ OpenFileChannel(
for (infoPtr = tsdPtr->firstFilePtr; infoPtr != NULL;
infoPtr = infoPtr->nextPtr) {
if (infoPtr->handle == (HANDLE) handle) {
- return (permissions==infoPtr->validMask) ? infoPtr->channel : NULL;
+ return ((permissions & (TCL_READABLE|TCL_WRITABLE|TCL_EXCEPTION))==infoPtr->validMask) ? infoPtr->channel : NULL;
}
}
@@ -1300,7 +1300,7 @@ OpenFileChannel(
*/
infoPtr->nextPtr = NULL;
- infoPtr->validMask = permissions;
+ infoPtr->validMask = permissions & (TCL_READABLE|TCL_WRITABLE|TCL_EXCEPTION);
infoPtr->watchMask = 0;
infoPtr->flags = appendMode;
infoPtr->handle = handle;
diff --git a/win/tclWinSerial.c b/win/tclWinSerial.c
index f4b1813..b712cfd 100644
--- a/win/tclWinSerial.c
+++ b/win/tclWinSerial.c
@@ -1458,7 +1458,7 @@ TclWinOpenSerialChannel(
infoPtr = (SerialInfo *)Tcl_Alloc(sizeof(SerialInfo));
memset(infoPtr, 0, sizeof(SerialInfo));
- infoPtr->validMask = permissions;
+ infoPtr->validMask = permissions & (TCL_READABLE|TCL_WRITABLE);
infoPtr->handle = handle;
infoPtr->channel = (Tcl_Channel) NULL;
infoPtr->readable = 0;