From: David Kastrup Date: Sun, 17 Mar 2013 12:16:51 +0000 (+0100) Subject: Issue 3251: set-default-paper-size bleeds over to subsequent file compilations X-Git-Tag: release/2.17.15-1~17^2~4 X-Git-Url: https://git.donarmstrong.com/?a=commitdiff_plain;h=637137c50f3b8d51fbd315fc61491a80f9953067;p=lilypond.git 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. --- 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)