From fe73f52bdbdecfe73797aacc327d50f67f29d68d Mon Sep 17 00:00:00 2001 From: John Ralls Date: Mon, 27 Aug 2018 18:00:55 -0700 Subject: [PATCH] Guard against divide-by-zero errors. --- .../report-system/commodity-utilities.scm | 22 ++++++++++--------- libgnucash/engine/test/test-extras.scm | 3 ++- 2 files changed, 14 insertions(+), 11 deletions(-) diff --git a/gnucash/report/report-system/commodity-utilities.scm b/gnucash/report/report-system/commodity-utilities.scm index 987f52773e..f7ce0e63a4 100644 --- a/gnucash/report/report-system/commodity-utilities.scm +++ b/gnucash/report/report-system/commodity-utilities.scm @@ -193,11 +193,12 @@ (second foreignlist) GNC-DENOM-AUTO GNC-DENOM-LCD)) - (gnc-numeric-div - total-domestic - total-foreign - GNC-DENOM-AUTO - (logior (GNC-DENOM-SIGFIGS 8) GNC-RND-ROUND))))))) + (if (not (zero? total-foreign)) + (gnc-numeric-div + total-domestic + total-foreign + GNC-DENOM-AUTO + (logior (GNC-DENOM-SIGFIGS 8) GNC-RND-ROUND)) 0)))))) ;; Get all the interesting splits, and sort them according to the ;; date. (gnc:get-match-commodity-splits-sorted @@ -295,11 +296,12 @@ (gnc-commodity-numeric->string report-currency (gnc-numeric-zero))) (gnc-numeric-zero)) - (gnc-numeric-div - (second foreignlist) - (third foreignlist) - GNC-DENOM-AUTO - (logior (GNC-DENOM-SIGFIGS 8) GNC-RND-ROUND)))))) + (if (not (zero? (third foreignlist))) + (gnc-numeric-div + (second foreignlist) + (third foreignlist) + GNC-DENOM-AUTO + (logior (GNC-DENOM-SIGFIGS 8) GNC-RND-ROUND)) 0))))) ;; Get all the interesting splits, sorted by date. (gnc:get-match-commodity-splits-sorted currency-accounts diff --git a/libgnucash/engine/test/test-extras.scm b/libgnucash/engine/test/test-extras.scm index a040132f4a..90c3ed5094 100644 --- a/libgnucash/engine/test/test-extras.scm +++ b/libgnucash/engine/test/test-extras.scm @@ -203,10 +203,11 @@ (begin (xaccSplitSetMemo split-1 memo) (xaccSplitSetMemo split-2 memo))) + (if (> amount2 0) (gnc-pricedb-create (xaccAccountGetCommodity debit) (xaccAccountGetCommodity credit) (gnc-dmy2time64 DD MM YY) - (/ amount1 amount2)) + (/ amount1 amount2))) (xaccTransCommitEdit txn) txn))