"If string FOO is given as argument, redirect
output to log file `FOO.log'.")
(max-markup-depth 1024
-"Maximum depth for the markup tree. If a markup has more levels, assume that
-it will not terminate at all and print out a warning, but continue processing.")
+"Maximum depth for the markup tree. If a markup has more levels,
+assume it will not terminate on its own, print a warning and return a
+null markup instead.")
(midi-extension ,(if (eq? PLATFORM 'windows)
"mid"
"midi")
(set-module-obarray! iface (module-obarray mod))))))
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-(define (type-check-list location signature arguments)
- "Typecheck a list of arguments against a list of type predicates.
-Print a message at LOCATION if any predicate failed."
- (define (recursion-helper signature arguments count)
- (define (helper pred? arg count)
- (if (not (pred? arg))
- (begin
- (ly:input-warning
- location
- (_ "wrong type for argument ~a. Expecting ~a, found ~s")
- count (type-name pred?) arg)
- #f)
- #t))
-
- (if (null? signature)
- #t
- (and (helper (car signature) (car arguments) count)
- (recursion-helper (cdr signature) (cdr arguments) (1+ count)))))
- (recursion-helper signature arguments 1))
-
+(define (type-check-arg location arg args pred?)
+ "Typecheck an argument after previous arguments.
+Print a message at LOCATION if predicate fails and return #f"
+ (or (pred? arg)
+ (begin
+ (ly:input-warning
+ location
+ (_ "wrong type for argument ~a. Expecting ~a, found ~s")
+ (1+ (length args)) (type-name pred?) arg)
+ #f)))
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; Safe definitions utility
"define-grob-interfaces.scm"
"define-stencil-commands.scm"
"titling.scm"
+ "text.scm"
"paper.scm"
"backend-library.scm"
(define-public lilypond-exported-predicates
`((,ly:box? . "box")
(,ly:context? . "context")
+ (,ly:context-mod? . "context modification")
(,ly:dimension? . "dimension, in staff space")
(,ly:dir? . "direction")
(,ly:dispatcher? . "dispatcher")
(,ly:duration? . "duration")
+ (,ly:event? . "event")
(,ly:font-metric? . "font metric")
(,ly:grob? . "graphical (layout) object")
(,ly:grob-array? . "array of grobs")
(,ly:stream-event? . "stream event")
(,ly:translator? . "translator")
(,ly:translator-group? . "translator group")
+ (,ly:unpure-pure-container? . "unpure/pure container")
))
(if (ly:get-option 'trace-memory-frequency)
(mtrace:start-trace (ly:get-option 'trace-memory-frequency)))
(lilypond-file handler x)
+ (ly:check-expected-warnings)
(if start-measurements
(dump-profile x start-measurements (profile-measurements)))
(if (ly:get-option 'trace-memory-frequency)