(if (ly:music? m) (ly:set-origin! m) m)
(music-function-call-error fun m))
(and (pair? sigcar)
- (if (ly:music (cdr sigcar))
+ (if (ly:music? (cdr sigcar))
(ly:music-deep-copy (cdr sigcar) (*location*))
(cdr sigcar))))))
'grob-property-path (cdr path)))
context)))
+;; The signature here is slightly fishy since the "fallback return
+;; value" is not actually music but #f. This used to be (void-music)
+;; but triggered "Parsed object should be dead" warnings for music
+;; objects outside of the current parser session/module. The called
+;; functions always deliver music and are used from the parser in a
+;; manner where only the last argument is provided from outside the
+;; parser, and its predicate "scheme?" is always true. So the
+;; fallback value will never get used and its improper type is no
+;; issue.
(define-public property-override-function
(ly:make-music-function
- (list (cons ly:music? (void-music)) symbol? symbol-list? scheme?)
+ (list (cons ly:music? #f) symbol? symbol-list? scheme?)
property-override))
(define-public property-set-function
(ly:make-music-function
- (list (cons ly:music? (void-music)) symbol? symbol? scheme?)
+ (list (cons ly:music? #f) symbol? symbol? scheme?)
property-set))
(define (get-first-context-id! mus)
'origin (ly:music-property music 'origin))))
(voice-type (ly:music-property voice 'context-type))
(lyricstos (map
- (lambda (mus)
+ (lambda (mus+mods)
(with-location
- (ly:music-property mus 'origin)
+ (ly:music-property (car mus+mods) 'origin)
(ly:set-origin! (make-music 'ContextSpeccedMusic
'create-new #t
'context-type 'Lyrics
+ 'property-operations (cdr mus+mods)
'element
(lyric-combine
- voice-name voice-type mus)))))
+ voice-name voice-type
+ (car mus+mods))))))
addlyrics-list)))
(make-simultaneous-music (cons voice lyricstos))))