]> git.donarmstrong.com Git - lilypond.git/commitdiff
Fix i10n wrapper for music function docstrings
authorNicolas Sceaux <nicolas.sceaux@free.fr>
Thu, 1 Jan 2009 18:43:45 +0000 (19:43 +0100)
committerNicolas Sceaux <nicolas.sceaux@free.fr>
Thu, 1 Jan 2009 18:43:45 +0000 (19:43 +0100)
scm/music-functions.scm

index f425eb17385f63edcc5bca8b2677b488155a6dd9..bc1cadace77166f1a68bbe43144e2c913998758e 100644 (file)
@@ -735,9 +735,18 @@ Syntax:
   (define-music-function (parser location arg1 arg2 ...) (arg1-type? arg2-type? ...)
     ...function body...)
 "
-  `(ly:make-music-function (list ,@signature)
-                          (lambda (,@args)
-                            ,@body)))
+  (if (and (pair? body) (pair? (car body)) (eqv? '_i (caar body)))
+      ;; When the music function definition contains a i10n doc string,
+      ;; (_i "doc string"), keep the literal string only
+      (let ((docstring (cadar body))
+           (body (cdr body)))
+       `(ly:make-music-function (list ,@signature)
+                                (lambda (,@args)
+                                  ,docstring
+                                  ,@body)))
+      `(ly:make-music-function (list ,@signature)
+                              (lambda (,@args)
+                                ,@body))))
 
 
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;