diff options
author | sebres <sebres@users.sourceforge.net> | 2018-05-08 09:56:35 (GMT) |
---|---|---|
committer | sebres <sebres@users.sourceforge.net> | 2018-05-08 09:56:35 (GMT) |
commit | 8fd1568405890e88c8efda4776fdff92e570b1f1 (patch) | |
tree | 40b0a261e5b42451870767e753f16363b647c279 | |
parent | 5f0cf291f513b75b00ea3d59842b83dc24047c1c (diff) | |
parent | 78ee8c697e423a5b4718fabb53eef1c5f6a2a2b1 (diff) | |
download | tcl-8fd1568405890e88c8efda4776fdff92e570b1f1.zip tcl-8fd1568405890e88c8efda4776fdff92e570b1f1.tar.gz tcl-8fd1568405890e88c8efda4776fdff92e570b1f1.tar.bz2 |
merge fix for [92564326a98b5510] from 8.5
-rw-r--r-- | unix/tclUnixFCmd.c | 14 | ||||
-rw-r--r-- | unix/tclUnixFile.c | 4 | ||||
-rw-r--r-- | unix/tclUnixPort.h | 6 |
3 files changed, 15 insertions, 9 deletions
diff --git a/unix/tclUnixFCmd.c b/unix/tclUnixFCmd.c index a1a409e..d45ac18 100644 --- a/unix/tclUnixFCmd.c +++ b/unix/tclUnixFCmd.c @@ -375,7 +375,7 @@ DoRenameFile( if ((Realpath((char *) src, srcPath) != NULL) /* INTL: Native. */ && (Realpath((char *) dst, dstPath) != NULL) /* INTL: Native */ && (strncmp(srcPath, dstPath, strlen(srcPath)) != 0)) { - dirPtr = opendir(dst); /* INTL: Native. */ + dirPtr = TclOSopendir(dst); /* INTL: Native. */ if (dirPtr != NULL) { while (1) { dirEntPtr = TclOSreaddir(dirPtr); /* INTL: Native. */ @@ -385,11 +385,11 @@ DoRenameFile( if ((strcmp(dirEntPtr->d_name, ".") != 0) && (strcmp(dirEntPtr->d_name, "..") != 0)) { errno = EEXIST; - closedir(dirPtr); + TclOSclosedir(dirPtr); return TCL_ERROR; } } - closedir(dirPtr); + TclOSclosedir(dirPtr); } } errno = EINVAL; @@ -990,7 +990,7 @@ TraverseUnixTree( errorPtr); } #ifndef HAVE_FTS - dirPtr = opendir(source); /* INTL: Native. */ + dirPtr = TclOSopendir(source); /* INTL: Native. */ if (dirPtr == NULL) { /* * Can't read directory @@ -1002,7 +1002,7 @@ TraverseUnixTree( result = traverseProc(sourcePtr, targetPtr, &statBuf, DOTREE_PRED, errorPtr); if (result != TCL_OK) { - closedir(dirPtr); + TclOSclosedir(dirPtr); return result; } @@ -1052,11 +1052,11 @@ TraverseUnixTree( * NULL-return that may a symptom of a buggy readdir. */ - rewinddir(dirPtr); + TclOSrewinddir(dirPtr); numProcessed = 0; } } - closedir(dirPtr); + TclOSclosedir(dirPtr); /* * Strip off the trailing slash we added diff --git a/unix/tclUnixFile.c b/unix/tclUnixFile.c index 7ffbf8d..b61a0df 100644 --- a/unix/tclUnixFile.c +++ b/unix/tclUnixFile.c @@ -309,7 +309,7 @@ TclpMatchInDirectory( return TCL_OK; } - d = opendir(native); /* INTL: Native. */ + d = TclOSopendir(native); /* INTL: Native. */ if (d == NULL) { Tcl_DStringFree(&ds); if (interp != NULL) { @@ -387,7 +387,7 @@ TclpMatchInDirectory( } } - closedir(d); + TclOSclosedir(d); Tcl_DStringFree(&ds); Tcl_DStringFree(&dsOrig); Tcl_DecrRefCount(fileNamePtr); diff --git a/unix/tclUnixPort.h b/unix/tclUnixPort.h index 4819f10..ef6d6d3 100644 --- a/unix/tclUnixPort.h +++ b/unix/tclUnixPort.h @@ -59,9 +59,15 @@ #ifdef HAVE_STRUCT_DIRENT64 typedef struct dirent64 Tcl_DirEntry; # define TclOSreaddir readdir64 +# define TclOSopendir opendir64 +# define TclOSrewinddir rewinddir64 +# define TclOSclosedir closedir64 #else typedef struct dirent Tcl_DirEntry; # define TclOSreaddir readdir +# define TclOSopendir opendir +# define TclOSrewinddir rewinddir +# define TclOSclosedir closedir #endif #ifdef HAVE_TYPE_OFF64_T |