Hi. On Thu, Oct 30, 2014 at 08:55:13PM +1100, Paul Mackerras wrote: > It seems to me that we need the trace only for the > non-array configuration variables; the array case is only > for the view definitions, and I think we could just set > the changed flag for a view explicitly in [newviewok]. > That would simplify things quite a bit. I liked the idea to exploit that tcl can watch array element uniformly with scalar variables. But I agree that the result is a bit complicated. I will try to use the explicit flag and see how it's going to look. > On Sun, Sep 14, 2014 at 11:35:58PM +0300, Max Kirillov wrote: > I'm also not convinced we need all the uses of upvar. Why do we need > to use upvar to rename viewname, viewfiles etc. to current_viewname, > etc.? If you're concerned about what might possibly be in the .gitk > when you source it, perhaps doing the source inside a namespace would > be a cleaner approach? I have tried namespaces originally but failed with them. Apparently when "set v .." runs in namespace and global v exists, it modifies the global v rather than creates a new variabe in a namespace. I don't remember all details now but I could not find how to make it with namespaces. I should say I had not known anything about tcl namespaces before I started doing this but, so maybe I missed something. -- Max PS: the script which shows the namespace behavior: > set a 1 > namespace eval ns1 { > set a 2 > } > puts "a=$a" > puts "ns1::a=$ns1::a" Output is: > a=2 > can't read "ns1::a": no such variable > while executing > "puts "ns1::a=$ns1::a"" -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html