Status: Accepted
Owner: ----
Labels: Type-Defect
New issue 2507 by [email protected]: Stop the entanglement of context properties
and grob property internals
http://code.google.com/p/lilypond/issues/detail?id=2507
Currently grob properties are maintained as context properties with pair
values representing the inner parts of the data structures used for
implementing \override/\revert. As a result, something like
\new Staff { \set NoteHead = #'(a) c'4 c' c' c' }
clobbers internal data structures and as a result, crashes LilyPond rather
hard:
GNU LilyPond 2.15.38
Processing `/tmp/junk.ly'
Parsing...
/tmp/junk.ly:0: warning: no \version statement found, please add
\version "2.15.38"
for future compatibility
Interpreting music...
Compilation segmentation fault (core dumped) at Mon Apr 30 18:26:52
With the inclusion of nested overrides/reverts (not yet working cleanly, cf
issue 1063) which allow
\override Xxx #'(a b c) = value
\revert Xxx #'(a b c)
as a multi-path-element generalization for
\override Xxx #'a = value
\revert Xxx #'a
it would appear natural to have
\override Xxx #'() = value
\revert Xxx #'()
to be equivalent to
\set Xxx = value
\unset Xxx
and in this manner cease the entanglement of the user interface for context
properties with the internals of grob properties by making the former a
special case of the latter.