From 637137c50f3b8d51fbd315fc61491a80f9953067 Mon Sep 17 00:00:00 2001 From: David Kastrup Date: Sun, 17 Mar 2013 13:16:51 +0100 Subject: [PATCH] Issue 3251: set-default-paper-size bleeds over to subsequent file compilations This patch lets set-default-paper-size copy $defaultpaper before modifying it. That way, restoring the original $defaultpaper at the end of each processed file should also restore the paper dimensions. --- scm/paper.scm | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/scm/paper.scm b/scm/paper.scm index fd600c9031..4cd029b75e 100644 --- a/scm/paper.scm +++ b/scm/paper.scm @@ -328,10 +328,14 @@ unless explicitly overriden in the name." (ly:warning (_ "Unknown paper size: ~a") name))))) (define-safe-public (set-default-paper-size name . rest) - (internal-set-paper-size - (ly:output-def-scope (eval '$defaultpaper (current-module))) - name - (memq 'landscape rest))) + (let* ((pap (module-ref (current-module) '$defaultpaper)) + (new-paper (ly:output-def-clone pap)) + (new-scope (ly:output-def-scope new-paper))) + (internal-set-paper-size + new-scope + name + (memq 'landscape rest)) + (module-set! (current-module) '$defaultpaper new-paper))) (define-public (set-paper-size name . rest) (if (module-defined? (current-module) 'is-paper) -- 2.39.2