From 06b6d60f5bcd085b9abb13ae19e6bbd08d8b7980 Mon Sep 17 00:00:00 2001 From: Jeremy White Date: Mon, 14 Aug 2023 09:36:14 -0500 Subject: [PATCH] Screen out price records with blank values. Found a live Quicken record with an empty price. --- gnucash/import-export/qif-imp/qif-file.scm | 6 +++++- gnucash/import-export/qif-imp/test/test-qif-imp.scm | 3 +++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/gnucash/import-export/qif-imp/qif-file.scm b/gnucash/import-export/qif-imp/qif-file.scm index f27e460b97..06fce170b8 100644 --- a/gnucash/import-export/qif-imp/qif-file.scm +++ b/gnucash/import-export/qif-imp/qif-file.scm @@ -1163,6 +1163,10 @@ (string->number (cadr fracprice))))) (set! price (format #f "~f" total)))) - (qif-price:set-share-price! current-xtn price)))) + (qif-price:set-share-price! current-xtn price) + + ;; A blank entry will not necessarily throw an exception, but is invalid + (if (or (string-null? symbol) (or (string-null? price) (string-null? date))) + (set! current-xtn #f))))) (set! current-xtn #f)) current-xtn)) diff --git a/gnucash/import-export/qif-imp/test/test-qif-imp.scm b/gnucash/import-export/qif-imp/test/test-qif-imp.scm index 08071be90a..dda423448a 100644 --- a/gnucash/import-export/qif-imp/test/test-qif-imp.scm +++ b/gnucash/import-export/qif-imp/test/test-qif-imp.scm @@ -77,5 +77,8 @@ (qif-price:set-date! model "1/1' 4") (test-equal parsed model)) + (let ((parsed (qif-file:parse-price-line "\"ABC\",,\"1/1' 4\""))) + (test-equal parsed #f)) + (let ((parsed (qif-file:parse-price-line "\"ABC\",\"1/1' 4\""))) (test-equal parsed #f)))