aboutsummaryrefslogtreecommitdiff
path: root/autosetup
diff options
context:
space:
mode:
authorSteve Bennett <steveb@workware.net.au>2011-08-16 19:58:03 +1000
committerSteve Bennett <steveb@workware.net.au>2011-08-16 19:58:03 +1000
commit645ed6fd4b6f9038c7e1d85d74c3872b3cb9a507 (patch)
treeb57f5219ce0e8c22d6d16a31af637342a1057c5d /autosetup
parent2c07a230b29af277c5610d7e7bda30deaf9d3124 (diff)
downloadjimtcl-645ed6fd4b6f9038c7e1d85d74c3872b3cb9a507.zip
jimtcl-645ed6fd4b6f9038c7e1d85d74c3872b3cb9a507.tar.gz
jimtcl-645ed6fd4b6f9038c7e1d85d74c3872b3cb9a507.tar.bz2
Update autosetup
Allows options and settings in any order Doesn't try to create temp files in /tmp on mingw which may fail. Signed-off-by: Steve Bennett <steveb@workware.net.au>
Diffstat (limited to 'autosetup')
-rwxr-xr-xautosetup/autosetup11
1 files changed, 7 insertions, 4 deletions
diff --git a/autosetup/autosetup b/autosetup/autosetup
index 9d490c8..fae164e 100755
--- a/autosetup/autosetup
+++ b/autosetup/autosetup
@@ -1001,8 +1001,10 @@ set modsource(getopt) {
# Parse everything out of the argv list which looks like an option
# Knows about --enable-thing and --disable-thing as alternatives for --thing=0 or --thing=1
+# Everything which doesn't look like an option, or is after --, is left unchanged
proc getopt {argvname} {
upvar $argvname argv
+ set nargv {}
for {set i 0} {$i < [llength $argv]} {incr i} {
set arg [lindex $argv $i]
@@ -1012,6 +1014,7 @@ proc getopt {argvname} {
if {$arg eq "--"} {
# End of options
incr i
+ lappend nargv {*}[lrange $argv $i end]
break
}
@@ -1025,14 +1028,14 @@ proc getopt {argvname} {
}
lappend opts($name) $value
} else {
- break
+ lappend nargv $arg
}
}
- #puts "getopt: argv=[join $argv] => [join [lrange $argv $i end]]"
+ #puts "getopt: argv=[join $argv] => [join $nargv]"
#parray opts
- set argv [lrange $argv $i end]
+ set argv $nargv
return [array get opts]
}
@@ -1513,7 +1516,7 @@ if {$autosetup(istcl)} {
# Jim uses system() for exec under mingw, so
# we need to fetch the output ourselves
proc exec-with-stderr {args} {
- set tmpfile /tmp/autosetup.[format %05x [rand 10000]].tmp
+ set tmpfile auto[format %04x [rand 10000]].tmp
set rc [catch [list exec {*}$args >$tmpfile 2>&1] result]
set result [readfile $tmpfile]
file delete $tmpfile