+2005-11-16 Jürgen Reuter <reuter@ipd.uka.de>
+
+ * lily/ligature-engraver.cc, lily/include/ligature-engraver.hh,
+ scm/define-context-properties.scm: Maintenance bugfix: make
+ ligature brackets work again by removing obsolete ligature
+ primitive callback push/pop.
+
2005-11-15 Jan Nieuwenhuizen <janneke@gnu.org>
* stepmake/aclocal.m4 (depth): Explain why absolute directory is
return false;
}
-/*
- * This method should do something that comes close to the following
- * .ly snippet:
- *
- * \property Voice.NoteHead \override #'print-function =
- * < value of noteHeadLigaturePrimitive
- *
- * TODO: What we are doing here on the c++ level, should actually be
- * performed on the SCM level. However, I do not know how to teach
- * lilypond to apply an \override and \revert on #'print-function,
- * whenever lily encounters a \[ and \] in an .ly file, respectively.
- * Also encounter, that lily should not crash if a user erronously
- * nests \[ and \].
- */
-void
-Ligature_engraver::override_stencil_callback ()
-{
- execute_pushpop_property (context (), ly_symbol2scm ("NoteHead"),
- ly_symbol2scm ("stencil"),
- get_property ("noteHeadLigaturePrimitive"));
-}
-
-/*
- * This method should do something that comes close to the following
- * .ly snippet:
- *
- * \property Voice.NoteHead \revert #'print-function
- *
- * TODO: What we are doing here on the c++ level, should actually be
- * performed on the SCM level. However, I do not know how to teach
- * lilypond to apply an \override and \revert on #'print-function,
- * whenever lily encounters a \[ and \] in an .ly file, respectively.
- * Also encounter, that lily should not crash if a user erronously
- * nests \[ and \].
- */
-void
-Ligature_engraver::revert_stencil_callback ()
-{
- execute_pushpop_property (context (), ly_symbol2scm ("NoteHead"),
- ly_symbol2scm ("stencil"), SCM_UNDEFINED);
-}
-
void
Ligature_engraver::process_music ()
{
finished_ligature_ = ligature_;
primitives_.clear ();
ligature_ = 0;
- revert_stencil_callback ();
}
last_bound_ = unsmob_grob (get_property ("currentMusicalColumn"));
// TODO: dump cause into make_item/spanner.
// announce_grob (ligature_, events_drul_[START]->self_scm ());
- override_stencil_callback ();
}
}
if (ligature_)
{
primitives_.push (info);
- if (info.grob ())
+ if (info.grob () && (brew_ligature_primitive_proc != SCM_EOL))
{
- info.grob ()->set_property ("stencil",
- brew_ligature_primitive_proc);
+ info.grob ()->set_property ("stencil", brew_ligature_primitive_proc);
}
}
}
selects the highest string with a fret at least @code{minimumFret}")
(minimumVerticalExtent ,number-pair? "minimum vertical extent, same
format as @var{verticalExtent}")
- (noteHeadLigaturePrimitive ,procedure? "Callback for generating stencil of ligature.")
(ottavation ,string? "If set, the text for an ottava spanner. Changing
this creates a new text spanner. ")
(pedalSustainStrings ,list? "List of string to print for