On Sat, Oct 13, 2012 at 1:06 PM, David Kastrup
<address@hidden> wrote:
No. I am just pissed at the people clamoring for more ignorance, more
bugs, and less control.
If you are referring to Werner's and Reinhold's comments, I think you may not be reading them as the authors intended. In particular, I believe that Reinhold was merely objecting to the names "push" and "pop" as being opaque to non-programmers, while Werner was complaining that the plethora of new context-manipulation functions have become confusing. I interpret his comments as a request for orthogonalization rather than a complaint about the options that the new commands introduce. Now, it's true that the comments may not have been entirely constructive as they didn't propose alternatives, but I also don't think anyone claimed that your proposal is worse than the status quo.
For what it's worth, I think push, pop and clear (perhaps with more intuitive-to-non-programmer names) makes a nicer stack interface than push, pop-push and pop. I also think that "undo" should be rethought in light of this recent discussion. In particular, this discussion has made me realize that "undo" doesn't just reverse the effect of an override, since after
\override Something #'color = #green
\override Something #'color = #red
\undo\override Something #'color = #red,
then the color is not back to green as one might think.
What if we gave the users a "push, pop and clear" interface and we made overrides use "push" and \oneVoice use "clear"? This solves the \voiceOne\voiceTwo\oneVoice
problem and it lets \temporary be a shortcut for \override ... \undo \override. Since override is non-destructive, we could even get fancy and let
\override Something #'color = #green
\override Something #'color = #red
\undo\override Something #'color = #green
go back to the pre-green color.
Cheers,
Joe