On 23.08.2006, at 18:35, Mike wrote:
I do have one concern with this change - what happens when the value (where case must be preserved) for some key is actually the name of another section or key? I do not have enough experience to tell if this is ever a problem, but I am not sure how this situation would be handled. Perhaps by the code that uses that config value?
Hm... this does not compute. If we look at the how nsv's would replace the existing ns_set as backend for storage: each ns_section would receive a separate nsv_array, so to speak. In details, this would be handled on the C instead of Tcl level, but it can be described this way for simplicity. Now, each nsv_array (i.e. ns_section) will hold any number of ns_param's. Where do you see the collision??? Values and names of sections and parameters are all entirely separated in their own spaces. There is no collision I see there. The only concern I have with changing (abandoning) case-insensitivity is that many people's config out there would break. Hence we can't do that. Idea to store the keys in canonical lowercase way would not hurt anybody but MAY pose some unwanted side effects if we decide at any point to serialize the in-memory structures back to files. I do not see this as a problem but we must be aware of that. Cheers, Zoran