From e5a13ea9460c718374eb1c26ca57b0ce4a2258af Mon Sep 17 00:00:00 2001 From: Han-Wen Nienhuys Date: Thu, 14 Dec 2006 13:44:33 +0100 Subject: [PATCH] add new tuplets new_tuplet_ vector. Fixes #159 This ensures we don't accidentally flush a newly started tuplet. --- input/regression/quote-tuplet.ly | 31 +++++++++++++++++++++++++++++++ lily/tuplet-engraver.cc | 6 +++++- 2 files changed, 36 insertions(+), 1 deletion(-) create mode 100644 input/regression/quote-tuplet.ly diff --git a/input/regression/quote-tuplet.ly b/input/regression/quote-tuplet.ly new file mode 100644 index 0000000000..0579d4fde6 --- /dev/null +++ b/input/regression/quote-tuplet.ly @@ -0,0 +1,31 @@ + +\version "2.10.0" + +\header { + + texidoc = "In cue notes, Tuplet stops are handled before new tuplets + start." + +} + +foo = \relative { + \times 2/3 { c4 c c } \times 2/3 { c4 c c } +} + +\addquote "foo" { \foo } + +\paper { + ragged-right = ##t +} + +\new Staff +<< + \new Voice \transpose c c' { + \override Stem #'direction = #UP + \foo + } + \new Voice { + \cueDuring #"foo" #DOWN { s1 } + } +>> + diff --git a/lily/tuplet-engraver.cc b/lily/tuplet-engraver.cc index 946fd1d802..441fdd7610 100644 --- a/lily/tuplet-engraver.cc +++ b/lily/tuplet-engraver.cc @@ -44,8 +44,10 @@ public: protected: vector tuplets_; + vector new_tuplets_; vector stopped_tuplets_; vector last_tuplets_; + DECLARE_ACKNOWLEDGER (note_column); DECLARE_TRANSLATOR_LISTENER (tuplet_span); virtual void finalize (); @@ -62,7 +64,7 @@ Tuplet_engraver::listen_tuplet_span (Stream_event *ev) { Tuplet_description d; d.event_ = ev; - tuplets_.push_back (d); + new_tuplets_.push_back (d); } else if (dir == STOP && tuplets_.size ()) { @@ -105,6 +107,8 @@ Tuplet_engraver::process_music () } stopped_tuplets_.clear (); + concat (tuplets_, new_tuplets_); + new_tuplets_.clear (); for (vsize j = tuplets_.size (); j > 0; j--) { /* i goes from size-1 downto 0, inclusively */ -- 2.39.5