Comment #8 on issue 1063 by [email protected]: Reverting nested property fails to restore default value if preceded by override in same grob
http://code.google.com/p/lilypond/issues/detail?id=1063
Well, here is a first comment. Properties are a complex thing tied into various layers of contexts and possibly overriden at different levels. Property alists for nested contexts are stored with a clever Scheme via conses of the actual alist to be used, and the tail of the alist belonging to a different context. The various lists are not modified in-place but rather get stuff prepended and removed at front. If the tail gets out of sync with the respective parent, update_grob_properties resynchronizes them.
In contrast, alists for nested properties are just copied around and modified accordingly. For that reason, the difference between a copied subproperty (and sibling subproperties) from an outer context and a native subproperty is not preserved.
A revert of one subproperty can't determine whether its siblings originate as a (possibly outdated) copy of a parent context, or from setting it on its own.
I am having problems understanding how the nesting of properties inside of properties can be simpler to resolve than the nesting of properties inside of contexts.
I continue thinking about that. External insights welcome. _______________________________________________ bug-lilypond mailing list [email protected] https://lists.gnu.org/mailman/listinfo/bug-lilypond
