]> git.donarmstrong.com Git - lilypond.git/commitdiff
* scm/part-combiner.scm (make-autochange-music): use
authorHan-Wen Nienhuys <hanwen@xs4all.nl>
Wed, 11 Feb 2004 10:53:15 +0000 (10:53 +0000)
committerHan-Wen Nienhuys <hanwen@xs4all.nl>
Wed, 11 Feb 2004 10:53:15 +0000 (10:53 +0000)
accumulator. Fixes stack overflow.

ChangeLog
scm/part-combiner.scm

index c04e4e79e3f7066d576995c2ed6e3810973a3995..7f41d31b11a11a9c8aadea33cd097ff3a77f35ea 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -6,6 +6,10 @@
 
 2004-02-11  Han-Wen Nienhuys   <hanwen@xs4all.nl>
 
+       * scm/part-combiner.scm (make-autochange-music): use
+       accumulator. Fixes stack overflow.
+
+       * lily/*: rename brew_molecule -> print , molecule-callback -> print-function
        * lily/*: rename brew_molecule -> print , molecule-callback ->
        print-function
 
index 8996fa2739fb96b75288cc21a3aeb9317e0683e9..24ff8b9d77c04983555727c2f1dab70833bd3f30 100644 (file)
@@ -549,9 +549,9 @@ Only set if not set previously.
 
 (define-public (make-autochange-music music)
 
-  (define (generate-split-list event-list)
+  (define (generate-split-list event-list acc)
     (if (null? event-list)
-       '()
+       acc
        (let*
            ((evs (map car (cdar event-list)))
             (now (caar event-list))
@@ -564,22 +564,29 @@ Only set if not set previously.
 
        ;; tail recursive.
        (if (and pitch (not (= (ly:pitch-steps pitch) 0)))
-           (cons (cons now (sign (ly:pitch-steps pitch)))
-                 (generate-split-list (cdr event-list)))
-           (generate-split-list (cdr event-list)))
-       )))
+           (generate-split-list
+            (cdr event-list)
+            (cons (cons now (sign (ly:pitch-steps pitch))) acc))
+           (generate-split-list (cdr event-list) acc)
+           ))
+       ))
 
   (set! noticed '())
   
   (let*
       ((m (make-music-by-name 'AutoChangeMusic))
        (context (ly:run-translator music part-combine-listener))
-       (evs (last-pair noticed)) )
+       (evs (last-pair noticed))
+       (split
+       (reverse!
+        (generate-split-list (if (pair? evs)
+                                 (reverse! (cdar evs) '()) '())
+                             '())
+        '())
+       ))
 
     (ly:set-mus-property! m 'element music)
-    (ly:set-mus-property!
-     m 'split-list
-     (generate-split-list (if (pair? evs) (reverse! (cdar evs) '()) '())) )
+    (ly:set-mus-property! m 'split-list split)
     
     (set! noticed '())
     m