From f440c3ac8d1a00403869bc07ea4eae40f1bf2d81 Mon Sep 17 00:00:00 2001 From: Linas Vepstas Date: Fri, 2 Jul 2004 03:13:43 +0000 Subject: [PATCH] bug-fix -- adding negative num to zero used to give a positive result. (this bug was introduced only recently, about a week ago, with the changes to 128-bit intermediate calculations, and does not/should not affect any actual users). git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@10130 57a11ea4-9604-0410-9ed3-97b8803252fd --- src/engine/gnc-numeric.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/engine/gnc-numeric.c b/src/engine/gnc-numeric.c index 8488342b77..822e82272d 100644 --- a/src/engine/gnc-numeric.c +++ b/src/engine/gnc-numeric.c @@ -327,9 +327,11 @@ gnc_numeric_add(gnc_numeric a, gnc_numeric b, } else if(b.num == 0) { denom = a.denom; + b.denom = a.denom; } else if(a.num == 0) { denom = b.denom; + a.denom = b.denom; } else { return gnc_numeric_error(GNC_ERROR_DENOM_DIFF); @@ -378,6 +380,7 @@ gnc_numeric_add(gnc_numeric a, gnc_numeric b, if (cab.isbig) return gnc_numeric_error(GNC_ERROR_OVERFLOW); sum.num = cab.lo; + if (cab.isneg) sum.num = -sum.num; sum.denom = lcd; }