source file of the GNU LilyPond music typesetter
- (c) 2005 Han-Wen Nienhuys <hanwen@xs4all.nl>
+ (c) 2005--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
*/
#include "paper-outputter.hh"
-#include "warn.hh"
-#include "stencil.hh"
-
+#include "international.hh"
+#include "stencil.hh"
+#include "warn.hh"
LY_DEFINE (ly_make_paper_outputter, "ly:make-paper-outputter",
2, 0, 0, (SCM port, SCM format),
- "Create an outputter that evaluates within "
- "@code{output-}@var{format}, writing to @var{port}.")
+ "Create an outputter that evaluates within"
+ " @code{output-}@var{format}, writing to @var{port}.")
{
- SCM_ASSERT_TYPE (ly_is_port (port), port, SCM_ARG1, __FUNCTION__,
- "port");
- SCM_ASSERT_TYPE (scm_is_string (format), format, SCM_ARG2, __FUNCTION__,
- "String");
+ LY_ASSERT_TYPE (ly_is_port, port, 1);
+ LY_ASSERT_TYPE (ly_is_symbol, format, 2);
- String f = ly_scm2string (format);
+ string f = ly_symbol2string (format);
+ string output_name = "<unknown>";
- String output_name = "<unknown>";
-
SCM port_name = scm_port_filename (port);
if (scm_is_string (port_name))
output_name = ly_scm2string (port_name);
-
+
message (_f ("Layout output to `%s'...",
- output_name.to_str0 ()));
+ output_name.c_str ()));
progress_indication ("\n");
Paper_outputter *po = new Paper_outputter (port, f);
- scm_gc_unprotect_object (po->self_scm ());
+ po->unprotect ();
return po->self_scm ();
}
2, 0, 0, (SCM outputter, SCM stencil),
"Dump stencil @var{expr} onto @var{outputter}.")
{
+
+ LY_ASSERT_SMOB (Paper_outputter, outputter, 1);
+ LY_ASSERT_SMOB (Stencil, stencil, 2);
+
Paper_outputter *po = unsmob_outputter (outputter);
Stencil *st = unsmob_stencil (stencil);
- SCM_ASSERT_TYPE (po, outputter, SCM_ARG1, __FUNCTION__, "Paper_outputter");
- SCM_ASSERT_TYPE (st, stencil, SCM_ARG1, __FUNCTION__, "Paper_outputter");
+
po->output_stencil (*st);
return SCM_UNSPECIFIED;
}
2, 0, 0, (SCM outputter, SCM str),
"Dump @var{str} onto @var{outputter}.")
{
+ LY_ASSERT_SMOB (Paper_outputter, outputter, 1);
+ LY_ASSERT_TYPE (scm_is_string, str, 2);
+
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);
}
1, 0, 0, (SCM outputter),
"Return output port for @var{outputter}.")
{
+ LY_ASSERT_SMOB (Paper_outputter, outputter, 1);
Paper_outputter *po = unsmob_outputter (outputter);
- SCM_ASSERT_TYPE (po, outputter, SCM_ARG1, __FUNCTION__, "Paper_outputter");
return po->file ();
}
1, 0, 0, (SCM outputter),
"Close port of @var{outputter}.")
{
+ LY_ASSERT_SMOB (Paper_outputter, outputter, 1);
Paper_outputter *po = unsmob_outputter (outputter);
- SCM_ASSERT_TYPE (po, outputter, SCM_ARG1, __FUNCTION__, "Paper_outputter");
po->close ();
return SCM_UNSPECIFIED;
2, 0, 0, (SCM outputter, SCM expr),
"Eval @var{expr} in module of @var{outputter}.")
{
+ LY_ASSERT_SMOB (Paper_outputter, outputter, 1);
Paper_outputter *po = unsmob_outputter (outputter);
- SCM_ASSERT_TYPE (po, outputter, SCM_ARG1, __FUNCTION__, "Paper_outputter");
po->output_scheme (expr);