]> git.donarmstrong.com Git - lilypond.git/blobdiff - lily/paper-outputter-scheme.cc
(LY_DEFINE): show file name when loading PFB.
[lilypond.git] / lily / paper-outputter-scheme.cc
index 4c61c6df5e8324f841d0c1d7086e480ef8b7f104..2c8af7e906ac001a61822bf23b7709df82fd48a8 100644 (file)
@@ -1,10 +1,9 @@
 /*
-  paper-outputter-scheme.cc --  implement Paper_outputter bindings
+  paper-outputter-scheme.cc -- implement Paper_outputter bindings
 
   source file of the GNU LilyPond music typesetter
 
   (c) 2005 Han-Wen Nienhuys <hanwen@xs4all.nl>
-
 */
 
 #include "paper-outputter.hh"
@@ -16,15 +15,15 @@ LY_DEFINE (ly_make_paper_outputter, "ly:make-paper-outputter",
           "Create an outputter that evaluates within "
           "@code{output-}@var{format}, writing to file @var{outname}.")
 {
-  SCM_ASSERT_TYPE(scm_is_string (outname), outname, SCM_ARG1, __FUNCTION__,
-                 "String");
-  SCM_ASSERT_TYPE(scm_is_string (format), format, SCM_ARG2, __FUNCTION__,
-                 "String");
-  
+  SCM_ASSERT_TYPE (scm_is_string (outname), outname, SCM_ARG1, __FUNCTION__,
+                  "String");
+  SCM_ASSERT_TYPE (scm_is_string (format), format, SCM_ARG2, __FUNCTION__,
+                  "String");
+
   String outname_str = ly_scm2string (outname);
   String f = ly_scm2string (format);
 
-  progress_indication (_f ("Layout output to `%s'...",
+  message (_f ("Layout output to `%s'...",
                           outname_str == "-"
                           ? String ("<stdout>")
                           : outname_str));
@@ -55,18 +54,17 @@ LY_DEFINE (ly_outputter_dump_string, "ly:outputter-dump-string",
   Paper_outputter *po = unsmob_outputter (outputter);
   SCM_ASSERT_TYPE (po, outputter, SCM_ARG1, __FUNCTION__, "Paper_outputter");
   SCM_ASSERT_TYPE (scm_is_string (str), str, SCM_ARG1, __FUNCTION__, "Paper_outputter");
-  
+
   return po->dump_string (str);
 }
 
-
 LY_DEFINE (ly_outputter_port, "ly:outputter-port",
           1, 0, 0, (SCM outputter),
           "Return output port for @var{outputter}.")
 {
   Paper_outputter *po = unsmob_outputter (outputter);
   SCM_ASSERT_TYPE (po, outputter, SCM_ARG1, __FUNCTION__, "Paper_outputter");
-  
+
   return po->file ();
 }
 
@@ -80,3 +78,15 @@ LY_DEFINE (ly_outputter_close, "ly:outputter-close",
   po->close ();
   return SCM_UNSPECIFIED;
 }
+
+LY_DEFINE (ly_outputter_output_scheme, "ly:outputter-output-scheme",
+          2, 0, 0, (SCM outputter, SCM expr),
+          "Eval @var{expr} in module of @var{outputter}.")
+{
+  Paper_outputter *po = unsmob_outputter (outputter);
+  SCM_ASSERT_TYPE (po, outputter, SCM_ARG1, __FUNCTION__, "Paper_outputter");
+
+  po->output_scheme (expr);
+
+  return SCM_UNSPECIFIED;
+}