diff options
| author | jan.nijtmans <nijtmans@users.sourceforge.net> | 2021-02-15 12:08:17 (GMT) |
|---|---|---|
| committer | jan.nijtmans <nijtmans@users.sourceforge.net> | 2021-02-15 12:08:17 (GMT) |
| commit | 90565904aa22260e8bdee126a55ed12fc12c94d6 (patch) | |
| tree | 8c2547f4f77031e275e121522e7ac1486d1bcf45 /win/tclWinFile.c | |
| parent | 4ea5470891ef203f5037e8c2e6dab835a0cffdd5 (diff) | |
| parent | 73745cbfbf2708e4100af830ca10401c121799db (diff) | |
| download | tcl-90565904aa22260e8bdee126a55ed12fc12c94d6.zip tcl-90565904aa22260e8bdee126a55ed12fc12c94d6.tar.gz tcl-90565904aa22260e8bdee126a55ed12fc12c94d6.tar.bz2 | |
Merge 8.7
Diffstat (limited to 'win/tclWinFile.c')
| -rw-r--r-- | win/tclWinFile.c | 23 |
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); } /* |
