summaryrefslogtreecommitdiffstats
path: root/generic/tclIOUtil.c
diff options
context:
space:
mode:
Diffstat (limited to 'generic/tclIOUtil.c')
-rw-r--r--generic/tclIOUtil.c24
1 files changed, 18 insertions, 6 deletions
diff --git a/generic/tclIOUtil.c b/generic/tclIOUtil.c
index f665e0f..7bbb9cd 100644
--- a/generic/tclIOUtil.c
+++ b/generic/tclIOUtil.c
@@ -2281,11 +2281,17 @@ Tcl_FSUtime(
* times to use. Should not be modified. */
{
const Tcl_Filesystem *fsPtr = Tcl_FSGetFileSystemForPath(pathPtr);
+ int err;
- if (fsPtr != NULL && fsPtr->utimeProc != NULL) {
- return fsPtr->utimeProc(pathPtr, tval);
+ if (fsPtr == NULL) {
+ err = ENOENT;
+ } else {
+ if (fsPtr->utimeProc != NULL) {
+ return fsPtr->utimeProc(pathPtr, tval);
+ }
+ err = ENOTSUP;
}
- /* TODO: set errno here? Tcl_SetErrno(ENOENT); */
+ Tcl_SetErrno(err);
return -1;
}
@@ -4340,11 +4346,17 @@ Tcl_FSCreateDirectory(
Tcl_Obj *pathPtr) /* Pathname of directory to create (UTF-8). */
{
const Tcl_Filesystem *fsPtr = Tcl_FSGetFileSystemForPath(pathPtr);
+ int err;
- if (fsPtr != NULL && fsPtr->createDirectoryProc != NULL) {
- return fsPtr->createDirectoryProc(pathPtr);
+ if (fsPtr == NULL) {
+ err = ENOENT;
+ } else {
+ if (fsPtr->createDirectoryProc != NULL) {
+ return fsPtr->createDirectoryProc(pathPtr);
+ }
+ err = ENOTSUP;
}
- Tcl_SetErrno(ENOENT);
+ Tcl_SetErrno(err);
return -1;
}