X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=lily%2Fkey-engraver.cc;h=f46717fb914291d0093600b2b418ff4ef133668f;hb=8347f6f06cd4c56d7a2d2ec482647afaaade1267;hp=a5a6a7c2898cb4c96c7d17755e9c2383b1095af3;hpb=2c22efe5a46a37065b10c3f51c5d7db00d07d318;p=lilypond.git diff --git a/lily/key-engraver.cc b/lily/key-engraver.cc index a5a6a7c289..f46717fb91 100644 --- a/lily/key-engraver.cc +++ b/lily/key-engraver.cc @@ -3,7 +3,7 @@ source file of the GNU LilyPond music typesetter - (c) 1997--2005 Han-Wen Nienhuys + (c) 1997--2006 Han-Wen Nienhuys */ #include "item.hh" @@ -76,10 +76,6 @@ Key_engraver::create_key (bool is_default) || key == SCM_EOL) && !scm_is_eq (last, key)) { - cancellation_ = make_item ("KeyCancellation", - key_event_ - ? key_event_->self_scm () : SCM_EOL); - SCM restore = SCM_EOL; SCM *tail = &restore; for (SCM s = last; scm_is_pair (s); s = scm_cdr (s)) @@ -92,9 +88,16 @@ Key_engraver::create_key (bool is_default) } } - cancellation_->set_property ("alteration-alist", restore); - cancellation_->set_property ("c0-position", - get_property ("middleCPosition")); + if (scm_is_pair (restore)) + { + cancellation_ = make_item ("KeyCancellation", + key_event_ + ? key_event_->self_scm () : SCM_EOL); + + cancellation_->set_property ("alteration-alist", restore); + cancellation_->set_property ("c0-position", + get_property ("middleCPosition")); + } } item_->set_property ("alteration-alist", key); } @@ -128,9 +131,7 @@ Key_engraver::acknowledge_clef (Grob_info info) (void)info; SCM c = get_property ("createKeyOnClefChange"); if (to_boolean (c)) - { - create_key (false); - } + create_key (false); } void @@ -138,9 +139,7 @@ Key_engraver::acknowledge_bar_line (Grob_info info) { (void)info; if (scm_is_pair (get_property ("keySignature"))) - { - create_key (true); - } + create_key (true); } void