]> git.donarmstrong.com Git - lilypond.git/blobdiff - flower/rational.cc
Fix #629.
[lilypond.git] / flower / rational.cc
index 0e3ab3069488885d93ed69681aefe75d7cc46808..4205b1d683042153a4fe41dfa6651bb343c75d70 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the Flower Library
 
-  (c) 1997--2006 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 1997--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #include "rational.hh"
@@ -50,7 +50,9 @@ Rational::abs () const
 Rational
 Rational::trunc_rat () const
 {
-  return Rational (num_ - (num_ % den_), den_);
+  if (is_infinity())
+    return *this;
+  return Rational ((num_ - (num_ % den_)) * sign_, den_);
 }
 
 Rational::Rational ()
@@ -79,6 +81,7 @@ void
 Rational::set_infinite (int s)
 {
   sign_ = ::sign (s) * 2;
+  num_ = 1;
 }
 
 Rational