source file of the GNU LilyPond music typesetter
- (c) 2000--2001 Han-Wen Nienhuys <hanwen@cs.uu.nl>
+ (c) 2000--2002 Han-Wen Nienhuys <hanwen@cs.uu.nl>
*/
#include "engraver.hh"
class Repeat_acknowledge_engraver : public Engraver
{
public:
- VIRTUAL_COPY_CONS (Translator);
- Repeat_acknowledge_engraver ();
+ TRANSLATOR_DECLARATIONS(Repeat_acknowledge_engraver);
virtual void start_translation_timestep ();
virtual void process_music ();
s = ":|";
/*
- TODO: line breaks might be allowed if we set whichBar to "".
+ TODO: line breaks might be allowed if we set whichBar to "".
*/
- if (s != "" || (volta_found && !gh_string_p (get_property ("whichBar"))))
+
+ /*
+ We only set the barline if we wouldn't overwrite a previously set
+ barline.
+ */
+ SCM wb = get_property ("whichBar");
+ SCM db = get_property ("defaultBarType");
+ if (!gh_string_p (wb) || gh_equal_p (db, wb))
{
- daddy_trans_l_->set_property ("whichBar", ly_str02scm (s.ch_C ()));
+ if (s != "" || (volta_found && !gh_string_p (wb)))
+ {
+ daddy_trans_l_->set_property ("whichBar", ly_str02scm (s.ch_C ()));
+ }
}
}
-ADD_THIS_TRANSLATOR (Repeat_acknowledge_engraver);
+ENTER_DESCRIPTION(Repeat_acknowledge_engraver,
+/* descr */ "Acknowledge repeated music, and convert the contents of
+repeatCommands ainto an appropriate setting for whichBar",
+/* creats*/ "",
+/* acks */ "",
+/* reads */ "repeatCommands whichBar",
+/* write */ "");