X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=lily%2Fmusic-function.cc;h=392aeb3a59237c8c86a55fe7616dc478ab5b2e76;hb=f0968255554403de5d86b7e6efff5e644cba7f7a;hp=ed7e3fa4e6ecf2cf72cdfe8edc696d31fbf7f6a8;hpb=feb0b96b015c19f2c215326689924acabce0c9a5;p=lilypond.git diff --git a/lily/music-function.cc b/lily/music-function.cc index ed7e3fa4e6..392aeb3a59 100644 --- a/lily/music-function.cc +++ b/lily/music-function.cc @@ -6,8 +6,9 @@ (c) 2004 Han-Wen Nienhuys */ + #include "music-function.hh" -#include "string.hh" + #include "music.hh" static scm_t_bits music_function_tag; @@ -35,17 +36,19 @@ LY_DEFINE (ly_make_music_function, "ly:make-music-function", 2, 0, 0, "@code{ly:music?} predicates or other type predicates.") { String str = ""; - for (SCM s = signature; ly_c_pair_p (s); s = ly_cdr (s)) + for (SCM s = signature; scm_is_pair (s); s = scm_cdr (s)) { if (str != "") str += "-"; - if (ly_car (s) == Music_type_p_proc) + if (scm_car (s) == Music_type_p_proc) str += "music"; - else if (ly_c_procedure_p (ly_car (s))) + else if (scm_car (s) == ly_scheme_function("markup?")) + str += "markup"; + else if (ly_c_procedure_p (scm_car (s))) str += "scm"; } - + if (str == "") str = "noarg"; scm_set_object_property_x (func, ly_symbol2scm ("music-function-signature"), signature);