2015-07-03 21:07 GMT+02:00 markdblackwell <markdblackwel...@gmail.com>: > If a user passes a wrong bar number to \barNumberCheck, LilyPond 2.19.22 > produces a Scheme error: > >>lilypond tiny-example.ly > GNU LilyPond 2.19.22 > Processing `tiny-example.ly' > Parsing... > Interpreting > music...C:/progra/lilypond/current/usr/share/lilypond/current/ly/music-functions-init.ly:220:24: > In procedure ly:input-warning in expression (ly:input-warning (*location*) > "Barcheck failed got ~a expect ~a" ...): > C:/progra/lilypond/current/usr/share/lilypond/current/ly/music-functions-init.ly:220:24: > Wrong type argument in position 1 (expecting Input): #f > > Tiny-example.ly contains the following code: > > \version "2.19.18" % Please ignore this version number! > notes = { > c'2 d' > \barNumberCheck #3 > } > \book { > \bookOutputName "barNumberCheck-tiny-example-test" > \score { > \notes > \layout { } > } > } > > I'm using Windows XP.
Confirmed on Linux. Seems the call for (*location*) inside (make-music 'ApplyContext 'procedure ...) doesn't work. As workaround use: barNumberCheck = #(define-music-function (n) (integer?) (_i "Print a warning if the current bar number is not @var{n}.") (let ((location (*location*))) ;(display "location: ")(display (*location*)) (make-music 'ApplyContext 'procedure (lambda (c) (let ((cbn (ly:context-property c 'currentBarNumber))) ;(display "location: ")(display (*location*)) (if (and (number? cbn) (not (= cbn n))) (ly:input-warning location "Barcheck failed got ~a expect ~a" cbn n))))))) Cheers, Harm _______________________________________________ bug-lilypond mailing list bug-lilypond@gnu.org https://lists.gnu.org/mailman/listinfo/bug-lilypond