summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--tests/fCmd.test12
-rw-r--r--win/tclWinFile.c6
2 files changed, 10 insertions, 8 deletions
diff --git a/tests/fCmd.test b/tests/fCmd.test
index 046fa17..61c9b5d 100644
--- a/tests/fCmd.test
+++ b/tests/fCmd.test
@@ -24,7 +24,7 @@ testConstraint testsetplatform [llength [info commands testsetplatform]]
testConstraint testchmod [llength [info commands testchmod]]
testConstraint winVista 0
testConstraint win2000orXP 0
-testConstraint win10 0
+testConstraint winLessThan10 0
# Don't know how to determine this constraint correctly
testConstraint notNetworkFilesystem 0
testConstraint reg 0
@@ -67,8 +67,8 @@ if {[testConstraint unix]} {
# Also used in winFCmd...
if {[testConstraint win] && [testConstraint nt]} {
if {$::tcl_platform(osVersion) >= 5.0} {
- if {$::tcl_platform(osVersion) >= 10.0} {
- testConstraint win10 1
+ if {$::tcl_platform(osVersion) < 10.0} {
+ testConstraint winLessThan10 1
}
if {$::tcl_platform(osVersion) >= 6.0} {
testConstraint winVista 1
@@ -2359,13 +2359,15 @@ test fCmd-28.7 {file link: source already exists} -setup {
} -returnCodes error -cleanup {
cd [workingDirectory]
} -result {could not create new link "abc.file": that path already exists}
-test fCmd-28.8 {file link} -constraints {linkFile win10} -setup {
+# In Windows 10 developer mode, we _can_ create symbolic links to files!
+test fCmd-28.8 {file link} -constraints {linkFile} -setup {
cd [temporaryDirectory]
} -body {
file link -symbolic abc.link abc.file
} -cleanup {
+ file delete -force abc.link
cd [workingDirectory]
-} -result abc.file
+} -returnCodes error -result {could not create new link "abc.link" pointing to "abc.file": invalid argument}
test fCmd-28.9 {file link: success with file} -constraints {linkFile} -setup {
cd [temporaryDirectory]
file delete -force abc.link
diff --git a/win/tclWinFile.c b/win/tclWinFile.c
index 6aacde6..fba82d7 100644
--- a/win/tclWinFile.c
+++ b/win/tclWinFile.c
@@ -268,7 +268,7 @@ WinLink(
/*
* Can't symlink files.
*/
- Tcl_SetErrno(ENOTDIR);
+ Tcl_SetErrno(EINVAL);
} else if (tclWinProcs.createSymbolicLink(linkSourcePath, linkTargetPath,
0x2 /* SYMBOLIC_LINK_FLAG_ALLOW_UNPRIVILEGED_CREATE */)) {
/*
@@ -276,9 +276,9 @@ WinLink(
*/
return 0;
+ } else {
+ TclWinConvertError(GetLastError());
}
-
- TclWinConvertError(GetLastError());
} else {
Tcl_SetErrno(ENODEV);
}