- idx_directed = idx_either
- = prefix + ((stem_dir == UP) ? "u" : "d") + suffix;
- out = fm->find_by_name (idx_directed);
+ idx_either = idx_directed = prefix + (stem_dir == UP ? "u" : "d");
+ out = fm->find_by_name (idx_either + suffix);
+ }
+
+ if (style == "mensural"
+ || style == "neomensural"
+ || style == "petrucci"
+ || style == "baroque"
+ || style == "kievan")
+ {
+ if (!Staff_symbol_referencer::on_line
+ (me,
+ robust_scm2int (me->get_property ("staff-position"), 0)))
+ {
+ Stencil test = fm->find_by_name (idx_either + "r" + suffix);
+ if (!test.is_empty ())
+ {
+ idx_either += "r";
+ out = test;
+ }
+ }
+ }
+
+ if (style == "kievan"
+ && 3 == robust_scm2int (me->get_property ("duration-log"), 2))
+ {
+ Grob *stem = unsmob<Grob> (me->get_object ("stem"));
+ Grob *beam = unsmob<Grob> (stem->get_object ("beam"));
+ if (beam)
+ out = fm->find_by_name (idx_either + "2kievan");