On 2012/10/15 13:02:38, wl_gnu.org wrote:
> Let's assume that we "unify" the interface to context and grob > properties. The _default_ operation on a context property will > _always_ be overwrite rather than push, since context properties > track the change of things like the current clef, the current key > signature, the current whatever. There is no point in keeping a > stack for that by default, and it would be seriously confusing. > > That is what the default operation on a grob property is right now: > it overwrites the current top of the stack. This matches the > default operation on context properties. As contrasted to context > properties, grob properties have a save stack. There is no > LilyPond-accessible manner to access it, it is only available from > Scheme.
What about having a `simple' and an `advanced' interface? This is, let's stay with the current commands, enriched by \temporary and friends as suggested by David. At the same time, we could provide \push, \pop, and \clear (with *this* names) for advanced users who want to write music functions without side effects.
\clear with the proposed cut-through dynamics is rather the maximum possible side effect. It makes only some sense when it is intended to counter the sideeffects of making "push" the default interface rather than "overwrite", with the expectation that "push" will often get used when "overwrite" would have been appropriate. push and pop would not provide anything new. I have a really hard time seeing who we are supposed to be doing a favor here. http://codereview.appspot.com/6687044/ _______________________________________________ lilypond-devel mailing list lilypond-devel@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-devel