From 02195cb553879f36f008c62588615822a007eabb Mon Sep 17 00:00:00 2001 From: David Kastrup Date: Tue, 13 Sep 2011 11:27:20 +0200 Subject: [PATCH] Fix completely broken Scheme functions --- scm/ly-syntax-constructors.scm | 6 ++++-- scm/music-functions.scm | 2 +- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/scm/ly-syntax-constructors.scm b/scm/ly-syntax-constructors.scm index 4dbf5b1d34..6d0290d5f5 100644 --- a/scm/ly-syntax-constructors.scm +++ b/scm/ly-syntax-constructors.scm @@ -43,13 +43,15 @@ m))) ;; Music function: Apply function and check return value. -(define-ly-syntax-loc (music-function parser loc pred fun args) +(define-ly-syntax (music-function parser loc pred fun args) (let ((m (apply fun parser loc args))) + (if (ly:music? m) + (set! (ly:music-property m 'origin) loc)) (if (pred m) m (cond ((eq? pred ly:music?) (ly:parser-error parser (_ "Music syntax function must return Music object") loc) - (make-music 'Music)) + (make-music 'Music 'origin loc)) (else (ly:parser-error parser (format #f (_ "Scheme function must return ~a object") (type-name pred)) diff --git a/scm/music-functions.scm b/scm/music-functions.scm index 661d73e409..1d88c4f0db 100644 --- a/scm/music-functions.scm +++ b/scm/music-functions.scm @@ -792,7 +792,7 @@ Syntax: (define-scheme-function (parser location arg1 arg2 ...) (arg1-type? arg2-type? ...) ...function body...) " - `(define-syntax-function ly:scheme? ,@rest)) + `(define-syntax-function scheme? ,@rest)) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -- 2.39.5