Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | The only relyable way of changing environment variables to uppercase (e.g. env(ComSpec) to env(COMSPEC)) is unsetting the old one first. Long-standing bug, exposed by [219226]. |
---|---|
Downloads: | Tarball | ZIP archive | SQL archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA1: |
bd7d5c1f7c5f589b442d95cbd25307d7 |
User & Date: | jan.nijtmans 2013-11-21 09:24:59 |
Context
2013-11-21
| ||
11:52 | Add support for Windows 8.1: See [http://msdn.microsoft.com/en-us/library/windows/desktop/dn302074.a... check-in: f858abe62f user: jan.nijtmans tags: trunk | |
09:24 | The only relyable way of changing environment variables to uppercase (e.g. env(ComSpec) to env(COMSP... check-in: bd7d5c1f7c user: jan.nijtmans tags: trunk | |
09:18 | The only relyable way of changing environment variables to uppercase (e.g. env(ComSpec) to env(COMSP... check-in: 26c40ac305 user: jan.nijtmans tags: core-8-5-branch | |
2013-11-20
| ||
16:06 | Safer clean-up of environment variables: Do removal after insertions -> tcltest 2.3.7 check-in: 9835f4f033 user: jan.nijtmans tags: trunk | |
Changes
Changes to library/init.tcl.
︙ | ︙ | |||
126 127 128 129 130 131 132 | global env tcl_platform foreach p [array names env] { set u [string toupper $p] if {$u ne $p} { switch -- $u { COMSPEC - PATH { | > | | < < | < < < | 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 | global env tcl_platform foreach p [array names env] { set u [string toupper $p] if {$u ne $p} { switch -- $u { COMSPEC - PATH { set temp $env($p) unset env($p) set env($u) $temp trace add variable env($p) write \ [namespace code [list EnvTraceProc $p]] trace add variable env($u) write \ [namespace code [list EnvTraceProc $p]] } } } } if {![info exists env(COMSPEC)]} { set env(COMSPEC) cmd.exe } } InitWinEnv } } # Setup the unknown package handler |
︙ | ︙ |
Changes to library/tcltest/tcltest.tcl.
︙ | ︙ | |||
2490 2491 2492 2493 2494 2495 2496 | # restore the environment to the state it was in before this package # was loaded set newEnv {} set changedEnv {} set removedEnv {} | < < < < < < < < > > > | 2490 2491 2492 2493 2494 2495 2496 2497 2498 2499 2500 2501 2502 2503 2504 2505 2506 2507 2508 2509 2510 2511 2512 2513 2514 2515 | # restore the environment to the state it was in before this package # was loaded set newEnv {} set changedEnv {} set removedEnv {} foreach index [array names ::env] { if {![info exists originalEnv($index)]} { lappend newEnv $index unset ::env($index) } } foreach index [array names originalEnv] { if {![info exists ::env($index)]} { lappend removedEnv $index set ::env($index) $originalEnv($index) } elseif {$::env($index) ne $originalEnv($index)} { lappend changedEnv $index set ::env($index) $originalEnv($index) } } if {[llength $newEnv] > 0} { puts [outputChannel] \ "env array elements created:\t$newEnv" } |
︙ | ︙ |