diff options
| author | jan.nijtmans <nijtmans@users.sourceforge.net> | 2024-04-10 15:26:21 (GMT) |
|---|---|---|
| committer | jan.nijtmans <nijtmans@users.sourceforge.net> | 2024-04-10 15:26:21 (GMT) |
| commit | 62a628d51f30fb7754f907d87ef28b3e8a9938a3 (patch) | |
| tree | 01f7adcaadf8875893ea59d7b147f3d465b7886a /generic/tclIOUtil.c | |
| parent | f8cdc473a5a725577e81aaa05b166b710559c62a (diff) | |
| parent | 9ac22a9200db4d034922f3f15194cc1f3568e230 (diff) | |
| download | tcl-62a628d51f30fb7754f907d87ef28b3e8a9938a3.zip tcl-62a628d51f30fb7754f907d87ef28b3e8a9938a3.tar.gz tcl-62a628d51f30fb7754f907d87ef28b3e8a9938a3.tar.bz2 | |
Merge 8.7
Diffstat (limited to 'generic/tclIOUtil.c')
| -rw-r--r-- | generic/tclIOUtil.c | 13 |
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; |
