- int count = scores_.size ();
- Paper_outputter *out = papers_.top ()->get_paper_outputter (outname);
- out->output_header (papers_.top (), get_scopes (count - 1), 0);
-
- int line_count = SCM_VECTOR_LENGTH ((SCM) scores_.top ());
- for (int i = 0; i < line_count; i++)
- out->output_line (scm_vector_ref ((SCM) scores_.top (), scm_int2num (i)),
- 0, i == line_count - 1);
-
- out->output_scheme (scm_list_1 (ly_symbol2scm ("end-output")));
- progress_indication ("\n");
-}
-
-
-#include "ly-smobs.icc"
-
-IMPLEMENT_DEFAULT_EQUAL_P (Paper_book);
-IMPLEMENT_SMOBS (Paper_book)
-IMPLEMENT_TYPE_P (Paper_book, "ly:paper-book?")
-
-SCM
-Paper_book::mark_smob (SCM smob)
-{
- Paper_book *pb = (Paper_book*) SCM_CELL_WORD_1 (smob);
- for (int i = 0; i < pb->headers_.size (); i++)
- scm_gc_mark (pb->headers_[i]);
- for (int i = 0; i < pb->global_headers_.size (); i++)
- scm_gc_mark (pb->global_headers_[i]);
- for (int i = 0; i < pb->papers_.size (); i++)
- scm_gc_mark (pb->papers_[i]->self_scm ());
- for (int i = 0; i < pb->scores_.size (); i++)
- scm_gc_mark (pb->scores_[i]);
-
- scm_gc_mark (pb->copyright_);
-
-
- return pb->tagline_;
-}
-
-int
-Paper_book::print_smob (SCM smob, SCM port, scm_print_state*)
-{
- Paper_book *b = (Paper_book*) ly_cdr (smob);
-
- scm_puts ("#<", port);
- scm_puts (classname (b), port);
- scm_puts (" ", port);
- //scm_puts (b->, port);
- scm_puts (">", port);
- return 1;
+ SCM_ASSERT_TYPE (scm_pair_p (lines), lines, SCM_ARG1, __FUNCTION__, "list");
+ SCM_ASSERT_TYPE (is_number (book), book, SCM_ARG2, __FUNCTION__, "real");
+ SCM_ASSERT_TYPE (is_number (text), text, SCM_ARG2, __FUNCTION__, "real");
+ SCM_ASSERT_TYPE (is_number (first), first, SCM_ARG2, __FUNCTION__, "real");
+ SCM_ASSERT_TYPE (is_number (last), last, SCM_ARG2, __FUNCTION__, "real");
+
+ return c_ragged_page_breaks (lines,
+ ly_scm2double (book), ly_scm2double (text),
+ ly_scm2double (first), ly_scm2double (last));