X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=scm%2Flily.scm;h=8c680eeda9afa341b7f9811c6dd1c5a9274f6a6a;hb=88a236914aa32c6d05861ca944f6259c98d94cd0;hp=ecd29e3876fd13186d43fc8ba993cdb2d9ffb356;hpb=fedb5fe3fe4dda3c89c29af07a7b92cecd6eac70;p=lilypond.git diff --git a/scm/lily.scm b/scm/lily.scm index ecd29e3876..8c680eeda9 100644 --- a/scm/lily.scm +++ b/scm/lily.scm @@ -11,6 +11,8 @@ (if (defined? 'set-debug-cell-accesses!) (set-debug-cell-accesses! #f)) +;(set-debug-cell-accesses! 5000) + (use-modules (ice-9 regex) (ice-9 safe) (oop goops) @@ -29,12 +31,12 @@ (debug-enable 'backtrace) (read-enable 'positions))) -(define-public (line-column-location line col file) +(define-public (line-column-location file line col) "Print an input location, including column number ." (string-append (number->string line) ":" (number->string col) " " file)) -(define-public (line-location line col file) +(define-public (line-location file line col) "Print an input location, without column number ." (string-append (number->string line) " " file)) @@ -56,7 +58,8 @@ (define ifdef "First run this through cpp.") (define ifndef "First run this through cpp.") - +;; gettext wrapper +(define-public _ ly:gettext) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; @@ -94,21 +97,22 @@ ;; parser stuff. (define-public (print-music-as-book parser music) - (let* ( - (head (ly:parser-lookup parser '$globalheader)) - (book (ly:score-bookify score head))) + (let* ((head (ly:parser-lookup parser '$globalheader)) + (book (ly:make-book (ly:parser-lookup parser $defaultbookpaper) + head score))) (ly:parser-print-book parser book))) (define-public (print-score-as-book parser score) (let* ((head (ly:parser-lookup parser '$globalheader)) - (book (ly:score-bookify score head))) - + (book (ly:make-book (ly:parser-lookup parser $defaultbookpaper) + head score))) (ly:parser-print-book parser book))) (define-public (print-score parser score) (let* ((head (ly:parser-lookup parser '$globalheader)) - (book (ly:score-bookify score head))) + (book (ly:make-book (ly:parser-lookup parser $defaultbookpaper) + head score))) (ly:parser-print-score parser book))) (define-public (collect-scores-for-book parser score) @@ -118,7 +122,9 @@ )) (define-public (collect-music-for-book parser music) - (collect-scores-for-book parser (score (ly:music-scorify music)))) + (collect-scores-for-book parser (ly:music-scorify music))) + + ;;;;;;;;;;;;;;;; ; alist @@ -330,7 +336,8 @@ L1 is copied, L2 not. (define-public (write-me message x) - "Return X. Display MESSAGE and write X. Handy for debugging, possibly turned off." + "Return X. Display MESSAGE and write X. Handy for debugging, +possibly turned off." (display message) (write x) (newline) x) ;; x) @@ -411,16 +418,19 @@ L1 is copied, L2 not. text tuplet white-dot + white-text zigzag-line )) -;; TODO: generate this list by registering the output-backend-commands -;; output-backend-commands should have docstrings. +;; TODO: +;; - generate this list by registering the output-backend-commands +;; output-backend-commands should have docstrings. +;; - remove hard copies in output-ps output-tex (define-public (ly:all-output-backend-commands) "Return list of output backend commands." '( comment - define-origin + grob-cause no-origin placebox unknown @@ -525,8 +535,7 @@ L1 is copied, L2 not. (outfile (open-file (string-append "gcstat-" (number->string gc-protect-stat-count) ".scm" - ) "w")) - ) + ) "w"))) (display "DUMPING...\n") (display @@ -548,18 +557,55 @@ L1 is copied, L2 not. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +(define-public (postscript->pdf papersize name) + (let* ((cmd (string-append "ps2pdf -sPAPERSIZE=" papersize " " name)) + (output-name + (regexp-substitute/global #f "\\.ps" name 'pre ".pdf" 'post))) + + (newline (current-error-port)) + (display (format (_ "Converting to `~a'...") output-name) + (current-error-port)) + (newline (current-error-port)) + + (if (ly:get-option 'verbose) + (display (format "Invoking `~a'..." cmd) (current-error-port))) + + (system cmd))) + +(define-public (postscript->png resolution name) + (let + ((cmd (string-append + "ps2png --resolution=" + (if (number? resolution) + (number->string resolution) + "90") + (if (ly:get-option 'verbose) + "--verbose " + " ") + name))) + (if (ly:get-option 'verbose) + (begin + (display (format (_ "Invoking `~a'...") cmd) (current-error-port)) + (newline (current-error-port)))) + (system cmd))) + (define-public (lilypond-main files) "Entry point for LilyPond." (let* ((failed '()) (handler (lambda (key arg) (set! failed (cons arg failed))))) (for-each - (lambda (f) (catch 'ly-file-failed (lambda () (ly:parse-file f)) handler)) + (lambda (f) + (catch 'ly-file-failed (lambda () (ly:parse-file f)) handler) +;;; (dump-gc-protects) + ) files) (if (pair? failed) (begin - (display - (string-append "\n *** Failed files: " (string-join failed) "\n")) + (newline (current-error-port)) + (display (_ "error: failed files: ") (current-error-port)) + (display (string-join failed) (current-error-port)) + (newline (current-error-port)) + (newline (current-error-port)) (exit 1)) (exit 0)))) -