]> git.donarmstrong.com Git - lilypond.git/blobdiff - lily/p-col.cc
release: 0.0.68pre
[lilypond.git] / lily / p-col.cc
index c47a4b2d275d446374b28e4883a28aeef3295594..f55ea2452b9520086d29141598b58acaaee6ea05 100644 (file)
@@ -1,14 +1,14 @@
 /*
   p-col.cc -- implement PCol
 
-  source file of the LilyPond music typesetter
+  source file of the GNU LilyPond music typesetter
 
   (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
 #include "p-col.hh"
 #include "p-score.hh"
-#include "p-staff.hh"
+
 #include "debug.hh"
 
 Interval
@@ -23,8 +23,21 @@ PCol::width() const
     return w;
 }
 
+void
+PCol::clean_breakable_items()
+{
+    if (!line_l_) {
+       for(iter(its.top(), j); j.ok(); ) {
+           j->unlink();
+           j.del();
+       }
+    }
+    if (prebreak_p_) prebreak_p_->clean_breakable_items();
+    if (postbreak_p_) postbreak_p_->clean_breakable_items();
+}
+
 int
-PCol::rank() const
+PCol::rank_i() const
 {
     assert(rank_i_ != -1);
     return rank_i_;
@@ -66,7 +79,7 @@ PCol::print() const
 int
 PCol::compare(PCol const &c1, PCol const &c2)
 {
-    return c1.rank() - c2.rank();
+    return c1.rank_i() - c2.rank_i();
 }
 
 void
@@ -93,6 +106,12 @@ PCol::set_breakable()
     postbreak_p_->pscore_l_ = pscore_l_;
 }
 
+bool
+PCol::breakpoint_b() const
+{
+    return !line_l_;
+}
+
 bool
 PCol::breakable_b() const
 {
@@ -101,12 +120,14 @@ PCol::breakable_b() const
 
 PCol::PCol(PCol *parent)
 {
+    error_mark_b_ = false;
     daddy_l_ = parent;
     prebreak_p_=0;
     postbreak_p_=0;
     line_l_=0;
     hpos = -1.0;
     pscore_l_ = 0;
+    rank_i_ = -1;
 }
 
 PCol::~PCol()