David Kastrup <d...@gnu.org> writes: > Aaron Hill <lilyp...@hillvisions.com> writes: > >> On 2020-07-28 10:15 am, David Kastrup wrote: >>> Aaron Hill <lilyp...@hillvisions.com> writes: >>> >>>> Feels like a hack, but would this help? >>>> %%%% >>>> \version "2.20.0" >>>> loremIpsum = \markuplist { >>>> \bold { Lorem ipsum } dolor sit amet, >>>> \italic consectetur adipiscing elit. >>>> } >>>> \markup { >>>> \override #'(line-width . 40) >>>> \wordwrap { $@loremIpsum $@loremIpsum $@loremIpsum } >>>> } >>>> %%%% >>> Why $@loremIpsum rather than \loremIpsum ? >> >> Because it does not work: >> >> ==== >> GNU LilyPond 2.20.0 >> Processing `markuplist.ly' >> Parsing... >> markuplist.ly:11:39: error: not a markup >> \wordwrap { \loremIpsum \loremIpsum >> \loremIpsum } >> /usr/local/lilypond/usr/share/lilypond/current/scm/lily.scm:1093:21: >> In procedure reverse! in expression (ly:parse-file file-name): >> /usr/local/lilypond/usr/share/lilypond/current/scm/lily.scm:1093:21: >> Wrong type argument in position 1: ("" (#<procedure bold-markup >> (layout props arg)> "Lorem") "elit." "adipiscing" (#<procedure >> italic-markup (layout props arg)> "consectetur") "amet," "sit" "dolor" >> (#<procedure bold-markup (layout props arg)> "ipsum") . #-7#) >> ==== >> >> >> -- Aaron Hill > > Ouch. It does work. Once. You call \loremIpsum more than once. > LilyPond operates under the premise "I can destroy input since it either > exists only once or is a copy" which is correct for music expressions. > But \loremIpsum does not create a copy. There is no copying guarantee > for non-music expressions in that manner. > > I have to see where we mess with markup expression input in that manner. > Hopefully not in too many places. > > So basically: it is supposed to work, but if people work around bugs (on > the assumption that LilyPond is weird enough that bombing out with some > strange error message on sane looking input means the user made a > mistake) rather than reporting them, stuff like this can go unnoticed > for long amounts of time.
<https://gitlab.com/lilypond/lilypond/-/merge_requests/284> -- David Kastrup