The diff says something like { Real yshift = config->y[LEFT] - 0.5 * staff_space; - if (abs (round(yshift) - yshift) < 0.01 * staff_space) + if (abs ((int)(yshift + 0.5) - yshift) < 0.01 * staff_space) config->add (parameters.HORIZONTAL_INTER_QUANT_PENALTY, "H"); }
Now here is the problem: casting to int rounds towards zero. For negative yshift, the equation becomes mostly nonsensical I think. For example, if yshift == -1, we get abs((int)-0.5 - -1) < ... which is abs(1) < .... I doubt that this is the intent. Instead of casting to int, one would probably need to use the floor function. -- David Kastrup _______________________________________________ lilypond-devel mailing list lilypond-devel@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-devel