]> git.donarmstrong.com Git - lilypond.git/blobdiff - scm/backend-library.scm
Merge branch 'lilypond/translation' of ssh://git.sv.gnu.org/srv/git/lilypond into...
[lilypond.git] / scm / backend-library.scm
index c2c89eed77ed71f90a327b2f9b77f502636850c3..9fa094f51892e3eb0e0cad2186c1922ba97bf0b3 100644 (file)
@@ -2,12 +2,15 @@
 ;;;;
 ;;;;  source file of the GNU LilyPond music typesetter
 ;;;; 
-;;;; (c) 2005--2007 Jan Nieuwenhuizen <janneke@gnu.org>
+;;;; (c) 2005--2009 Jan Nieuwenhuizen <janneke@gnu.org>
 ;;;; Han-Wen Nienhuys <hanwen@xs4all.nl>
 
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 
 ;; backend helpers.
 
+(use-modules (scm ps-to-png)
+            (ice-9 optargs))
+
 (define-public (ly:system command . rest)
   (let* ((status 0)
         (dev-null "/dev/null")
@@ -16,7 +19,9 @@
                       command
                       (format #f "~a > ~a 2>&1 " command dev-null))))
     (if (ly:get-option 'verbose)
-       (ly:message (_ "Invoking `~a'...") command))
+       (begin
+         (ly:message (_ "Invoking `~a'...") command))
+         (ly:progress "\n"))
 
     (set! status
          (if (pair? rest)
                    ".pdf"))
         (is-eps (string-match "\\.eps$" name))
         (paper-size-string (if is-eps
-                               " -dEPSCrop "
-                               (ly:format "-dDEVICEWIDTHPOINTS=~$ \
--dDEVICEHEIGHTPOINTS=~$ "
-                                       paper-width paper-height )))
+                               "-dEPSCrop"
+                               (ly:format "-dDEVICEWIDTHPOINTS=~$\
+ -dDEVICEHEIGHTPOINTS=~$"
+                                       paper-width paper-height)))
 
         (cmd (simple-format #f
                      "~a\
  ~a\
  ~a\
  ~a\
- -dCompatibilityLevel=1.4 \
+ -dCompatibilityLevel=1.4\
  -dNOPAUSE\
  -dBATCH\
- -r1200 \
+ -r1200\
  -sDEVICE=pdfwrite\
  -sOutputFile=~S\
  -c .setpdfwrite\
                      (if (ly:get-option 'verbose) "" "-q")
                      (if (or (ly:get-option 'gs-load-fonts)
                              (ly:get-option 'gs-load-lily-fonts))
-                             
-                         " -dNOSAFER "
-                         " -dSAFER ")
+                         "-dNOSAFER"
+                         "-dSAFER")
                      paper-size-string
                      pdf-name
                      name)))
     (ly:progress "\n")
     (ly:system cmd)))
 
-(use-modules (scm ps-to-png))
-
 (define-public (postscript->png resolution paper-width paper-height name)
   (let* ((verbose (ly:get-option 'verbose))
         (rename-page-1 #f))
       (set! formats (cons "ps" formats)))
   (for-each (lambda (x)
              (if (member x formats) (set! new-fmts (cons x new-fmts))))
-           '("tex" "dvi" "ps" "pdf" "png"))
+           '("ps" "pdf" "png"))
   (uniq-list (reverse new-fmts)))
 
 (define (header-to-file file-name key value)
       scope)))
   (apply string-append (map output-scope scopes)))
 
+(define missing-stencil-list '())
+
+(define-public (backend-testing output-module)
+  (define (missing-stencil-expression name)
+    (begin
+      (ly:warning (_ "missing stencil expression `~S'") name)
+      ""))
+
+  (map (lambda (x)
+        (if (not (module-defined? output-module x))
+            (begin
+              (module-define! output-module x
+                              (lambda* (#:optional y . z)
+                                (missing-stencil-expression x)))
+              (set! missing-stencil-list (append (list x)
+                                                 missing-stencil-list)))))
+       (ly:all-stencil-commands)))
+
+(define-public (remove-stencil-warnings output-module)
+  (for-each
+    (lambda (x)
+      (module-remove! output-module x))
+    missing-stencil-list))