From 2fa8d55c311660178ecaec81d025b217e879450a Mon Sep 17 00:00:00 2001 From: David Kastrup Date: Sun, 18 Dec 2011 15:15:18 +0100 Subject: [PATCH] Give display-lily-music and display-music optional port arguments. --- scm/music-functions.scm | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/scm/music-functions.scm b/scm/music-functions.scm index e007e6412f..80de207c69 100644 --- a/scm/music-functions.scm +++ b/scm/music-functions.scm @@ -19,7 +19,7 @@ ; for define-safe-public when byte-compiling using Guile V2 (use-modules (scm safe-utility-defs)) -;; (use-modules (ice-9 optargs)) +(use-modules (ice-9 optargs)) ;;; ly:music-property with setter ;;; (ly:music-property my-music 'elements) @@ -98,24 +98,23 @@ First it recurses over the children, then the function is applied to music (make-music 'Music))) ;must return music. -(define-public (display-music music) +(define*-public (display-music music #:optional (port (current-output-port))) "Display music, not done with @code{music-map} for clarity of presentation." - - (display music) - (display ": { ") + (display music port) + (display ": { " port) (let ((es (ly:music-property music 'elements)) (e (ly:music-property music 'element))) - (display (ly:music-mutable-properties music)) + (display (ly:music-mutable-properties music) port) (if (pair? es) - (begin (display "\nElements: {\n") - (map display-music es) - (display "}\n"))) + (begin (display "\nElements: {\n" port) + (for-each (lambda (m) (display-music m port)) es) + (display "}\n" port))) (if (ly:music? e) (begin - (display "\nChild:") - (display-music e)))) - (display " }\n") + (display "\nChild:" port) + (display-music e port)))) + (display " }\n" port) music) ;;; @@ -216,14 +215,15 @@ which often can be read back in order to generate an equivalent expression." (use-modules (srfi srfi-39) (scm display-lily)) -(define*-public (display-lily-music expr parser #:key force-duration) +(define*-public (display-lily-music expr parser #:optional (port (current-output-port)) + #:key force-duration) "Display the music expression using LilyPond syntax" (memoize-clef-names supported-clefs) (parameterize ((*indent* 0) (*previous-duration* (ly:make-duration 2)) (*force-duration* force-duration)) - (display (music->lily-string expr parser)) - (newline))) + (display (music->lily-string expr parser) port) + (newline port))) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -- 2.39.2