summaryrefslogtreecommitdiffstats
path: root/win/tclWinFile.c
diff options
context:
space:
mode:
authorjan.nijtmans <nijtmans@users.sourceforge.net>2021-02-15 12:08:17 (GMT)
committerjan.nijtmans <nijtmans@users.sourceforge.net>2021-02-15 12:08:17 (GMT)
commit90565904aa22260e8bdee126a55ed12fc12c94d6 (patch)
tree8c2547f4f77031e275e121522e7ac1486d1bcf45 /win/tclWinFile.c
parent4ea5470891ef203f5037e8c2e6dab835a0cffdd5 (diff)
parent73745cbfbf2708e4100af830ca10401c121799db (diff)
downloadtcl-90565904aa22260e8bdee126a55ed12fc12c94d6.zip
tcl-90565904aa22260e8bdee126a55ed12fc12c94d6.tar.gz
tcl-90565904aa22260e8bdee126a55ed12fc12c94d6.tar.bz2
Merge 8.7
Diffstat (limited to 'win/tclWinFile.c')
-rw-r--r--win/tclWinFile.c23
1 files changed, 9 insertions, 14 deletions
diff --git a/win/tclWinFile.c b/win/tclWinFile.c
index 38edd87..f89b522 100644
--- a/win/tclWinFile.c
+++ b/win/tclWinFile.c
@@ -29,7 +29,7 @@
*/
#define POSIX_EPOCH_AS_FILETIME \
- ((Tcl_WideInt) 116444736 * (Tcl_WideInt) 1000000000)
+ ((long long) 116444736 * (long long) 1000000000)
/*
* Declarations for 'link' related information. This information should come
@@ -264,21 +264,16 @@ WinLink(
TclWinConvertError(GetLastError());
} else if (linkAction & TCL_CREATE_SYMBOLIC_LINK) {
- if (!tclWinProcs.createSymbolicLink) {
- /*
- * Can't symlink files.
- */
- Tcl_SetErrno(ENOTDIR);
- } else if (tclWinProcs.createSymbolicLink(linkSourcePath, linkTargetPath,
+ if (CreateSymbolicLinkW(linkSourcePath, linkTargetPath,
0x2 /* SYMBOLIC_LINK_FLAG_ALLOW_UNPRIVILEGED_CREATE */)) {
/*
* Success!
*/
return 0;
+ } else {
+ TclWinConvertError(GetLastError());
}
-
- TclWinConvertError(GetLastError());
} else {
Tcl_SetErrno(ENODEV);
}
@@ -2107,8 +2102,8 @@ NativeStat(
statPtr->st_ctime = ToCTime(data.ftCreationTime);
}
attr = data.dwFileAttributes;
- statPtr->st_size = ((Tcl_WideInt) data.nFileSizeLow) |
- (((Tcl_WideInt) data.nFileSizeHigh) << 32);
+ statPtr->st_size = ((long long) data.nFileSizeLow) |
+ (((long long) data.nFileSizeHigh) << 32);
/*
* On Unix, for directories, nlink apparently depends on the number of
@@ -2155,8 +2150,8 @@ NativeStat(
attr = data.dwFileAttributes;
- statPtr->st_size = ((Tcl_WideInt) data.nFileSizeLow) |
- (((Tcl_WideInt) data.nFileSizeHigh) << 32);
+ statPtr->st_size = ((long long) data.nFileSizeLow) |
+ (((long long) data.nFileSizeHigh) << 32);
statPtr->st_atime = ToCTime(data.ftLastAccessTime);
statPtr->st_mtime = ToCTime(data.ftLastWriteTime);
statPtr->st_ctime = ToCTime(data.ftCreationTime);
@@ -2318,7 +2313,7 @@ ToCTime(
convertedTime.HighPart = (LONG) fileTime.dwHighDateTime;
return (time_t) ((convertedTime.QuadPart -
- (Tcl_WideInt) POSIX_EPOCH_AS_FILETIME) / (Tcl_WideInt) 10000000);
+ (long long) POSIX_EPOCH_AS_FILETIME) / (long long) 10000000);
}
/*