If you want to typeset usable music with .58 , you should apply this.

--- local-key-engraver.cc~      Thu Jun  8 01:16:47 2000
+++ local-key-engraver.cc       Thu Jun  8 16:17:25 2000
@@ -30,7 +30,8 @@
    with note heads), this needs to be in a context higher than Tie_engraver.
    (FIXME).
  */
-struct Local_key_engraver : Engraver {
+struct Local_key_engraver : Engraver
+{
   Local_key_item *key_item_p_;
 protected:
   VIRTUAL_COPY_CONS(Translator);
@@ -118,8 +119,7 @@
          
          bool tie_changes = tied_l_arr_.find_l (support_l) && different;
          if (!forget
-             && (note_l->forceacc_b_
-                 || !different)
+             && (note_l->forceacc_b_ || different)
              && !tie_changes)
            {
              if (!key_item_p_) 
@@ -134,7 +134,9 @@
 
              
              bool extra_natural
-               = sign (prev_acc) * (prev_acc - note_l->pitch_.accidental_i_) == 1 ;
+               =
+               abs (prev_acc) == 2 &&
+               sign (prev_acc) * (prev_acc - note_l->pitch_.accidental_i_) == 1 ;
 
              key_item_p_->add_pitch (note_l->pitch_,
                                      note_l->cautionary_b_,

--- newkey.cc~  Thu Jun  8 01:16:47 2000
+++ newkey.cc   Thu Jun  8 16:14:24 2000
@@ -34,12 +34,12 @@
 Newkey::get (int o, int n)
 {
   SCM r = scm_assoc (gh_cons (gh_int2scm (o), gh_int2scm (n)), key_alist_);
-  return r == SCM_BOOL_F ? get (n) : gh_cdr (r);
+  return r == SCM_BOOL_F ? get (n) : gh_scm2int (gh_cdr (r));
 }
 
 int
 Newkey::get (int n)
 {
   SCM r = scm_assoc (gh_int2scm (n), key_alist_);
-  return r == SCM_BOOL_F ? 0: gh_cdr (r);
+  return r == SCM_BOOL_F ? 0: gh_scm2int (gh_cdr (r));
 }

-- 

Han-Wen Nienhuys, [EMAIL PROTECTED] ** GNU LilyPond - The Music Typesetter 
      http://www.cs.uu.nl/people/hanwen/lilypond/index.html 

  • Oops. Han-Wen Nienhuys
    • Han-Wen Nienhuys

Reply via email to