]> git.donarmstrong.com Git - lilypond.git/commitdiff
* lily/paper-column.cc (before_line_breaking): urg. bugfix.
authorHan-Wen Nienhuys <hanwen@xs4all.nl>
Mon, 15 Jul 2002 00:18:30 +0000 (00:18 +0000)
committerHan-Wen Nienhuys <hanwen@xs4all.nl>
Mon, 15 Jul 2002 00:18:30 +0000 (00:18 +0000)
* lily/separating-line-group-engraver.cc (finalize): don't replace
right-items, but add to list. This fixes a bug when a staff ends
with cross-staff voice switching away.

ChangeLog
lily/paper-column.cc
lily/separating-line-group-engraver.cc

index be732e7134e1dd276194ffd35c4b14832d177588..34cb2665ff88c26fc83501e85e1c50a859bccbeb 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@
+2002-07-15  Han-Wen  <hanwen@cs.uu.nl>
+
+       * lily/paper-column.cc (before_line_breaking): urg. bugfix.
+
+       * lily/separating-line-group-engraver.cc (finalize): don't replace
+       right-items, but add to list. This fixes a bug when a staff ends
+       with cross-staff voice switching away.
 2002-07-14  Han-Wen  <hanwen@cs.uu.nl>
 
        * input/mutopia/GNUmakefile: move mutopia/ to input/mutopia/
index c3260848dab4f78d9e64363fe54ecdebded9ed6e..df02af8fa84494e0b6cd2c1ad49a6c1615590397 100644 (file)
@@ -149,21 +149,18 @@ Paper_column::before_line_breaking (SCM grob)
   SCM c = me->get_grob_property ("bounded-by-me");
   SCM *ptrptr = &c;
 
-  while (gh_pair_p (c))
+  while (gh_pair_p (*ptrptr))
     {
-      Grob * g = unsmob_grob (gh_car (c));
+      Grob * g = unsmob_grob (gh_car (*ptrptr));
 
       if (!g || !g->live ())
        {
-         *ptrptr = gh_cdr (c);
+         *ptrptr = gh_cdr (*ptrptr);
        }
       else
        {
-         ptrptr = SCM_CDRLOC (c);
+         ptrptr = SCM_CDRLOC (*ptrptr);
        }
-      
-      if (gh_pair_p(c))
-       c = gh_cdr (c);
     }
 
   me->set_grob_property ("bounded-by-me", c);
index 29c393fb67b8366a09e258cb06955eabcd5de50d..b21c434e6774ac373865e8b25b5e222e41235b8c 100644 (file)
@@ -77,17 +77,21 @@ void
 Separating_line_group_engraver::finalize ()
 {
   SCM ccol = get_property ("currentCommandColumn");
+  Grob *column = unsmob_grob (ccol);
+  
   sep_span_p_->set_bound (RIGHT, unsmob_grob (ccol));
   typeset_grob (sep_span_p_);
   sep_span_p_ =0;
 
   for  (int i= 0 ; i < last_spacings_.note_spacings_.size(); i++)
     {
-      last_spacings_.note_spacings_[i]->set_grob_property ("right-items", gh_cons (ccol, SCM_EOL));
+      Pointer_group_interface::add_grob (last_spacings_.note_spacings_[i],
+                                        ly_symbol2scm ("right-items" ),
+                                        column);
     }
-
+   
   if(last_spacings_.staff_spacing_
-     && last_spacings_.staff_spacing_->column_l () == unsmob_grob (ccol))
+     && last_spacings_.staff_spacing_->column_l () == column)
     {
       last_spacings_.staff_spacing_->suicide ();
     }