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