/*
This file is part of LilyPond, the GNU music typesetter.
- Copyright (C) 2004--2011 Jan Nieuwenhuizen <janneke@gnu.org>
+ Copyright (C) 2004--2014 Jan Nieuwenhuizen <janneke@gnu.org>
LilyPond is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
performances_ = scm_cons (s, performances_);
}
-int
+long
Paper_book::output_aux (SCM output_channel,
bool is_last,
- int *first_page_number,
- int *first_performance_number)
+ long *first_page_number,
+ long *first_performance_number)
{
- int page_nb = 0;
+ long page_nb = 0;
if (scm_is_pair (performances_))
{
SCM proc = ly_lily_module_constant ("write-performances-midis");
void
Paper_book::output (SCM output_channel)
{
- int first_page_number
+ long first_page_number
= robust_scm2int (paper_->c_variable ("first-page-number"), 1);
- int first_performance_number = 0;
+ long first_performance_number = 0;
/* FIXME: We need a line-width for ps output (framework-ps.scm:92).
If we don't have any, we take the paper-width unless we know
void
Paper_book::classic_output_aux (SCM output,
- int *first_performance_number)
+ long *first_performance_number)
{
if (scm_is_pair (performances_))
{
void
Paper_book::classic_output (SCM output)
{
- int first_performance_number = 0;
+ long first_performance_number = 0;
classic_output_aux (output, &first_performance_number);
SCM scopes = SCM_EOL;
systems_ = SCM_EOL;
if (scm_is_pair (bookparts_))
{
+ SCM system_list = SCM_EOL;
for (SCM p = bookparts_; scm_is_pair (p); p = scm_cdr (p))
if (Paper_book *pbookpart = unsmob_paper_book (scm_car (p)))
- systems_ = scm_append_x (scm_list_2 (systems_,
- pbookpart->systems ()));
+ system_list = scm_cons (pbookpart->systems (), system_list);
+ systems_ = scm_append (scm_reverse_x (system_list, SCM_EOL));
}
else
{
SCM system_list
= scm_vector_to_list (pscore->get_paper_systems ());
- system_list = scm_reverse (system_list);
- systems_ = scm_append (scm_list_2 (system_list, systems_));
+ systems_ = scm_reverse_x (system_list, systems_);
}
else
{
systems_ = scm_cons (scm_car (s), systems_);
}
}
- systems_ = scm_reverse (systems_);
+ systems_ = scm_reverse_x (systems_, SCM_EOL);
/* backwards compatibility for the old page breaker */
int i = 0;
{
SCM page_breaking = paper_->c_variable ("page-breaking");
pages_ = scm_apply_0 (page_breaking, scm_list_1 (self_scm ()));
+
+ // Create all the page stencils.
+ SCM page_module = scm_c_resolve_module ("scm page");
+ SCM page_stencil = scm_c_module_lookup (page_module, "page-stencil");
+ page_stencil = scm_variable_ref (page_stencil);
+ for (SCM pages = pages_; scm_is_pair (pages); pages = scm_cdr (pages))
+ scm_apply_1 (page_stencil, scm_car (pages), SCM_EOL);
+
+ // Perform any user-supplied post-processing.
SCM post_process = paper_->c_variable ("page-post-process");
if (ly_is_procedure (post_process))
scm_apply_2 (post_process, paper_->self_scm (), pages_, SCM_EOL);