lilypond-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Bugfix accidental-engraver


From: Rune Zedeler
Subject: Bugfix accidental-engraver
Date: Mon, 18 Dec 2006 05:09:27 +0100
User-agent: Thunderbird 1.5.0.8 (X11/20061117)

Attached patch fixes bug 106 as well as afaihf unreported bug that

\score {
  \new Staff {
    \relative c' {
      #(set-accidental-style 'modern)
      d4 dis'4 d,2
    }
  }
}

would not put a natural sign on the last d even though it should.

-Rune
--- ../lilypond-2.11.2/lily/accidental-engraver.cc      2006-12-18 
05:05:05.000000000 +0100
+++ lily/accidental-engraver.cc 2006-12-18 05:03:21.000000000 +0100
@@ -122,8 +122,7 @@
 
   /* Huh. Don't understand what this is good for. --hwn.  */
 
-  SCM val;
-  while (trans && trans->where_defined (ly_symbol2scm ("localKeySignature"), 
&val))
+  while (trans)
     {
       trans->set_property ("localKeySignature", ly_deep_copy (last_keysig_));
       trans = trans->get_parent_context ();
@@ -193,11 +192,14 @@
     {
       SCM entry = scm_car (s);
       if (scm_is_pair (scm_car (entry))
-         && scm_cdar (entry) == scm_from_int (n))
+         && scm_cdar (entry) == scm_from_int (n)) {
        from_other_octaves = scm_cdr (entry);
+       break;
+      }
     }
 
-  if (from_same_octave != SCM_BOOL_F
+  if (!ignore_octave
+      && from_same_octave != SCM_BOOL_F
       && recent_enough (bar_number, from_same_octave, laziness))
     previous_alteration = from_same_octave;
   else if (ignore_octave

reply via email to

[Prev in Thread] Current Thread [Next in Thread]