From d2dd8f363d2c0a59c85d11b29a882df37f31975b Mon Sep 17 00:00:00 2001 From: Nicolas Sceaux Date: Sun, 30 May 2004 12:25:31 +0000 Subject: [PATCH] (addlyrics): set the 'origin property with the location argument in music function definitions. --- ChangeLog | 5 ++++ ly/music-functions-init.ly | 49 ++++++++++++++++++++++---------------- 2 files changed, 34 insertions(+), 20 deletions(-) diff --git a/ChangeLog b/ChangeLog index abd9c68e7c..4dba19523b 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2004-05-30 Nicolas Sceaux + + * ly/music-functions-init.ly (addlyrics): set the 'origin property + with the location argument in music function definitions. + 2004-05-30 Han-Wen Nienhuys * lily/paper-book.cc (split_string): new function diff --git a/ly/music-functions-init.ly b/ly/music-functions-init.ly index 1d34fca85a..9ff677973e 100644 --- a/ly/music-functions-init.ly +++ b/ly/music-functions-init.ly @@ -14,27 +14,14 @@ applymusic = #(def-music-function (location func music) (procedure? ly:music?) (func music)) addlyrics = #(def-music-function (location music lyrics) (ly:music? ly:music?) - (make-music 'LyricCombineMusic 'elements (list music lyrics))) - -#(use-modules (srfi srfi-1)) -#(define-public (symbol-or-symbols? obj) - "Return #t iif obj is a symbol or a symbol list." - (or (symbol? obj) - (and (list? obj) - (null? (remove symbol? obj))))) - -%{ -%% \mytag #'foo { ... } ==> OK -%% c-\mytag #'foo ^4 ==> KO -mytag = #(def-music-function (location tagname music) (symbol-or-symbols? ly:music?) - (set! (ly:music-property music 'tags) - ((if (list? tagname) append cons) tagname (ly:music-property music 'tags))) - music) -%} + (make-music 'LyricCombineMusic + 'origin location + 'elements (list music lyrics))) #(defmacro def-grace-function (start stop) `(def-music-function (location music) (ly:music?) (make-music 'GraceMusic + 'origin location 'element (make-music 'SequentialMusic 'elements (list (ly:music-deep-copy ,start) music @@ -50,13 +37,35 @@ autochange = #(def-music-function (location music) (ly:music?) (make-autochange-music music)) applycontext = #(def-music-function (location proc) (procedure?) - (make-music 'ApplyContext 'procedure proc)) + (make-music 'ApplyContext + 'origin location + 'procedure proc)) applyoutput = #(def-music-function (location proc) (procedure?) - (make-music 'ApplyOutputEvent 'procedure proc)) + (make-music 'ApplyOutputEvent + 'origin location + 'procedure proc)) breathe = #(def-music-function (location) () - (make-music 'EventChord 'elements (list (make-music 'BreathingSignEvent)))) + (make-music 'EventChord + 'origin location + 'elements (list (make-music 'BreathingSignEvent)))) + +%% \mytag #'foo { ... } ==> OK +%% c-\mytag #'foo ^4 ==> KO +%{ +#(use-modules (srfi srfi-1)) +#(define-public (symbol-or-symbols? obj) + "Return #t iif obj is a symbol or a symbol list." + (or (symbol? obj) + (and (list? obj) + (null? (remove symbol? obj))))) + +mytag = #(def-music-function (location tagname music) (symbol-or-symbols? ly:music?) + (set! (ly:music-property music 'tags) + ((if (list? tagname) append cons) tagname (ly:music-property music 'tags))) + music) +%} %{ -- 2.39.5