2005-08-04 Han-Wen Nienhuys <hanwen@xs4all.nl>
+ * lily/parser.yy (simple_string): allow \new STRING_IDENTIFIER.
+
+ * flower/rational.cc (operator +): prevent overflow. This fixes
+ heavily nested tuplets.
+
* lily/auto-beam-engraver.cc (derived_mark): new method. Yes. We
have to protect even those unlikely to be corrupted data members.
*this = r;
else
{
- int n = sign_ * num_ * r.den_ + r.sign_ * den_ * r.num_;
- int d = den_ * r.den_;
+ int lcm = (den_ / gcd (r.den_, den_)) * r.den_;
+ int n = sign_ * num_ * (lcm / den_) + r.sign_ * r.num_ * (lcm / r.den_);
+ int d = lcm;
sign_ = ::sign (n) * ::sign (d);
num_ = abs (n);
den_ = abs (d);
commony = common_refpoint_of_array (tuplets, commony, Y_AXIS);
Grob *commonx = common_refpoint_of_array (columns, me, X_AXIS);
commonx = common_refpoint_of_array (tuplets, commonx, Y_AXIS);
+ commonx = commonx->common_refpoint (me->get_bound (LEFT), X_AXIS);
+ commonx = commonx->common_refpoint (me->get_bound (RIGHT), X_AXIS);
+
Interval staff;
if (Grob *st = Staff_symbol_referencer::get_staff_symbol (me))
"tuplet-bracket-interface",
"A bracket with a number in the middle, used for tuplets. "
"When the bracket spans a line break, the value of "
- "@code{break-overshoot} determines how far it extends beyond the staff. "
+ "@code{break-overshoot} determines how far it extends "
+ "beyond the staff. "
"At a line break, the markups in the @code{edge-text} are printed "
"at the edges. ",