]> git.donarmstrong.com Git - lilypond.git/blobdiff - scm/lily.scm
* scm/paper.scm (paper-alist): public.
[lilypond.git] / scm / lily.scm
index 40d8a93b1521d6913d540baa5fe0109e4175756f..f870cb6254483fd7b681d991a64a22c72d5ebfc3 100644 (file)
@@ -19,6 +19,7 @@
             (srfi srfi-1)  ; lists
             (srfi srfi-13)) ; strings
 
+
 ; my display
 
 (define-public (myd k v) (display k) (display ": ") (display v) (display ", "))
 ;; parser stuff.
 (define-public (print-music-as-book parser music)
   (let* ((head  (ly:parser-lookup parser '$globalheader))
-        (book (ly:make-book (ly:parser-lookup parser $defaultbookpaper)
+        (book (ly:make-book (ly:parser-lookup parser $defaultpaper)
                             head score)))
     (ly:parser-print-book parser book)))
 
 (define-public (print-score-as-book parser score)
   (let*
       ((head  (ly:parser-lookup parser '$globalheader))
-       (book (ly:make-book (ly:parser-lookup parser $defaultbookpaper)
+       (book (ly:make-book (ly:parser-lookup parser $defaultpaper)
                           head score)))
     (ly:parser-print-book parser book)))
 
 (define-public (print-score parser score)
   (let* ((head  (ly:parser-lookup parser '$globalheader))
-        (book (ly:make-book (ly:parser-lookup parser $defaultbookpaper)
+        (book (ly:make-book (ly:parser-lookup parser $defaultpaper)
                             head score)))
     (ly:parser-print-score parser book)))
                
@@ -323,7 +324,8 @@ L1 is copied, L2 not.
   "Length of the number-pair X, when an interval"
   (max 0 (- (cdr x) (car x)))
   )
-  
+(define-public interval-start car)
+(define-public interval-end cdr)
 
 (define (other-axis a)
   (remainder (+ a 1) 2))
@@ -560,20 +562,36 @@ possibly turned off."
 
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 
 
-(define-public (postscript->pdf papersize name)
-  (let* ((cmd (string-append "ps2pdf -sPAPERSIZE=" papersize " " name))
-        (output-name
-         (regexp-substitute/global #f "\\.ps" name 'pre ".pdf" 'post)))
+(define-public (ly:system command)
+  (let*
+      ((status 0)
 
-    (newline (current-error-port))
-    (display (format (_ "Converting to `~a'...") output-name)
-            (current-error-port))
-    (newline (current-error-port))
+       (silenced
+       (string-append command (if (ly:get-option 'verbose)
+                                ""
+                                " > /dev/null 2>&1 "))))
     
     (if (ly:get-option 'verbose)
-       (display (format "Invoking `~a'..." cmd) (current-error-port)))
-
-  (system cmd)))
+       (format  (current-error-port) (_ "Invoking `~a'...\n") command))
+    
+    (set! status (system silenced))
+    (if (> status 0)
+       (format (current-error-port) (_ "Error invoking `~a'. Return value ~a")
+               silenced status))))
+
+;;
+;; ugh  -   double check this. We are leaking
+;; untrusted (user-settable) info to a command-line
+;;
+;; (regexp-substitute/global #f "[^[:alnum:]]" papersizename 'pre 'post))
+(define-public (postscript->pdf papersizename 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
@@ -581,16 +599,12 @@ possibly turned off."
           "ps2png --resolution="
           (if (number? resolution)
               (number->string resolution)
-              "90")
+              "90 ")
           (if (ly:get-option 'verbose)
               "--verbose "
               " ")
           name)))
-    (if (ly:get-option 'verbose)
-       (begin
-         (display (format (_ "Invoking `~a'...") cmd) (current-error-port))
-         (newline (current-error-port))))
-    (system cmd)))
+    (ly:system cmd)))
 
 (define-public (lilypond-main files)
   "Entry point for LilyPond."
@@ -612,3 +626,4 @@ possibly turned off."
          (newline (current-error-port))
          (exit 1))
        (exit 0))))
+