summaryrefslogtreecommitdiffstats
path: root/win/tclWinFCmd.c
diff options
context:
space:
mode:
authorKevin B Kenny <kennykb@acm.org>2014-06-29 02:20:31 (GMT)
committerKevin B Kenny <kennykb@acm.org>2014-06-29 02:20:31 (GMT)
commit54aa5c1f2d5513d45d1361a3615125a4810cc1c0 (patch)
tree9e84f6c42d0fdc3d3a0958996705d2c2fbb5f722 /win/tclWinFCmd.c
parent2ac3c16d405d20153ce0ad43f308ff05bc372f7a (diff)
parentc0edc29d67c0944180ce922c7f63d6dd3c3bdf6c (diff)
downloadtcl-54aa5c1f2d5513d45d1361a3615125a4810cc1c0.zip
tcl-54aa5c1f2d5513d45d1361a3615125a4810cc1c0.tar.gz
tcl-54aa5c1f2d5513d45d1361a3615125a4810cc1c0.tar.bz2
merge trunk
Diffstat (limited to 'win/tclWinFCmd.c')
-rw-r--r--win/tclWinFCmd.c12
1 files changed, 9 insertions, 3 deletions
diff --git a/win/tclWinFCmd.c b/win/tclWinFCmd.c
index 2700cb3..52ea8c6 100644
--- a/win/tclWinFCmd.c
+++ b/win/tclWinFCmd.c
@@ -1108,7 +1108,12 @@ DoRemoveJustDirectory(
end:
if (errorPtr != NULL) {
+ char *p;
Tcl_WinTCharToUtf(nativePath, -1, errorPtr);
+ p = Tcl_DStringValue(errorPtr);
+ for (; *p; ++p) {
+ if (*p == '\\') *p = '/';
+ }
}
return TCL_ERROR;
@@ -1825,12 +1830,12 @@ SetWinFileAttributes(
Tcl_Obj *fileName, /* The name of the file. */
Tcl_Obj *attributePtr) /* The new value of the attribute. */
{
- DWORD fileAttributes;
+ DWORD fileAttributes, old;
int yesNo, result;
const TCHAR *nativeName;
nativeName = Tcl_FSGetNativePath(fileName);
- fileAttributes = GetFileAttributes(nativeName);
+ fileAttributes = old = GetFileAttributes(nativeName);
if (fileAttributes == 0xffffffff) {
StatError(interp, fileName);
@@ -1848,7 +1853,8 @@ SetWinFileAttributes(
fileAttributes &= ~(attributeArray[objIndex]);
}
- if (!SetFileAttributes(nativeName, fileAttributes)) {
+ if ((fileAttributes != old)
+ && !SetFileAttributes(nativeName, fileAttributes)) {
StatError(interp, fileName);
return TCL_ERROR;
}