From: <no...@so...> - 2002-04-03 08:36:15
|
Bugs item #535621, was opened at 2002-03-27 08:00 You can respond by visiting: http://sourceforge.net/tracker/?func=detail&atid=110894&aid=535621&group_id=10894 Category: 35. File System Group: 8.4a5 >Status: Closed >Resolution: Fixed Priority: 5 Submitted By: Don Porter (dgp) Assigned to: Vince Darley (vincentdarley) Summary: clear ~ cache when ::env(HOME) changes Initial Comment: The normalizedPath cached inside a "pathPtr" object needs to be invalidated when the raw string form of the path starts with ~ and the value of ::env(HOME) changes. Here's a demo session of the problem: First, the working code in 8.3: % info patch 8.3.4 % proc test {} { set ::env(HOME) /home/dgp puts "Parent of $::env(HOME)" catch {file dirname ~} parent puts "is $parent" set ::env(HOME) /usr/local/src puts "Parent of $::env(HOME)" catch {file dirname ~} parent puts "is $parent" } % test Parent of /home/dgp is /home Parent of /usr/local/src is /usr/local Compare with the broken 8.4: % info patch 8.4a5 % proc test {} { set ::env(HOME) /home/dgp puts "Parent of $::env(HOME)" catch {file dirname ~} parent puts "is $parent" set ::env(HOME) /usr/local/src puts "Parent of $::env(HOME)" catch {file dirname ~} parent % test Parent of /home/dgp is /home Parent of /usr/local/src is /home ---------------------------------------------------------------------- >Comment By: Vince Darley (vincentdarley) Date: 2002-04-03 08:36 Message: Logged In: YES user_id=32170 Applying patch to fix this problem. ---------------------------------------------------------------------- Comment By: Nobody/Anonymous (nobody) Date: 2002-03-27 09:59 Message: Logged In: NO Ah! Interesting -- I didn't think of that. Fortunately there's a method in place to invalidate the cache, so it just needs calling when env(HOME) changes. Calling Tcl_FSMountsChanged(NULL); will do the trick. Unfortunately I'm travelling for the next week so can't make a patch. ---------------------------------------------------------------------- You can respond by visiting: http://sourceforge.net/tracker/?func=detail&atid=110894&aid=535621&group_id=10894 |