At the current point of time, an existing bottom context is returned
even when there is a mismatch in ids. For example, when writing
\context Voice = "one" <<
{ \voiceOne g' g' g' g' }
\context Voice = "two" { \voiceTwo c' c' c' c' }
>>
creates two voices, while
\context Bottom = "one" <<
{ \voiceOne g' g' g' g' }
\context Bottom = "two" { \voiceTwo c' c' c' c' }
>>
only uses a single Voice called "one". This is arguably wrong.
Context *tg = create_context (t, context_id, SCM_EOL);
return tg->get_default_interpreter (context_id);
}
+ else if (!context_id.empty () && context_id != id_string ())
+ {
+ if (daddy_context_ && !dynamic_cast<Global_context *> (daddy_context_))
+ return daddy_context_->get_default_interpreter (context_id);
+ warning (_f ("cannot find or create new Bottom = \"%s\"",
+ context_id.c_str ()));
+ }
return this;
}