diff --git a/gnucash/import-export/qif-imp/qif-to-gnc.scm b/gnucash/import-export/qif-imp/qif-to-gnc.scm index 10ac1780b1..4ab978dcb9 100644 --- a/gnucash/import-export/qif-imp/qif-to-gnc.scm +++ b/gnucash/import-export/qif-imp/qif-to-gnc.scm @@ -26,6 +26,7 @@ (use-modules (srfi srfi-13)) +(use-modules (ice-9 match)) (use-modules (gnucash import-export string)) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; @@ -513,12 +514,10 @@ ;; Look for the transaction status (QIF "C" line). When it exists, apply ;; the cleared (c) or reconciled (y) status to the split. Otherwise, apply ;; user preference. - (if (eq? qif-cleared 'cleared) - (xaccSplitSetReconcile gnc-near-split #\c) - (if (eq? qif-cleared 'reconciled) - (xaccSplitSetReconcile gnc-near-split #\y) - ;; Apply user preference by default. - (xaccSplitSetReconcile gnc-near-split transaction-status-pref))) + (case qif-cleared + ((cleared) (xaccSplitSetReconcile gnc-near-split #\c)) + ((reconciled) (xaccSplitSetReconcile gnc-near-split #\y)) + (else (xaccSplitSetReconcile gnc-near-split transaction-status-pref))) (if (not qif-security) (begin @@ -595,11 +594,9 @@ (set! far-acct (hash-ref gnc-acct-hash far-acct-name)) ;; set the reconcile status. - (let ((cleared (qif-split:matching-cleared qif-split))) - (if (eq? 'cleared cleared) - (xaccSplitSetReconcile gnc-far-split #\c)) - (if (eq? 'reconciled cleared) - (xaccSplitSetReconcile gnc-far-split #\y))) + (case (qif-split:matching-cleared qif-split) + ((cleared) (xaccSplitSetReconcile gnc-far-split #\c)) + ((reconciled) (xaccSplitSetReconcile gnc-far-split #\y))) ;; finally, plug the split into the account (xaccSplitSetAccount gnc-far-split far-acct) @@ -762,12 +759,9 @@ (xaccSplitSetValue gnc-near-split (n- split-amt)) (xaccSplitSetValue gnc-far-split split-amt)))) - (let ((cleared (qif-split:matching-cleared - (car (qif-xtn:splits qif-xtn))))) - (if (eq? 'cleared cleared) - (xaccSplitSetReconcile gnc-far-split #\c)) - (if (eq? 'reconciled cleared) - (xaccSplitSetReconcile gnc-far-split #\y))) + (case (qif-split:matching-cleared (car (qif-xtn:splits qif-xtn))) + ((cleared) (xaccSplitSetReconcile gnc-far-split #\c)) + ((reconciled) (xaccSplitSetReconcile gnc-far-split #\y))) (if qif-commission-acct (let* ((commission-acct-info @@ -957,14 +951,9 @@ (this-group-amt (gnc-numeric-zero)) (how #f) (date-matches - (let ((self-date (qif-xtn:date xtn))) - (and (pair? self-date) - (pair? date) - (eq? (length self-date) 3) - (eq? (length date) 3) - (= (car self-date) (car date)) - (= (cadr self-date) (cadr date)) - (= (caddr self-date) (caddr date))))) + (match (cons date (qif-xtn:date xtn)) + (((a b c) . (a b c)) #t) + (_ #f))) (n- (lambda (n) (gnc-numeric-neg n))) (nsub (lambda (a b) (gnc-numeric-sub a b 0 GNC-DENOM-LCD))) (n+ (lambda (a b) (gnc-numeric-add a b 0 GNC-DENOM-LCD)))