From 9cb882ffefc858535b31f7da4b6e955d890ad7de Mon Sep 17 00:00:00 2001 From: nijtmans Date: Fri, 21 May 2010 12:11:58 +0000 Subject: Make sure that copyDir only receives normalized paths, otherwise it might result in a crash on CYGWIN. restyle according to the Tcl style guide --- ChangeLog | 6 ++++++ tools/installData.tcl | 24 ++++++++++++------------ 2 files changed, 18 insertions(+), 12 deletions(-) diff --git a/ChangeLog b/ChangeLog index ce29204..b1c4759 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2010-05-21 Jan Nijtmans + + * tools/installData.tcl Make sure that copyDir only receives normalized + paths, otherwise it might result in a crash on CYGWIN. restyle according + to the Tcl style guide (http://www.tcl.tk/doc/styleGuide.pdf) + 2010-05-19 Alexandre Ferrieux * tests/dict.test: Add missing tests for [Bug 3004007], fixed under diff --git a/tools/installData.tcl b/tools/installData.tcl index 5bf0ad1..8f6bc2d 100644 --- a/tools/installData.tcl +++ b/tools/installData.tcl @@ -16,38 +16,38 @@ exec tclsh "$0" ${1+"$@"} # See the file "license.terms" for information on usage and redistribution # of this file, and for a DISCLAIMER OF ALL WARRANTIES. # -# RCS: @(#) $Id: installData.tcl,v 1.2 2009/03/25 23:22:38 nijtmans Exp $ +# RCS: @(#) $Id: installData.tcl,v 1.3 2010/05/21 12:11:59 nijtmans Exp $ # #---------------------------------------------------------------------- -proc copyDir { d1 d2 } { +proc copyDir {d1 d2} { - puts [format {%*sCreating %s} [expr { 4 * [info level] }] {} \ + puts [format {%*sCreating %s} [expr {4 * [info level]}] {} \ [file tail $d2]] file delete -force -- $d2 file mkdir $d2 - + foreach ftail [glob -directory $d1 -nocomplain -tails *] { set f [file join $d1 $ftail] - if { [file isdirectory $f] && [string compare CVS $ftail] } { + if {[file isdirectory $f] && [string compare CVS $ftail]} { copyDir $f [file join $d2 $ftail] - } elseif { [file isfile $f] } { + } elseif {[file isfile $f]} { file copy -force $f [file join $d2 $ftail] - if { $::tcl_platform(platform) eq {unix} } { + if {$::tcl_platform(platform) eq {unix}} { file attributes [file join $d2 $ftail] -permissions 0644 } else { file attributes [file join $d2 $ftail] -readonly 1 } } } - - if { $::tcl_platform(platform) eq {unix} } { + + if {$::tcl_platform(platform) eq {unix}} { file attributes $d2 -permissions 0755 } else { file attributes $d2 -readonly 1 } -} - -copyDir [lindex $argv 0] [lindex $argv 1] +} + +copyDir [file normalize [lindex $argv 0]] [file normalize [lindex $argv 1]] -- cgit v0.12