Revision
83147
Author
jmr@macports.org
Date
2011-08-26 07:12:57 -0700 (Fri, 26 Aug 2011)

Log Message

print path of root_fts when fts_read fails in do_traverse

Modified Paths

Diff

Modified: trunk/base/src/pextlib1.0/fs-traverse.c (83146 => 83147)


--- trunk/base/src/pextlib1.0/fs-traverse.c	2011-08-26 13:49:48 UTC (rev 83146)
+++ trunk/base/src/pextlib1.0/fs-traverse.c	2011-08-26 14:12:57 UTC (rev 83147)
@@ -249,8 +249,14 @@
         }
     }
     /* check errno before calling fts_close in case it sets errno to 0 on success */
-    if (errno != 0 || (fts_close(root_fts) != 0 && !(flags & F_IGNORE_ERRORS))) {
+    if (errno != 0) {
         Tcl_SetErrno(errno);
+        Tcl_ResetResult(interp);
+        Tcl_AppendResult(interp, root_fts->fts_path, ": ", (char *)Tcl_PosixError(interp), NULL);
+        fts_close(root_fts);
+        return TCL_ERROR;
+    } else if (fts_close(root_fts) != 0 && !(flags & F_IGNORE_ERRORS)) {
+        Tcl_SetErrno(errno);
         Tcl_SetResult(interp, (char *)Tcl_PosixError(interp), TCL_STATIC);
         return TCL_ERROR;
     }