]> git.donarmstrong.com Git - lilypond.git/blobdiff - scm/backend-library.scm
Run grand-replace for 2010.
[lilypond.git] / scm / backend-library.scm
index db79c74aae71f4a11e22063e1e433d37e122e5a5..5116fecd823fb16317eed0b8705c9777a46f2e86 100644 (file)
@@ -1,9 +1,20 @@
-;;;; backend-library.scm -- helpers for the backends.
+;;;; This file is part of LilyPond, the GNU music typesetter.
 ;;;;
-;;;;  source file of the GNU LilyPond music typesetter
-;;;; 
-;;;; (c) 2005--2009 Jan Nieuwenhuizen <janneke@gnu.org>
+;;;; Copyright (C) 2005--2010 Jan Nieuwenhuizen <janneke@gnu.org>
 ;;;; Han-Wen Nienhuys <hanwen@xs4all.nl>
+;;;;
+;;;; LilyPond is free software: you can redistribute it and/or modify
+;;;; it under the terms of the GNU General Public License as published by
+;;;; the Free Software Foundation, either version 3 of the License, or
+;;;; (at your option) any later version.
+;;;;
+;;;; LilyPond is distributed in the hope that it will be useful,
+;;;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+;;;; GNU General Public License for more details.
+;;;;
+;;;; You should have received a copy of the GNU General Public License
+;;;; along with LilyPond.  If not, see <http://www.gnu.org/licenses/>.
 
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 
 ;; backend helpers.
@@ -85,7 +96,7 @@
  -dDEVICEHEIGHTPOINTS=~$"
                                        paper-width paper-height)))
 
-        (cmd (simple-format #f
+        (cmd (ly:format
                      "~a\
  ~a\
  ~a\
 
 (define-public (postprocess-output paper-book module filename formats)
   (let* ((completed (completize-formats formats))
-        (base (string-regexp-substitute "\\.[a-z]+$" "" filename))
+        (base (dir-basename filename ".ps" ".eps"))
         (intermediate (remove (lambda (x) (member x formats)) completed)))
-    
     (for-each (lambda (f)
                ((eval (string->symbol (format "convert-to-~a" f))
                       module) paper-book filename)) completed)
     (if (ly:get-option 'delete-intermediate-files)
        (for-each (lambda (f)
-                   (delete-file (string-append base "." f))) intermediate))))
+                   (if (file-exists? f) (delete-file f)))
+                 (map (lambda (x) (string-append base "." x)) intermediate)))))
 
 (define-public (completize-formats formats)
   (define new-fmts '())
       scope)))
   (apply string-append (map output-scope scopes)))
 
+(define missing-stencil-list '())
+
 (define-public (backend-testing output-module)
   (define (missing-stencil-expression name)
     (begin
-      (apply
-       (if (ly:get-option 'warning-as-error) ly:error ly:warning)
-       (list (_ "missing stencil expression `~S'") name))
+      (ly:warning (_ "missing stencil expression `~S'") name)
       ""))
 
   (map (lambda (x)
         (if (not (module-defined? output-module x))
-            (module-define! output-module x
-                            (lambda* (#:optional y . z)
-                              (missing-stencil-expression x)))))
-       (ly:all-stencil-expressions)))
+            (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))