[Gnucash-changes] bug-fix -- adding negative num to zero used to give a positive result.

Linas Vepstas linas at cvs.gnucash.org
Thu Jul 1 23:13:43 EDT 2004


Log Message:
-----------
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).

Modified Files:
--------------
    gnucash/src/engine:
        gnc-numeric.c

Revision Data
-------------
Index: gnc-numeric.c
===================================================================
RCS file: /home/cvs/cvsroot/gnucash/src/engine/gnc-numeric.c,v
retrieving revision 1.49
retrieving revision 1.50
diff -Lsrc/engine/gnc-numeric.c -Lsrc/engine/gnc-numeric.c -u -r1.49 -r1.50
--- src/engine/gnc-numeric.c
+++ src/engine/gnc-numeric.c
@@ -327,9 +327,11 @@
     }
     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 @@
     if (cab.isbig) return gnc_numeric_error(GNC_ERROR_OVERFLOW);
     
     sum.num   = cab.lo;
+    if (cab.isneg) sum.num = -sum.num;
     sum.denom = lcd;
   }
   


More information about the gnucash-changes mailing list