On 11/1/2017 7:28 PM, Thomas Morley wrote:
There was a change in type-predicate for spanner-id. It's now 'key?'.
In process-music of he engraver do

       ((process-music trans)
        ;; Move begun spanners from 'spanners' to 'finished'.  We do this
        ;; on the basis of 'spanner-id.  If we find a match--either
        ;; the strings are the same, or both are unset--a transfer
        ;; can be made.  Return a warning if we find no match: spanner
        ;; hasn't been properly begun.
        (for-each
         (lambda (es)
           (let ((es-id (ly:event-property es 'spanner-id)))
             (let loop ((sp spanners))
               (if (null? sp)
                   (ly:warning "No spanner to end!!")
                   (let ((sp-id (ly:event-property
                                 (event-cause (cdar sp)) 'spanner-id)))
                     (cond
                      ((or
                        ;;(and
                        ;; (string? sp-id)
                        ;; (string? es-id)
                        ;; (string=? sp-id es-id))
                        (and
                         (index? sp-id)
                         (index? es-id)
                         (eqv? sp-id es-id))
                        (and
                         (null? sp-id)
                         (null? es-id)))
                       (set! finished (cons (cdar sp) finished))
                       (set! spanners (remove (lambda (s) (eq? s (car
sp))) spanners)))
                      (else (loop (cdr sp)))))))))
         stop-events)


Yes indeed you are right...

This works great, thank you!! :)
(see attached)
_______________________________________________
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user

Reply via email to