diff --git a/gnucash/report/report-system/html-style-sheet.scm b/gnucash/report/report-system/html-style-sheet.scm index 7852cb2859..d3aa5e46be 100644 --- a/gnucash/report/report-system/html-style-sheet.scm +++ b/gnucash/report/report-system/html-style-sheet.scm @@ -21,6 +21,7 @@ ;; Boston, MA 02110-1301, USA gnu@gnu.org ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +(use-modules (ice-9 match)) (use-modules (gnucash gettext)) (define *gnc:_style-sheet-templates_* (make-hash-table 23)) @@ -67,23 +68,15 @@ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (define (gnc:define-html-style-sheet . args) - (let ((ss - ((record-constructor ) #f #f #f #f))) - (let loop ((left args)) - (if (and (list? left) - (not (null? left)) - (not (null? (cdr left)))) - (let* ((field (car left)) - (value (cadr left)) - (mod (record-modifier field))) - (mod ss value) - (loop (cddr left))))) - - ;; store the style sheet template - (hash-set! *gnc:_style-sheet-templates_* - (gnc:html-style-sheet-template-name ss) - ss))) - + (let loop ((args args) + (ss ((record-constructor ) #f #f #f #f))) + (match args + ((field value . rest) + ((record-modifier field) ss value) + (loop rest ss)) + (else ;; store the style sheet template + (hash-set! *gnc:_style-sheet-templates_* + (gnc:html-style-sheet-template-name ss) ss))))) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; methods