From 02dae638aaf191a3d502a25b20192011fdcc9c01 Mon Sep 17 00:00:00 2001 From: Han-Wen Nienhuys Date: Sat, 6 Jan 2007 19:59:20 +0100 Subject: [PATCH] Take parser from (currentmodule) in 2-pass page-layout functions --- scm/layout-page-dump.scm | 13 ++++++------- scm/layout-page-layout.scm | 10 ++++++++-- scm/lily-library.scm | 2 ++ 3 files changed, 16 insertions(+), 9 deletions(-) diff --git a/scm/layout-page-dump.scm b/scm/layout-page-dump.scm index 50815ac2ef..8237106f06 100644 --- a/scm/layout-page-dump.scm +++ b/scm/layout-page-dump.scm @@ -70,12 +70,11 @@ (format out-port "~a\n~a\n" skip base) (dump-tweaks out-port (cdr tweak-list) (graceless-moment now))))) -(define (dump-all-tweaks pages tweaks) - (let* ((paper (ly:paper-book-paper (page-property (car pages) 'paper-book))) - (parser (ly:output-def-parser paper)) - (name (format "~a-page-layout.ly" - (ly:parser-output-name parser))) +(define (dump-all-tweaks pages tweaks output-name) + (let* ((paper (ly:paper-book-paper (page-property (car pages) 'paper-book))) + (name (format "~a-page-layout.ly" output-name)) (out-port (open-output-file name))) + (ly:message "Writing page layout to ~a" name) (hash-for-each (lambda (key val) @@ -85,7 +84,7 @@ tweaks) (close-port out-port))) -(define (write-page-breaks pages) +(define (write-page-breaks pages output-name) "Dump page breaks and tweaks" (let ((tweaks (make-hash-table 60))) (define (handle-page page) @@ -145,4 +144,4 @@ (record-line-tweak (cdr lines) #f (1+ index))))))) ;; Compute tweaks for each page, then dump them to the page-layout file (for-each handle-page pages) - (dump-all-tweaks pages tweaks))) + (dump-all-tweaks pages tweaks output-name))) diff --git a/scm/layout-page-layout.scm b/scm/layout-page-layout.scm index f7853b01bb..9e8971ac7e 100644 --- a/scm/layout-page-layout.scm +++ b/scm/layout-page-layout.scm @@ -35,8 +35,14 @@ (define (post-process-pages layout pages) "If the write-page-layout paper variable is true, dumps page breaks and tweaks." - (if (ly:output-def-lookup layout 'write-page-layout #f) - (write-page-breaks pages))) + + (let* + ((parser (ly:modules-lookup (list (current-module)) 'parser)) + (output-name (ly:parser-output-name parser)) + ) + + (if (ly:output-def-lookup layout 'write-page-layout #f) + (write-page-breaks pages output-name)))) ;;; ;;; Utilities for computing line distances and positions diff --git a/scm/lily-library.scm b/scm/lily-library.scm index 53b5e58f24..e3a59a6439 100644 --- a/scm/lily-library.scm +++ b/scm/lily-library.scm @@ -82,9 +82,11 @@ (let* ((paper (ly:parser-lookup parser '$defaultpaper)) (layout (ly:parser-lookup parser '$defaultlayout)) + (count (ly:parser-lookup parser 'output-count)) (base (ly:parser-output-name parser))) + ;; must be careful: output-count is under user control. (if (not (integer? count)) (set! count 0)) -- 2.39.2