]> git.donarmstrong.com Git - lilypond.git/commitdiff
Take parser from (currentmodule) in 2-pass page-layout functions
authorHan-Wen Nienhuys <hanwen@xs4all.nl>
Sat, 6 Jan 2007 18:59:20 +0000 (19:59 +0100)
committerHan-Wen Nienhuys <hanwen@xs4all.nl>
Sat, 6 Jan 2007 18:59:20 +0000 (19:59 +0100)
scm/layout-page-dump.scm
scm/layout-page-layout.scm
scm/lily-library.scm

index 50815ac2ef8c833603eb91f223ac8b120e53fdf2..8237106f063ff967f447d05ae27cde2dd41a307b 100644 (file)
        (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)
                (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)))
index f7853b01bbb0128cde2c7d31cc83047bd1e62d25..9e8971ac7e1df569cdc158305169c777334e71ed 100644 (file)
 (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
index 53b5e58f240bc4b39df8fcd9b37c43c90565c155..e3a59a64391a6a24c46eec53e1c09ab6c2ffeebd 100644 (file)
   (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))