X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=lily%2Fslur-engraver.cc;h=6f025e1a2b759d91d82738820b55dbc46eace4c4;hb=520a456625142476a1872d3b2450b6b24f7abadd;hp=23fc2ebbe397bb7e94c6e16063e893933a652503;hpb=4fabc68182cab7149d2a4b52502e180f57199831;p=lilypond.git diff --git a/lily/slur-engraver.cc b/lily/slur-engraver.cc index 23fc2ebbe3..6f025e1a2b 100644 --- a/lily/slur-engraver.cc +++ b/lily/slur-engraver.cc @@ -10,6 +10,7 @@ #include "slur.hh" #include "debug.hh" #include "note-column.hh" +#include "translator-group.hh" bool Slur_engraver::do_try_music (Music *req_l) @@ -19,11 +20,23 @@ Slur_engraver::do_try_music (Music *req_l) if (sl->span_type_str_ != "slur") return false; new_slur_req_l_arr_.push (sl); + return true; } return false; } +void +Slur_engraver::set_melisma (bool m) +{ + Translator_group *where = daddy_trans_l_; + get_property ("slurMelismaBusy", &where); + if (!where) + where = daddy_trans_l_; + + daddy_trans_l_->set_property ("slurMelismaBusy", m ? "1" :"0"); +} + void Slur_engraver::acknowledge_element (Score_element_info info) { @@ -45,10 +58,11 @@ Slur_engraver::do_removal_processing () typeset_element (slur_l_stack_[i]); } slur_l_stack_.clear (); - for (int i=0; i < requests_arr_.size(); i++) - { - requests_arr_[i]->warning (_ ("unterminated slur")); - } + if (!get_property ("weAreGraceContext",0).to_bool ()) + for (int i=0; i < requests_arr_.size(); i++) + { + requests_arr_[i]->warning (_ ("unterminated slur")); + } } void @@ -75,7 +89,7 @@ Slur_engraver::do_process_requests() // push a new slur onto stack. //(use temp. array to wait for all slur STOPs) Slur * s_p =new Slur; - Scalar prop = get_property ("slurdash", 0); + Scalar prop = get_property ("slurDash", 0); if (prop.isnum_b ()) s_p->set_elt_property (dashed_scm_sym, gh_int2scm(prop)); @@ -112,6 +126,10 @@ void Slur_engraver::do_post_move_processing() { new_slur_req_l_arr_.clear(); + if (get_property ("automaticMelismata",0).to_bool ()) + { + set_melisma (slur_l_stack_.size ()); + } }