diff options
author | Steve Bennett <steveb@workware.net.au> | 2013-11-07 09:23:18 +1000 |
---|---|---|
committer | Steve Bennett <steveb@workware.net.au> | 2013-11-07 09:27:54 +1000 |
commit | 99bf0333098dd093f7ce73c84ace002e09b169cc (patch) | |
tree | 9494e88a4d6a2dfa286381cb0ed401a6106a628c | |
parent | bcec4895d4d14ecd70fb02ad92343046ca3f3ef8 (diff) | |
download | jimtcl-99bf0333098dd093f7ce73c84ace002e09b169cc.zip jimtcl-99bf0333098dd093f7ce73c84ace002e09b169cc.tar.gz jimtcl-99bf0333098dd093f7ce73c84ace002e09b169cc.tar.bz2 |
Improve file copy -force identical file check
On mingw we can't rely on dev+ino check
Signed-off-by: Steve Bennett <steveb@workware.net.au>
-rw-r--r-- | tclcompat.tcl | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/tclcompat.tcl b/tclcompat.tcl index d736859..fda1234 100644 --- a/tclcompat.tcl +++ b/tclcompat.tcl @@ -135,9 +135,14 @@ proc {file copy} {{force {}} source target} { error "error copying \"$source\" to \"$target\": file already exists" } # If source and target are the same, nothing to do + if {$source eq $target} { + return + } + # Hard linked, or case-insensitive filesystem + # Note: mingw returns ino=0 for every file :-( file stat $source ss file stat $target ts - if {$ss(dev) == $ts(dev) && $ss(ino) == $ts(ino)} { + if {$ss(dev) == $ts(dev) && $ss(ino) == $ts(ino) && $ss(ino)} { return } } |