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

Reply via email to