From ffe9abeff111a8342ab82e6f203aa405336e010b Mon Sep 17 00:00:00 2001
From: Jan Nieuwenhuizen <janneke@gnu.org>
Date: Sat, 6 Nov 2004 11:41:12 +0000
Subject: [PATCH] * scm/paper.scm (paper-alist): public. *
 scm/framework-tex.scm (convert-to-ps): * scm/lily.scm (postscript->pdf): Do
 not leak papersizename into command line.  (backportme)

---
 ChangeLog             |  7 +++++++
 scm/framework-tex.scm |  9 +++++----
 scm/lily.scm          | 14 ++++++++------
 scm/paper.scm         |  2 +-
 4 files changed, 21 insertions(+), 11 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index 14ceefa954..57f7a0bc05 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2004-11-06  Jan Nieuwenhuizen  <janneke@gnu.org>
+
+	* scm/paper.scm (paper-alist): public.
+	* scm/framework-tex.scm (convert-to-ps):
+	* scm/lily.scm (postscript->pdf): Do not leak papersizename into
+	command line.  (backportme)
+
 2004-11-06  Han-Wen Nienhuys  <hanwen@xs4all.nl>
 
 	* scm/lily.scm (ly:system): add > /dev/null 2>&1 
diff --git a/scm/framework-tex.scm b/scm/framework-tex.scm
index 11083657aa..45c784096d 100644
--- a/scm/framework-tex.scm
+++ b/scm/framework-tex.scm
@@ -284,14 +284,15 @@
 	 (cmd (string-append "dvips "
 			     (if preview?
 				 " -E "
-				 (string-append " -t " papersizename))
+				 (if (member papersizename
+					     (map car paper-alist))
+				     (string-append "-t " papersizename)
+				     ""))
 			     (if landscape?
 				 " -t landscape "
 				 " ")
 			     "  -u+ec-mftrace.map -u+lilypond.map -Ppdf "
-			     base
-
-			     )))
+			     base)))
 
     (if (not (ly:get-option 'verbose))
 	(begin
diff --git a/scm/lily.scm b/scm/lily.scm
index a8117bd18a..f870cb6254 100644
--- a/scm/lily.scm
+++ b/scm/lily.scm
@@ -581,16 +581,18 @@ possibly turned off."
 
 ;;
 ;; ugh  -   double check this. We are leaking
-;; untrusted (user-settable) info to a command-line 
+;; untrusted (user-settable) info to a command-line
 ;;
+;; (regexp-substitute/global #f "[^[:alnum:]]" papersizename 'pre 'post))
 (define-public (postscript->pdf papersizename name)
-  (let* ((cmd (string-append "ps2pdf -sPAPERSIZE=" papersizename " " name))
-	 (output-name
-	  (regexp-substitute/global #f "\\.ps" name 'pre ".pdf" 'post)))
-    (format (current-error-port) (_ "Converting to `~a'...") output-name)
+  (let* ((set-papersize (if (member papersizename (map car paper-alist))
+			    (string-append "-sPAPERSIZE=" papersizename " ")
+			    ""))
+	 (cmd (string-append "ps2pdf " set-papersize name))
+	 (pdf-name (string-append (basename name ".ps") ".pdf" )))
+    (format (current-error-port) (_ "Converting to `~a'...") pdf-name)
     (ly:system cmd)))
 
-
 (define-public (postscript->png resolution name)
   (let
       ((cmd (string-append
diff --git a/scm/paper.scm b/scm/paper.scm
index a73549291e..0f747a1564 100644
--- a/scm/paper.scm
+++ b/scm/paper.scm
@@ -65,7 +65,7 @@
     (set-current-module old-mod)
     (module-define! old-mod '$defaultpaper new-paper)))
 
-(define paper-alist
+(define-public paper-alist
   '(("a6" . (cons (* 105 mm) (* 148.95 mm)))
     ("a5" . (cons (* 148.95 mm) (* 210 mm)))
     ("a4" . (cons (* 210 mm) (* 297.9 mm)))
-- 
2.39.5