]> git.donarmstrong.com Git - lilypond.git/commitdiff
Fix completely broken Scheme functions
authorDavid Kastrup <dak@gnu.org>
Tue, 13 Sep 2011 09:27:20 +0000 (11:27 +0200)
committerDavid Kastrup <dak@gnu.org>
Tue, 13 Sep 2011 09:27:20 +0000 (11:27 +0200)
scm/ly-syntax-constructors.scm
scm/music-functions.scm

index 4dbf5b1d34f6fd4ab0bea2bd6fc3978869d16248..6d0290d5f5a228783359740cd8d258c3a4aeb69d 100644 (file)
        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))
index 661d73e4097b64e1b82b104e0b4726c340949fdf..1d88c4f0db91c8e31ed9f00d160ad3c112195915 100644 (file)
@@ -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))
 
 
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;