This makes things like
<fis \transpose c g fis>
work.
scm_is_pair (s); s = scm_cdr (s))
{
Music *mus = unsmob_music (scm_car (s));
- report_event (mus);
+ while (mus && mus->is_mus_type ("music-wrapper-music"))
+ mus = unsmob_music (mus->get_property ("element"));
+ if (mus)
+ report_event (mus);
}
for (SCM s = get_music ()->get_property ("events");
scm_is_pair (s); s = scm_cdr (s))
}
| music_function_chord_body
{
- if (!unsmob_music ($$)->is_mus_type ("rhythmic-event")) {
+ Music *m = unsmob_music ($1);
+
+ while (m && m->is_mus_type ("music-wrapper-music"))
+ m = unsmob_music (m->get_property ("element"));
+
+ if (!(m && m->is_mus_type ("rhythmic-event"))) {
parser->parser_error (@$, _ ("not a rhythmic event"));
$$ = SCM_UNDEFINED;
}