David Kastrup <d...@gnu.org> writes:

> Thomas Morley <thomasmorle...@gmail.com> writes:
>
>> Hi,
>>
>> the following works fine with current master (and every tested lily-version):
>> #(begin
>>  (define-markup-command (dummy layout props arg) (markup?)
>>    (interpret-markup layout props arg))
>>  (display-scheme-music (markup #:dummy "foo")))
>> #(display "whatever")
>>
>> With guilev2 I get:
>> $ lilypond-git-guile-2.2 atest-85.ly
>> GNU LilyPond 2.21.0
>> Processing `atest-85.ly'
>> Parsing...
>> fatal error: Not a markup command: dummy
>>
>> Not even the later 'display' is reached.
>>
>> Though this works:
>> #(define-markup-command (dummy layout props arg) (markup?)
>>    (interpret-markup layout props arg)
>> #(display-scheme-music (markup #:dummy "foo")))
>> #(display "whatever")
>>
>>
>> I'm not able to track this down, anyone with some insight?
>
> I think that Guilev2 may do the syntax form expansion concerning
> "markup" before executing the define-markup-command when both are
> contained in one begin form.  Macros are executed a bit differently in
> Guilev2 than in Guilev1.

The markup macro is a piece of crock anyway.  Use
(display-scheme-music (make-dummy-markup "foo"))
or
(display-scheme-music #{ \markup \dummy foo #})
here to get out of that predicament.

-- 
David Kastrup

_______________________________________________
lilypond-devel mailing list
lilypond-devel@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-devel

Reply via email to