* lily/paper-outputter.cc (Paper_outputter): take port argument.
* lily/paper-outputter-scheme.cc (LY_DEFINE): take port argument.
* scm/framework-texstr.scm (output-framework):
2005-07-11 Han-Wen Nienhuys <hanwen@xs4all.nl>
+ * scm/framework-*.scm: use port arguments throughout.
+
+ * lily/include/lily-guile.hh: rename ly_c_X_p -> ly_is_X
+
+ * lily/paper-outputter.cc (Paper_outputter): take port argument.
+
+ * lily/paper-outputter-scheme.cc (LY_DEFINE): take port argument.
+
+ * scm/framework-texstr.scm (output-framework):
+
* input/regression/repeat-fold.ly (texidoc): remove TeX strings.
* scm/output-lib.scm (tablature-stem-attachment-function):
&& Rhythmic_head::has_interface (info.grob ()))
{
if (to_boolean (get_property ("harmonicAccidentals"))
- || !ly_c_equal_p (info.grob ()->get_property ("style"),
+ || !ly_is_equal (info.grob ()->get_property ("style"),
ly_symbol2scm ("harmonic")))
{
Accidental_entry entry;
if (to_boolean (a->get_property ("cautionary")))
{
SCM cstyle = a->get_property ("cautionary-style");
- parens = ly_c_equal_p (cstyle, ly_symbol2scm ("parentheses"));
+ parens = ly_is_equal (cstyle, ly_symbol2scm ("parentheses"));
}
SCM accs = a->get_property ("accidentals");
if (caut)
{
SCM cstyle = me->get_property ("cautionary-style");
- parens = ly_c_equal_p (cstyle, ly_symbol2scm ("parentheses"));
- smaller = ly_c_equal_p (cstyle, ly_symbol2scm ("smaller"));
+ parens = ly_is_equal (cstyle, ly_symbol2scm ("parentheses"));
+ smaller = ly_is_equal (cstyle, ly_symbol2scm ("smaller"));
}
SCM scm_style = me->get_property ("style");
return path;
SCM kpath = ly_lily_module_constant ("ly:kpathsea-find-file");
- if (ly_c_procedure_p (kpath))
+ if (ly_is_procedure (kpath))
{
SCM kp_result = scm_call_1 (kpath, scm_makfrom0str (name.to_str0 ()));
if (scm_is_string (kp_result))
{
SCM proc = get_music ()->get_property ("procedure");
- if (ly_c_procedure_p (proc))
+ if (ly_is_procedure (proc))
scm_call_1 (proc, get_outlet ()->self_scm ());
else
get_music ()->origin ()->warning (_ ("\\applycontext argument is not a procedure"));
SCM cb = me->get_property ("balloon-original-callback");
SCM stil = SCM_EOL;
- if (ly_c_procedure_p (cb))
+ if (ly_is_procedure (cb))
stil = scm_call_1 (cb, smob);
if (!unsmob_stencil (stil))
SCM s = me->get_property ("glyph");
SCM barsiz_proc = me->get_property ("bar-size-procedure");
- if (scm_is_string (s) && ly_c_procedure_p (barsiz_proc))
+ if (scm_is_string (s) && ly_is_procedure (barsiz_proc))
{
String str = ly_scm2string (s);
SCM siz = scm_call_1 (barsiz_proc, me->self_scm ());
// leave y_extent for spanbar?
}
- if (! ly_c_equal_p (g, orig))
+ if (! ly_is_equal (g, orig))
me->set_property ("glyph", g);
return SCM_UNSPECIFIED;
{
SCM bn = get_property ("currentBarNumber");
SCM proc = get_property ("barNumberVisibility");
- if (scm_is_number (bn) && ly_c_procedure_p (proc)
+ if (scm_is_number (bn) && ly_is_procedure (proc)
&& to_boolean (scm_call_1 (proc, bn)))
{
create_items ();
{
SCM func = me->get_property ("space-function");
- if (ly_c_procedure_p (func))
+ if (ly_is_procedure (func))
{
SCM s = scm_call_2 (func, me->self_scm (), scm_int2num (get_beam_count (me)));
return scm_to_double (s);
SCM s = get_property ("chordChanges");
if (to_boolean (s) && scm_is_pair (last_chord_)
- && ly_c_equal_p (chord_as_scm, last_chord_))
+ && ly_is_equal (chord_as_scm, last_chord_))
chord_name_->set_property ("begin-of-line-visible", SCM_BOOL_T);
last_chord_ = chord_as_scm;
{
/* do not check aliases, because \context Staff should not
create RhythmicStaff. */
- if (ly_c_equal_p (accepteds[i]->get_context_name (), type_sym))
+ if (ly_is_equal (accepteds[i]->get_context_name (), type_sym))
{
best_result.push (accepteds[i]);
return best_result;
while (prev_alist != daddy)
{
- if (ly_c_equal_p (scm_caar (prev_alist), eltprop))
+ if (ly_is_equal (scm_caar (prev_alist), eltprop))
{
prev_alist = scm_cdr (prev_alist);
break;
SCM proc = get_property ("dynamicAbsoluteVolumeFunction");
SCM svolume = SCM_EOL;
- if (ly_c_procedure_p (proc))
+ if (ly_is_procedure (proc))
{
// urg
svolume = scm_call_1 (proc, script_req_->get_property ("text"));
s = scm_makfrom0str ("piano");
SCM eq = get_property ("instrumentEqualizer");
- if (ly_c_procedure_p (eq))
+ if (ly_is_procedure (eq))
{
s = scm_call_1 (eq, s);
}
Event::Event (SCM i)
: Music (i)
{
- if (!ly_c_procedure_p (length_callback_))
+ if (!ly_is_procedure (length_callback_))
{
length_callback_ = length_callback_proc;
}
else if (figures_.size ())
{
SCM proc = get_property ("bassFigureFormatFunction");
- if (ly_c_procedure_p (proc))
+ if (ly_is_procedure (proc))
{
SCM l = SCM_EOL;
SCM *t = &l;
{
SCM_ASSERT_TYPE (scm_is_symbol (a), a, SCM_ARG1, __FUNCTION__, "symbol");
SCM_ASSERT_TYPE (scm_is_string (b), b, SCM_ARG2, __FUNCTION__, "string");
- SCM_ASSERT_TYPE (ly_c_list_p (c), c, SCM_ARG3, __FUNCTION__, "list of syms");
+ SCM_ASSERT_TYPE (ly_is_list (c), c, SCM_ARG3, __FUNCTION__, "list of syms");
if (!scm_is_vector (all_ifaces))
all_ifaces = scm_make_vector (scm_int2num (40), SCM_EOL);
{
dim_cache_[a].dimension_ = xt;
}
- else if (ly_c_procedure_p (cb))
+ else if (ly_is_procedure (cb))
{
dim_cache_[a].dimension_callback_ = cb;
}
else if (cb == SCM_EOL
- && ly_c_procedure_p (get_property ("print-function")))
+ && ly_is_procedure (get_property ("print-function")))
dim_cache_[a].dimension_callback_ = stencil_extent_proc;
}
}
unsmob_grob (scm_car (d))->calculate_dependencies (final, busy, funcname);
SCM proc = internal_get_property (funcname);
- if (ly_c_procedure_p (proc))
+ if (ly_is_procedure (proc))
scm_call_1 (proc, this->self_scm ());
status_ = final;
SCM proc = get_property ("print-function");
SCM stil = SCM_EOL;
- if (ly_c_procedure_p (proc))
+ if (ly_is_procedure (proc))
stil = scm_apply_0 (proc, scm_list_n (this->self_scm (), SCM_UNDEFINED));
if (Stencil *m = unsmob_stencil (stil))
Grob::is_empty (Axis a) const
{
return !(scm_is_pair (dim_cache_[a].dimension_)
- || ly_c_procedure_p (dim_cache_[a].dimension_callback_));
+ || ly_is_procedure (dim_cache_[a].dimension_callback_));
}
void
Grob::flush_extent_cache (Axis axis)
{
Dimension_cache *d = &dim_cache_[axis];
- if (ly_c_procedure_p (d->dimension_callback_)
+ if (ly_is_procedure (d->dimension_callback_)
&& scm_is_pair (d->dimension_))
{
d->dimension_ = SCM_EOL;
SCM dimpair = d->dimension_;
if (scm_is_pair (dimpair))
;
- else if (ly_c_procedure_p (d->dimension_callback_)
+ else if (ly_is_procedure (d->dimension_callback_)
&& d->dimension_ == SCM_EOL)
d->dimension_ = scm_call_2 (d->dimension_callback_, self_scm (), scm_int2num (a));
else
while (flip (&d) != LEFT);
if (broken[LEFT]
- && ly_c_equal_p (bounds[RIGHT]->get_column ()->get_property ("when"),
+ && ly_is_equal (bounds[RIGHT]->get_column ()->get_property ("when"),
bounds[LEFT]->get_property ("when")))
{
me->suicide ();
{
return scm_acons (key, val, scm_assoc_remove_x (alist, key));
}
-inline bool ly_c_list_p (SCM x) { return SCM_NFALSEP (scm_list_p (x)); }
-inline bool ly_c_procedure_p (SCM x) { return SCM_NFALSEP (scm_procedure_p (x)); }
-inline bool ly_c_equal_p (SCM x, SCM y)
+inline bool ly_is_list (SCM x) { return SCM_NFALSEP (scm_list_p (x)); }
+inline bool ly_is_procedure (SCM x) { return SCM_NFALSEP (scm_procedure_p (x)); }
+inline bool ly_is_port (SCM x) { return SCM_NFALSEP (scm_port_p (x)); }
+
+
+inline bool ly_is_equal (SCM x, SCM y)
{
return SCM_NFALSEP (scm_equal_p (x, y));
}
DECLARE_SMOBS (Paper_outputter,);
public:
- SCM file ();
+ SCM file () const;
SCM dump_string (SCM);
void output_scheme (SCM scm);
- Paper_outputter (String nm, String format);
+ Paper_outputter (SCM port, String format);
SCM scheme_to_string (SCM);
void output_stencil (Stencil);
void close ();
more complicated things.
*/
SCM vis = get_property ("break-visibility");
- if (ly_c_procedure_p (vis))
+ if (ly_is_procedure (vis))
{
SCM args = scm_list_n (scm_int2num (break_status_dir ()), SCM_UNDEFINED);
SCM result = scm_apply_0 (vis, args);
if (!def)
{
SCM vis = get_property ("explicitKeySignatureVisibility");
- if (ly_c_procedure_p (vis))
+ if (ly_is_procedure (vis))
item_->set_property ("break-visibility", vis);
}
}
SCM type = scm_object_property (sym, type_symbol);
- if (type != SCM_EOL && !ly_c_procedure_p (type))
+ if (type != SCM_EOL && !ly_is_procedure (type))
{
warning (_f ("can't find property type-check for `%s' (%s).",
ly_symbol2string (sym).to_str0 (),
else
{
if (val != SCM_EOL
- && ly_c_procedure_p (type)
+ && ly_is_procedure (type)
&& scm_call_1 (type, val) == SCM_BOOL_F)
{
ok = false;
for (SCM i = list; scm_is_pair (i); i = scm_cdr (i))
{
if (!scm_is_pair (scm_cdr (i))
- || !ly_c_equal_p (scm_car (i), scm_cadr (i)))
+ || !ly_is_equal (scm_car (i), scm_cadr (i)))
unique = scm_cons (scm_car (i), unique);
}
return scm_reverse_x (unique, SCM_EOL);
{
SCM i = scm_car (after);
after = scm_cdr (after);
- if (ly_c_equal_p (i, s))
+ if (ly_is_equal (i, s))
break;
before = scm_cons (i, before);
}
SCM l = scm_assoc (key, b);
if (l == SCM_BOOL_F
- || !ly_c_equal_p (scm_cdr (l), val))
+ || !ly_is_equal (scm_cdr (l), val))
return false;
}
SCM m = mark_ev_->get_property ("label");
SCM proc = get_property ("markFormatter");
if (!Text_interface::markup_p (m)
- && ly_c_procedure_p (proc))
+ && ly_is_procedure (proc))
{
if (!scm_is_number (m))
m = get_property ("rehearsalMark");
str += "music";
else if (scm_car (s) == ly_lily_module_constant ("markup?"))
str += "markup";
- else if (ly_c_procedure_p (scm_car (s)))
+ else if (ly_is_procedure (scm_car (s)))
str += "scm";
}
if (str == "") str = "noarg";
SCM ctor = m->get_property ("iterator-ctor");
SCM iter = SCM_EOL;
- if (ly_c_procedure_p (ctor))
+ if (ly_is_procedure (ctor))
{
iter = scm_call_0 (ctor);
p = unsmob_iterator (iter);
if (unsmob_moment (lst))
return *unsmob_moment (lst);
- if (ly_c_procedure_p (length_callback_))
+ if (ly_is_procedure (length_callback_))
{
SCM res = scm_call_1 (length_callback_, self_scm ());
return *unsmob_moment (res);
Music::start_mom () const
{
SCM lst = start_callback_;
- if (ly_c_procedure_p (lst))
+ if (ly_is_procedure (lst))
{
SCM res = scm_call_1 (lst, self_scm ());
return *unsmob_moment (res);
Music::to_relative_octave (Pitch last)
{
SCM callback = get_property ("to-relative-callback");
- if (ly_c_procedure_p (callback))
+ if (ly_is_procedure (callback))
{
Pitch *p = unsmob_pitch (scm_call_2 (callback, self_scm (), last.smobbed_copy ()));
return *p;
bool merge_possible = (ups[0] >= dps[0]) && (ups.top () >= dps.top ());
/* Do not merge notes typeset in different style. */
- if (!ly_c_equal_p (nu->get_property ("style"),
+ if (!ly_is_equal (nu->get_property ("style"),
nd->get_property ("style")))
merge_possible = false;
SCM proc = me->get_property ("glyph-name-procedure");
String suffix = to_string (robust_scm2int (me->get_property ("duration-log"), 2));
- if (scm_procedure_p (proc) == SCM_BOOL_T)
+ if (ly_is_procedure (proc))
suffix = ly_scm2string (scm_call_2 (proc, log, style));
Font_metric *fm = Font_interface::get_default_font (me);
Fallback
*/
SCM v = me->get_property ("stem-attachment-function");
- if (!ly_c_procedure_p (v))
+ if (!ly_is_procedure (v))
return 0.0;
SCM result = scm_call_2 (v, me->self_scm (), scm_int2num (a));
- if (ly_c_procedure_p (pred))
+ if (ly_is_procedure (pred))
{
/*
should typecheck pred.
scopes = scm_cons (header_, scopes);
SCM tit = SCM_EOL;
- if (ly_c_procedure_p (title_func))
+ if (ly_is_procedure (title_func))
tit = scm_call_2 (title_func,
paper_->self_scm (),
scopes);
scopes = scm_cons (header, scopes);
SCM tit = SCM_EOL;
- if (ly_c_procedure_p (title_func))
+ if (ly_is_procedure (title_func))
tit = scm_call_2 (title_func,
paper_->self_scm (),
scopes);
#include "warn.hh"
#include "stencil.hh"
+
+
LY_DEFINE (ly_make_paper_outputter, "ly:make-paper-outputter",
- 2, 0, 0, (SCM outname, SCM format),
+ 2, 0, 0, (SCM port, SCM format),
"Create an outputter that evaluates within "
- "@code{output-}@var{format}, writing to file @var{outname}.")
+ "@code{output-}@var{format}, writing to @var{port}.")
{
- SCM_ASSERT_TYPE (scm_is_string (outname), outname, SCM_ARG1, __FUNCTION__,
- "String");
+ SCM_ASSERT_TYPE (ly_is_port (port), port, SCM_ARG1, __FUNCTION__,
+ "port");
SCM_ASSERT_TYPE (scm_is_string (format), format, SCM_ARG2, __FUNCTION__,
"String");
- String outname_str = ly_scm2string (outname);
String f = ly_scm2string (format);
message (_f ("Layout output to `%s'...",
- outname_str == "-"
- ? String ("<stdout>")
- : outname_str));
+ ly_scm2string (scm_port_filename (port)).to_str0 ()));
+
progress_indication ("\n");
- Paper_outputter *po = new Paper_outputter (outname_str, f);
+ Paper_outputter *po = new Paper_outputter (port, f);
scm_gc_unprotect_object (po->self_scm ());
return po->self_scm ();
#include "ly-smobs.icc"
-Paper_outputter::Paper_outputter (String file_name, String format)
+Paper_outputter::Paper_outputter (SCM port, String format)
{
- file_ = SCM_EOL;
+ file_ = port;
output_module_ = SCM_EOL;
smobify_self ();
- file_name_ = file_name;
String module_name = "scm output-" + format;
output_module_ = scm_c_resolve_module (module_name.to_str0 ());
}
}
SCM
-Paper_outputter::file ()
+Paper_outputter::file () const
{
- if (file_ == SCM_EOL)
- if (file_name_ == "-")
- file_ = scm_current_output_port ();
- else
- /*
- Opening binary sucks a little for DOS, since PS doesn't look like
- ASCII anymore, but binary CFFs will get embedded correctly.
- */
- file_ = scm_open_file (scm_makfrom0str (file_name_.to_str0 ()),
- scm_makfrom0str ("wb"));
return file_;
}
SCM tags = m->get_property ("tags");
if (scm_is_symbol (tag))
tags = scm_cons (tag, tags);
- else if (ly_c_list_p (tag))
+ else if (ly_is_list (tag))
tags = ly_append2 (tag, tags);
else
ip.warning (_ ("tag must be symbol or list of symbols"));
bool
ly_input_procedure_p (SCM x)
{
- return ly_c_procedure_p (x)
- || (scm_is_pair (x) && ly_c_procedure_p (scm_car (x)));
+ return ly_is_procedure (x)
+ || (scm_is_pair (x) && ly_is_procedure (scm_car (x)));
}
Music*
r->set_property ("repeat-count", scm_int2num (max (times, 1)));
r-> set_property ("elements",alts);
- if (ly_c_equal_p ($2, scm_makfrom0str ("tremolo"))) {
+ if (ly_is_equal ($2, scm_makfrom0str ("tremolo"))) {
/*
TODO: move this code to Scheme.
*/
bool itc = do_internal_type_checking_global;
/* UGH.
*/
- bool autobeam = ly_c_equal_p (symbol, ly_symbol2scm ("autoBeamSettings"));
+ bool autobeam = ly_is_equal (symbol, ly_symbol2scm ("autoBeamSettings"));
if (autobeam)
do_internal_type_checking_global = false;
m->set_property ("grob-property", grob_sym);
for (Pedal_info *p = info_list_; p->name_; p++)
{
String nm = p->name_ + String ("Event");
- if (ly_c_equal_p (m->get_property ("name"),
+ if (ly_is_equal (m->get_property ("name"),
scm_str2symbol (nm.to_str0 ())))
{
Direction d = to_dir (m->get_property ("span-direction"));
for (Pedal_info *p = info_alist_; p->name_; p++)
{
String nm = p->name_ + String ("Event");
- if (ly_c_equal_p (r->get_property ("name"),
+ if (ly_is_equal (r->get_property ("name"),
scm_str2symbol (nm.to_str0 ())))
{
Direction d = to_dir (r->get_property ("span-direction"));
Engraver_group_engraver::finalize ();
SCM proc = get_property ("recordEventSequence");
- if (ly_c_procedure_p (proc))
+ if (ly_is_procedure (proc))
scm_call_2 (proc, context ()->self_scm (), scm_cdr (accumulator_));
}
*/
SCM wb = get_property ("whichBar");
SCM db = get_property ("defaultBarType");
- if (!scm_is_string (wb) || ly_c_equal_p (db, wb))
+ if (!scm_is_string (wb) || ly_is_equal (db, wb))
{
if (s != "" || (volta_found && !scm_is_string (wb)))
{
/* Discard double articulations for part-combining. */
int script_count = scripts_.size ();
for (int i = 0; i < script_count; i++)
- if (ly_c_equal_p (scripts_[i].event_
+ if (ly_is_equal (scripts_[i].event_
->get_property ("articulation-type"),
m->get_property ("articulation-type")))
return true;
{
SCM sym = scm_caar (s);
SCM type = scm_object_property (sym, ly_symbol2scm ("backend-type?"));
- if (!ly_c_procedure_p (type))
+ if (!ly_is_procedure (type))
continue;
SCM val = scm_cdar (s);
if (to_boolean (g->get_property ("cautionary")))
{
SCM cstyle = g->get_property ("cautionary-style");
- parens = ly_c_equal_p (cstyle, ly_symbol2scm ("parentheses"));
+ parens = ly_is_equal (cstyle, ly_symbol2scm ("parentheses"));
}
SCM accs = g->get_property ("accidentals");
SCM vissym = ly_symbol2scm ("break-visibility");
SCM vis = bars_[0]->internal_get_property (vissym);
- if (ly_c_equal_p (spanbar_->internal_get_property (vissym), vis))
+ if (ly_is_equal (spanbar_->internal_get_property (vissym), vis))
spanbar_->internal_set_property (vissym, vis);
spanbar_ = 0;
4, 0, 0, (SCM expr, SCM func, SCM arg1, SCM offset),
"Parse EXPR, feed bits to FUNC with first arg ARG1")
{
- SCM_ASSERT_TYPE (ly_c_procedure_p (func), func, SCM_ARG1, __FUNCTION__,
+ SCM_ASSERT_TYPE (ly_is_procedure (func), func, SCM_ARG1, __FUNCTION__,
"procedure");
Stencil_interpret_arguments a;
/*
UGH UGH
*/
- if (scm_is_string (gl) && ly_c_equal_p (gl, scm_makfrom0str ("brace"))
- && scm_is_string (my_gl) && ly_c_equal_p (my_gl, scm_makfrom0str ("bracket")))
+ if (scm_is_string (gl) && ly_is_equal (gl, scm_makfrom0str ("brace"))
+ && scm_is_string (my_gl) && ly_is_equal (my_gl, scm_makfrom0str ("bracket")))
inf.grob ()->translate_axis (-0.8, X_AXIS); // ugh
- else if (scm_is_string (gl) && ly_c_equal_p (gl, scm_makfrom0str ("bracket"))
- && scm_is_string (my_gl) && ly_c_equal_p (my_gl, scm_makfrom0str ("bracket")))
+ else if (scm_is_string (gl) && ly_is_equal (gl, scm_makfrom0str ("bracket"))
+ && scm_is_string (my_gl) && ly_is_equal (my_gl, scm_makfrom0str ("bracket")))
{
inf.grob ()->translate_axis (-0.8, X_AXIS); // ugh
}
Spanner *me = dynamic_cast<Spanner *> (unsmob_grob (smob));
SCM gl = me->get_property ("glyph");
- if (ly_c_equal_p (gl, scm_makfrom0str ("bar-line")))
+ if (ly_is_equal (gl, scm_makfrom0str ("bar-line")))
{
int count = 0;
Paper_column *left_column = me->get_bound (LEFT)->get_column ();
{
Grob *e = unsmob_grob (scm_car (s));
SCM proc = e->get_property ("spacing-procedure");
- if (ly_c_procedure_p (proc))
+ if (ly_is_procedure (proc))
scm_call_1 (proc, e->self_scm ());
}
}
maybe should check positions too.
*/
if (right_mus && left_mus
- && ly_c_equal_p (right_mus->get_property ("pitch"),
+ && ly_is_equal (right_mus->get_property ("pitch"),
left_mus->get_property ("pitch")))
{
Grob *p = new Spanner (heads_to_tie_[i].tie_definition_,
Music *left_mus = heads_to_tie_[i].event_;
if (right_mus && left_mus
- && ly_c_equal_p (right_mus->get_property ("pitch"),
+ && ly_is_equal (right_mus->get_property ("pitch"),
left_mus->get_property ("pitch")))
{
an->tie_to (th);
Time_signature_performer::create_audio_elements ()
{
SCM fr = get_property ("timeSignatureFraction");
- if (scm_is_pair (fr) && !ly_c_equal_p (fr, prev_fraction_))
+ if (scm_is_pair (fr) && !ly_is_equal (fr, prev_fraction_))
{
prev_fraction_ = fr;
int b = scm_to_int (scm_car (fr));
tuplets_[i].spanner_ = spanner;
SCM proc = get_property ("tupletNumberFormatFunction");
- if (ly_c_procedure_p (proc))
+ if (ly_is_procedure (proc))
{
SCM t = scm_apply_0 (proc, scm_list_1 (tuplets_[i].music_->self_scm ()));
spanner->set_property ("text", t);
Grob *gr = unsmob_grob (grob);
SCM_ASSERT_TYPE (gr, grob, SCM_ARG1, __FUNCTION__, "Grob");
SCM_ASSERT_TYPE (scm_list_p (tweak) == SCM_BOOL_T
- && ly_c_procedure_p (scm_car (tweak)),
+ && ly_is_procedure (scm_car (tweak)),
tweak, SCM_ARG2, __FUNCTION__, "Tweak");
global_registry_->insert_grob_tweak (gr, tweak);
Grob *gr = unsmob_grob (grob);
SCM_ASSERT_TYPE (gr, grob, SCM_ARG1, __FUNCTION__, "Grob");
SCM_ASSERT_TYPE (scm_list_p (tweak) == SCM_BOOL_T
- && ly_c_procedure_p (scm_car (tweak)),
+ && ly_is_procedure (scm_car (tweak)),
tweak, SCM_ARG2, __FUNCTION__, "Tweak");
global_registry_->replace_grob_tweak (gr, tweak);
(define-public (output-framework basename book scopes fields)
(let* ((filename (format "~a.ps" basename))
- (outputter (ly:make-paper-outputter filename "ps"))
+ (outputter (ly:make-paper-outputter
+ (open-file filename "wb")
+ "ps"))
(paper (ly:paper-book-paper book))
(pages (ly:paper-book-pages book))
(landscape? (eq? (ly:output-def-lookup paper 'landscape) #t))
(max (1+ (car box)) (caddr box))
(max (1+ (cadr box)) (cadddr box)))))
- (let* ((outputter (ly:make-paper-outputter (format "~a.eps" filename) "ps"))
+ (let* ((outputter (ly:make-paper-outputter
+
+ ;; need to have binary for embedding CFFs
+ (open-file (format "~a.eps" filename) "wb")
+ "ps"))
(port (ly:outputter-port outputter))
(xext (ly:stencil-extent dump-me X))
(yext (ly:stencil-extent dump-me Y))
(define-public (output-framework basename book scopes fields)
(let* ((filename (format "~a.svg" basename))
- (outputter (ly:make-paper-outputter filename
+ (outputter (ly:make-paper-outputter (open-file filename "wb")
(ly:output-backend)))
(dump (lambda (str) (display str (ly:outputter-port outputter))))
(paper (ly:paper-book-paper book))
(define-public (output-framework basename book scopes fields)
(let* ((filename (format "~a.tex" basename))
- (outputter (ly:make-paper-outputter filename "tex"))
+ (outputter (ly:make-paper-outputter (open-file filename "wb") "tex"))
(paper (ly:paper-book-paper book))
(pages (ly:paper-book-pages book))
(last-page (car (last-pair pages)))
(define-public (output-classic-framework
basename book scopes fields)
(let* ((filename (format "~a.tex" basename))
- (outputter (ly:make-paper-outputter filename "tex"))
+ (outputter (ly:make-paper-outputter
+ (open-file filename "w") "tex"))
(paper (ly:paper-book-paper book))
(lines (ly:paper-book-systems book))
(last-line (car (last-pair lines))))
(define-public (output-preview-framework
basename book scopes fields)
(let* ((filename (format "~a.tex" basename))
- (outputter (ly:make-paper-outputter filename
+ (outputter (ly:make-paper-outputter (open-file filename "wb")
"tex"))
(paper (ly:paper-book-paper book))
(lines (ly:paper-book-systems book))
(define-public (output-classic-framework basename book scopes fields)
(let* ((filename (format "~a.texstr" basename))
- (outputter (ly:make-paper-outputter filename (ly:output-backend)))
+ (outputter (ly:make-paper-outputter
+ (open-file filename "wb")
+ (ly:output-backend)))
(paper (ly:paper-book-paper book))
(lines (ly:paper-book-systems book)))
(ly:outputter-dump-string outputter (header basename))
(define-public (output-framework basename book scopes fields )
(let* ((filename (format "~a.texstr" basename))
- (outputter (ly:make-paper-outputter filename (ly:output-backend)))
+ (outputter
+ (ly:make-paper-outputter
+ (open-file filename "wb")
+ (ly:output-backend)))
(paper (ly:paper-book-paper book))
(pages (ly:paper-book-pages book)))
(ly:outputter-dump-string outputter (header basename))