source file of the GNU LilyPond music typesetter
- (c) 2000--2002 Han-Wen Nienhuys <hanwen@cs.uu.nl>
+ (c) 2000--2003 Han-Wen Nienhuys <hanwen@cs.uu.nl>
*/
void
Volta_engraver::process_music ()
{
- if (unsmob_grob (staff_))
+ if (unsmob_grob (staff_)
+ && !to_boolean (get_property ("voltaOnThisStaff")))
{
/*
TODO: this does weird things when you open a piece with a
{
SCM c = ly_car (cs);
- if (gh_pair_p (c) && ly_car (c) == ly_symbol2scm ("volta")
+ if (gh_pair_p (c)
+ && ly_car (c) == ly_symbol2scm ("volta")
&& gh_pair_p (ly_cdr (c)))
{
if (ly_cadr (c) == SCM_BOOL_F)
volta_span_ =0;
}
- if (gh_string_p (start_string_) && volta_span_)
+ if (volta_span_ &&
+ (gh_string_p (start_string_) || gh_pair_p (start_string_)))
{
warning (_ ("Already have a volta spanner. Stopping that one prematurely."));
void
Volta_engraver::process_acknowledged_grobs ()
{
- if (!volta_span_ && gh_string_p (start_string_))
+ if (!volta_span_ &&
+ (gh_string_p (start_string_) || gh_pair_p (start_string_)))
{
started_mom_ = now_mom () ;
ENTER_DESCRIPTION(Volta_engraver,
/* descr */ "Make volta brackets",
/* creats*/ "VoltaBracket",
+/* accepts */ "",
/* acks */ "bar-line-interface staff-symbol-interface note-column-interface",
/* reads */ "repeatCommands voltaSpannerDuration stavesFound",
/* write */ "");