else if (ly_symbol2scm ("pop") == tag
|| ly_symbol2scm ("push") == tag
|| ly_symbol2scm ("assign") == tag
- || ly_symbol2scm ("unset") == tag)
+ || ly_symbol2scm ("unset") == tag
+ || ly_symbol2scm ("apply") == tag)
property_ops_ = scm_cons (mod, property_ops_);
else if (ly_symbol2scm ("alias") == tag)
context_aliases_ = scm_cons (sym, context_aliases_);
}
else if (type == ly_symbol2scm ("assign"))
tg->set_property (scm_car (entry), scm_cadr (entry));
+ else if (type == ly_symbol2scm ("apply"))
+ scm_apply_1 (scm_car (entry), tg->self_scm (), scm_cdr (entry));
}
}
(ly:music-property m 'symbol)
(ly:music-property m 'grob-property-path)))))
(case (ly:music-property m 'name)
+ ((ApplyContext)
+ (ly:add-context-mod mods
+ (list 'apply
+ (ly:music-property m 'procedure))))
((SequentialMusic SimultaneousMusic)
(for-each musicop (ly:music-property m 'elements)))
((ContextSpeccedMusic)
(case (ly:music-property m 'name)
((SequentialMusic SimultaneousMusic)
(fold loop mods (ly:music-property m 'elements)))
+ ((ApplyContext)
+ (ly:add-context-mod mods
+ (list 'apply
+ (ly:music-property m 'procedure))))
((ContextSpeccedMusic)
(let ((sym (ly:music-property m 'context-type)))
(if (eq? sym 'Bottom)