Dear LilyPond devs, I have a problem with the LilyPond markup parsing, which prevents me to finish my new release of LilyPondTool. Could you help me a bit on that?
I have this ly file ------------------ dot = \markup { "q" \musicglyph #"accordion.dot" } { c^\dot } ------------------ When the markup is parsed, it will become: ( "q" (musicglyph "accordion.dot")) through the rules: markup_braced_list -> markup_list -> markup_top -> full_markup -> identifier_init This really makes sense, but please correct me if I'm wrong. Now when I'm referring to it in c^\dot, the following code is run: if (Text_interface::is_markup (sid)) { .... return MARKUP_IDENTIFIER; } else if (Text_interface::is_markup_list (sid)) { .... return MARKUPLINES_IDENTIFIER; } The result of this must be MARKUP_IDENTIFIER (as only those can be used as direction_reqd_event -> gen_text_def -> full_markup But if I look in Text_interface.isMarkup, it will just do the following: return (scm_is_string (x) || (scm_is_pair (x) && SCM_BOOL_F != scm_object_property (scm_car (x), ly_symbol2scm ("markup-signature")))); } So my value, ( "q" (musicglyph "accordion.dot")) will not be considered as a markup, but instead a markup list, so I'm getting a parse error. Can you help me where I misunderstand the code? Thank you, Bertalan
_______________________________________________ lilypond-devel mailing list lilypond-devel@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-devel