It appears that TCL 8.4 has problems with elseifs....
Below, please find a script run under tclsh 8.4... Iteration 1, with
multiple nested elseifs does not work properly. Iteration 2, which is
logically identical, performs properly.
Similar code works fine on AOLServer 3.4.2 but fails to generate the
proper result in 3.5.9 - much like this example.
Any thoughts?
Thanks - Howie
#!/cm/tools/bin/tclsh
set browser "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; .NET CLR
1.0.3705)"
if { [string first Mozilla $browser] > -1 } {
if [regexp -- {(Opera).([0-9\.]{1,})} $browser dummy p ver ] {
puts "Opera Detected: $p $ver"
} elseif [ regexp -- {(MSIE).([0-9.]{1,})} $browser dummy p ver ] {
puts "IE Detected: $p $ver"
} elseif [regexp -- {(Mozilla)\/([0-9\.]{1,})} $browser dummy p ver ] {
puts "Mozilla Detected: $p $ver"
if { ($ver < 5 ) || [regexp -- Netscape $browser]} {
set p Netscape
}
} elseif [regexp -- {(\w+)\/([0-9\.]{1,})} $browser dummy p ver] { }
}
puts "Completed: $p $ver"
set browser "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; .NET CLR
1.0.3705)"
if { [string first Mozilla $browser] > -1 } {
if [regexp -- {(Opera).([0-9\.]{1,})} $browser dummy p ver ] {
puts "Opera Detected: $p $ver"
} else {
if [ regexp -- {(MSIE).([0-9.]{1,})} $browser dummy p ver ] {
puts "IE Detected: $p $ver"
} else {
if [regexp -- {(Mozilla)\/([0-9\.]{1,})} $browser dummy p ver
] {
puts "Mozilla Detected: $p $ver"
if { ($ver < 5 ) || [regexp -- Netscape $browser]} {
set p Netscape
}
} else {
if [regexp -- {(\w+)\/([0-9\.]{1,})} $browser dummy p ver] { }
}
}
}
}
puts "Completed: $p $ver"
--
AOLserver - http://www.aolserver.com/
To Remove yourself from this list, simply send an email to <[EMAIL PROTECTED]> with the
body of "SIGNOFF AOLSERVER" in the email message. You can leave the Subject: field of
your email blank.