On Tue, Feb 03, 2009 at 10:36:48PM -0800, Keith Cascio wrote: > There are indeed two layers of masks (and there can be as many as > needed). In my current patch, the shell command line becomes "master" > and primer becomes "slave". Both layers exist independently of each > other, in two separate diff_option structs, until just before "go > time", when I flatten them (but that does not destroy the slave, it is > reused). We have had trouble in the past figuring out exactly when "go time" is (not specifically for diff options, but for things like color config). That is, there is code which wants to munge the options based on some other input much later than the setting of most options, and so any finalizing work you do ends up happening too early. And maybe you can argue that such code is wrong or bad, but it does get written and it does cause problems. So as I mentioned in another mail I just sent, I think you are best to stop thinking of it as a general flattening, and think of it more as a set of accessors that do the flattening Just In Time. -Peff -- 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