summaryrefslogtreecommitdiffstats
path: root/generic/tclIOUtil.c
diff options
context:
space:
mode:
authorjan.nijtmans <nijtmans@users.sourceforge.net>2024-04-10 15:26:21 (GMT)
committerjan.nijtmans <nijtmans@users.sourceforge.net>2024-04-10 15:26:21 (GMT)
commit62a628d51f30fb7754f907d87ef28b3e8a9938a3 (patch)
tree01f7adcaadf8875893ea59d7b147f3d465b7886a /generic/tclIOUtil.c
parentf8cdc473a5a725577e81aaa05b166b710559c62a (diff)
parent9ac22a9200db4d034922f3f15194cc1f3568e230 (diff)
downloadtcl-62a628d51f30fb7754f907d87ef28b3e8a9938a3.zip
tcl-62a628d51f30fb7754f907d87ef28b3e8a9938a3.tar.gz
tcl-62a628d51f30fb7754f907d87ef28b3e8a9938a3.tar.bz2
Merge 8.7
Diffstat (limited to 'generic/tclIOUtil.c')
-rw-r--r--generic/tclIOUtil.c13
1 files changed, 5 insertions, 8 deletions
diff --git a/generic/tclIOUtil.c b/generic/tclIOUtil.c
index 5a07533..b0b847e 100644
--- a/generic/tclIOUtil.c
+++ b/generic/tclIOUtil.c
@@ -1484,7 +1484,6 @@ TclGetOpenModeEx(
int mode, c, gotRW;
Tcl_Size modeArgc, i;
const char **modeArgv, *flag;
-#define RW_MODES (O_RDONLY|O_WRONLY|O_RDWR)
/*
* Check for the simpler fopen-like access modes like "r" which are
@@ -1494,7 +1493,7 @@ TclGetOpenModeEx(
*seekFlagPtr = 0;
*binaryPtr = 0;
- mode = 0;
+ mode = O_RDONLY;
/*
* Guard against wide characters before using byte-oriented routines.
@@ -1504,7 +1503,6 @@ TclGetOpenModeEx(
&& islower(UCHAR(modeString[0]))) { /* INTL: ISO only. */
switch (modeString[0]) {
case 'r':
- mode = O_RDONLY;
break;
case 'w':
mode = O_WRONLY|O_CREAT|O_TRUNC;
@@ -1533,8 +1531,7 @@ TclGetOpenModeEx(
* 1773127]
*/
- mode &= ~(O_RDONLY|O_WRONLY|O_APPEND);
- mode |= O_RDWR;
+ mode = (mode & ~(O_ACCMODE|O_APPEND)) | O_RDWR;
break;
case 'b':
*binaryPtr = 1;
@@ -1579,13 +1576,13 @@ TclGetOpenModeEx(
flag = modeArgv[i];
c = flag[0];
if ((c == 'R') && (strcmp(flag, "RDONLY") == 0)) {
- mode = (mode & ~RW_MODES) | O_RDONLY;
+ mode = (mode & ~O_ACCMODE) | O_RDONLY;
gotRW = 1;
} else if ((c == 'W') && (strcmp(flag, "WRONLY") == 0)) {
- mode = (mode & ~RW_MODES) | O_WRONLY;
+ mode = (mode & ~O_ACCMODE) | O_WRONLY;
gotRW = 1;
} else if ((c == 'R') && (strcmp(flag, "RDWR") == 0)) {
- mode = (mode & ~RW_MODES) | O_RDWR;
+ mode = (mode & ~O_ACCMODE) | O_RDWR;
gotRW = 1;
} else if ((c == 'A') && (strcmp(flag, "APPEND") == 0)) {
mode |= O_APPEND;