/*
This file is part of LilyPond, the GNU music typesetter.
- Copyright (C) 2002--2012 Juergen Reuter <reuter@ipd.uka.de>
+ Copyright (C) 2002--2015 Juergen Reuter <reuter@ipd.uka.de>
LilyPond is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
* produce a single connected graphical object of fixed width,
* consisting of noteheads and other primitives. Space may be
* inserted only after each ligature, if necessary, but in no case
- * between the primitives of the ligature. Accidentals have to be put
+ * between the primitives of the ligature. The same approach is
+ * used for Kievan notation ligatures, or, rather melismas.
+ * Though these are not single connected objects, they behave much
+ * in the same way and have a fixed, small amount of space between
+ * noteheads. Except in Kievan "ligatures", accidentals have to be put
* to the left of the ligature, and not to the left of individual
- * noteheads. Class Coherent_ligature_engraver is the common
+ * noteheads. In Kievan ligatures, the B-flat may be part of the
+ * ligature itself. Class Coherent_ligature_engraver is the common
* superclass for all of these engravers.
*
* The second category is for engravers that are relaxed in the sense
primitives_.clear ();
ligature_ = 0;
}
- last_bound_ = unsmob_grob (get_property ("currentMusicalColumn"));
+ last_bound_ = unsmob<Grob> (get_property ("currentMusicalColumn"));
if (ligature_)
{
prev_start_event_ = events_drul_[START];
ligature_ = create_ligature_spanner ();
- Grob *bound = unsmob_grob (get_property ("currentMusicalColumn"));
+ Grob *bound = unsmob<Grob> (get_property ("currentMusicalColumn"));
if (!bound)
events_drul_[START]->origin ()->warning (_ ("no left bound"));
else
if (ligature_)
{
primitives_.push_back (info);
- if (info.grob () && brew_ligature_primitive_proc != SCM_EOL)
+ if (info.grob () && !scm_is_null (brew_ligature_primitive_proc))
info.grob ()->set_property ("stencil", brew_ligature_primitive_proc);
}
}