From fe3787c427e16cc29c3bea3c8e40dcfc5a1356db Mon Sep 17 00:00:00 2001 From: Christopher Lam Date: Mon, 13 Jul 2020 22:28:00 +0800 Subject: [PATCH] [gnc-numeric] use srfi-9 records for :gnc-monetary --- bindings/guile/gnc-numeric.scm | 39 +++++++++++------------------ gnucash/report/html-style-sheet.scm | 2 +- 2 files changed, 15 insertions(+), 26 deletions(-) diff --git a/bindings/guile/gnc-numeric.scm b/bindings/guile/gnc-numeric.scm index f7c846a5c6..4f147a64e0 100644 --- a/bindings/guile/gnc-numeric.scm +++ b/bindings/guile/gnc-numeric.scm @@ -21,6 +21,8 @@ ;; Boston, MA 02110-1301, USA gnu@gnu.org ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +(use-modules (srfi srfi-9)) + ;; use 'logior' in guile to bit-combine RND and DENOM flags. (define GNC-RND-FLOOR 1) @@ -48,30 +50,17 @@ (define GNC-ERROR-REMAINDER -4) -(define - (make-record-type "" - '(commodity amount))) - -;; Constructor; takes one and one -(define (gnc:make-gnc-monetary c a) - ;;FIXME: we used to type-check the values, like: - ;; (gw:wcp-is-of-type? c) - (if (and #t (number? a)) - ((record-constructor ) c a) - (warn "wrong arguments for gnc:make-gnc-monetary: " c a))) - -(define gnc:gnc-monetary? - (record-predicate )) - -(define gnc:gnc-monetary-commodity - (record-accessor 'commodity)) - -(define gnc:gnc-monetary-amount - (record-accessor 'amount)) +(define-record-type :gnc-monetary + (make-gnc-monetary commodity amount) + gnc-monetary? + (commodity gnc-monetary-commodity) + (amount gnc-monetary-amount)) +(define gnc:make-gnc-monetary make-gnc-monetary) +(define gnc:gnc-monetary? gnc-monetary?) +(define gnc:gnc-monetary-commodity gnc-monetary-commodity) +(define gnc:gnc-monetary-amount gnc-monetary-amount) (define (gnc:monetary-neg a) - (if (gnc:gnc-monetary? a) - (gnc:make-gnc-monetary - (gnc:gnc-monetary-commodity a) - (gnc-numeric-neg (gnc:gnc-monetary-amount a))) - (warn "wrong arguments for gnc:monetary-neg: " a))) + (gnc:make-gnc-monetary + (gnc:gnc-monetary-commodity a) + (- (gnc:gnc-monetary-amount a)))) diff --git a/gnucash/report/html-style-sheet.scm b/gnucash/report/html-style-sheet.scm index 39127fe1cb..b0384e7e48 100644 --- a/gnucash/report/html-style-sheet.scm +++ b/gnucash/report/html-style-sheet.scm @@ -130,7 +130,7 @@ (list (cons "" gnc:default-html-string-renderer) (cons "" gnc:default-html-gnc-numeric-renderer) (cons "" gnc:default-html-number-renderer) - (cons "" gnc:default-html-gnc-monetary-renderer))) + (cons ':gnc-monetary gnc:default-html-gnc-monetary-renderer))) (and template (let ((ss (gnc:make-html-style-sheet-internal style-sheet-name template-name