]> git.donarmstrong.com Git - lilypond.git/commitdiff
* lily/context-def.cc (filter_engravers): backport. Fixes:
authorHan-Wen Nienhuys <hanwen@xs4all.nl>
Thu, 27 May 2004 17:40:22 +0000 (17:40 +0000)
committerHan-Wen Nienhuys <hanwen@xs4all.nl>
Thu, 27 May 2004 17:40:22 +0000 (17:40 +0000)
crash-bar-number.ly

* lily/percent-repeat-engraver.cc (try_music): backport. Fixes:
skipbars-percent-repeat.ly

ChangeLog
lily/context-def.cc
lily/percent-repeat-engraver.cc

index 91680825d51bca455aa06afeff18348f125808b6..e9524b3080e55725221fc841fb44bd2b8df32540 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@
+2004-05-27  Han-Wen Nienhuys   <hanwen@xs4all.nl>
+
+       * lily/context-def.cc (filter_engravers): backport.  Fixes:
+       crash-bar-number.ly
+
+       * lily/percent-repeat-engraver.cc (try_music): backport. Fixes:
+       skipbars-percent-repeat.ly
+
 2004-05-19  Han-Wen Nienhuys   <hanwen@xs4all.nl>
 
        * lily/rest-collision.cc (do_shift): handle (0-down, 2-up) case
index afa8ccfac6e87309901c737cd6b0e948d0001105..a3cefde911ba8336403772a40b2932c2569b26b8 100644 (file)
@@ -270,6 +270,8 @@ filter_performers (SCM l)
       if (dynamic_cast<Performer*> (unsmob_translator (gh_car (*tail))))
        {
          *tail = gh_cdr (*tail);
+         if (!ly_c_pair_p (*tail))
+           break ;
        }
     }
   return l;
@@ -284,6 +286,8 @@ filter_engravers (SCM l)
       if (dynamic_cast<Engraver*> (unsmob_translator (gh_car (*tail))))
        {
          *tail = gh_cdr (*tail);
+         if (!ly_c_pair_p (*tail))
+           break ;
        }
     }
   return l;
index 3090e9b615cce4ab84fe4f5d109bbf0b7a40d555..2e28caba8b094b41ffb6ac5195e311b8f0b05a5c 100644 (file)
@@ -115,9 +115,16 @@ Percent_repeat_engraver::try_music (Music * m)
 
       
       Global_context *global = get_global_context ();
-      for (int i = 0; i < count; i++)  
-       global->add_moment_to_process (next_moment_ + Moment (i) * body_length_);
+      for (int i = 0; i < count; i++)
+       {
+         global->add_moment_to_process (next_moment_ + Moment (i) * body_length_);
   
+         /*
+           bars between % too.
+         */
+         if (repeat_sign_type_ == DOUBLE_MEASURE)
+           global->add_moment_to_process (next_moment_ + meas_len + Moment (i) * body_length_);
+       }
       return true;
     }