#include "input-file-results.hh"
#include "ly-module.hh"
#include "paper-book.hh"
+#include "paper-line.hh"
#include "input-smob.hh" // output_expr
else
output_module_ = scm_c_resolve_module (name.to_str0 ());
+ /* FIXME: output-lib should be module, that can be imported. */
#define IMPORT_LESS 1 // only import the list of IMPORTS
#if IMPORT_LESS
scm_c_use_module ("lily");
"ly:output-def-scope",
"ly:gulp-file",
"ly:number->string",
- "assoc-get",
- "number-pair->string",
- "inexact->string",
+
+ "number-pair->string", /* output-lib.scm */
"numbers->string",
+
+ "assoc-get",
+ "inexact->string", /* insecure guile? */
#if IMPORT_LESS
"string-index", /* from srfi srfi-13 */
"regexp-substitute/global", /* from (ice9 regex) */
void
Paper_outputter::output_line (SCM line, Offset *origin, bool is_last)
{
- Offset dim = ly_scm2offset (ly_car (line));
+ Paper_line *pl = unsmob_paper_line (line);
+ Offset dim = pl->dim ();
if (dim[Y_AXIS] > 50 CM)
{
programming_error ("Improbable system height.");
}
SCM between = SCM_EOL;
- for (SCM s = ly_cdr (line); gh_pair_p (s); s = ly_cdr (s))
+ for (SCM s = pl->stencils (); gh_pair_p (s); s = ly_cdr (s))
{
- Stencil *stil = unsmob_stencil (ly_cdar (s));
- SCM head = ly_caar (s);
-
- if (head == ly_symbol2scm ("between-system-string"))
- {
- between = stil->get_expr ();
- continue;
- }
-
+ Stencil *stil = unsmob_stencil (ly_car (s));
if (stil)
- output_expr (stil->get_expr (), ly_scm2offset (head));
+ output_expr (stil->get_expr (), stil->origin ());
+ /* Only if !PAGE_LAYOUT */
+ else if (ly_caar (s) == ly_symbol2scm ("between-system-string"))
+ between = ly_cdar (s);
}
if (is_last)