[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: markup->string and user markup commands
From: |
Thomas Morley |
Subject: |
Re: markup->string and user markup commands |
Date: |
Fri, 9 Nov 2018 00:23:52 +0100 |
Am Do., 8. Nov. 2018 um 21:00 Uhr schrieb Jérôme Plût <address@hidden>:
>
>
> #(begin
> ; after http://lsr.di.unimi.it/LSR/Snippet?id=969
> (define-markup-command (with-background layout props color arg) (color?
> markup?)
> (let* ((stencil (interpret-markup layout props arg))
> (X-ext (ly:stencil-extent stencil X))
> (Y-ext (ly:stencil-extent stencil Y)))
> (ly:stencil-add (ly:make-stencil
> (list 'color color
> (ly:stencil-expr (ly:round-filled-box X-ext Y-ext 0))
> X-ext Y-ext)) stencil)))
> (display "\"")
> (display (markup->string (markup #:with-background `(1. 0. 0.) "something")))
> (display "\"")
> )
>
> This should display "something". However it displays an empty string.
> How could I fix this?
>
> (I tried to manually debug markup->string (in scm/markup.scm): as I
> understand it, the problem is likely that with-background does not
> belong to the 'lily module. However, I am completely unfamiliar with
> guile's module system, so I don't have the slightest idea about how to
> fix this).
>
> Thanks,
>
> --
> Jérôme
You could do
(define all-relevant-markup-commands
;; Returns a list containing the names of all markup-commands and
;; markup-list-commands with predicate @code{cheap-markup?} or
;; @code{markup-list?} in their @code{markup-command-signature}.
;; @code{table-of-contents} is not caught, same for user-defined commands.
;; markup-commands from @code{markup-commands-to-ignore} are removed.
(lset-difference eq?
(map car
(filter
(lambda (x)
(let* ((predicates (markup-command-signature (cdr x))))
(and predicates
(not
(null?
(lset-intersection eq?
'(cheap-markup? markup-list?)
(map procedure-name predicates)))))))
;;;; !!!!!!!!!!!!!!
(append
(ly:module->alist (current-module))
(ly:module->alist (resolve-module '(lily))))))
markup-commands-to-ignore))
in markup->string from markup.scm
Not sure about unwished side-effects, though.
Cheers,
Harm