diff --git a/gnucash/report/html-style-sheet.scm b/gnucash/report/html-style-sheet.scm
index 9a05c31169..5fb0b1a677 100644
--- a/gnucash/report/html-style-sheet.scm
+++ b/gnucash/report/html-style-sheet.scm
@@ -21,42 +21,30 @@
;; Boston, MA 02110-1301, USA gnu@gnu.org
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+(use-modules (srfi srfi-9))
(use-modules (ice-9 match))
(use-modules (gnucash core-utils))
(define *gnc:_style-sheet-templates_* (make-hash-table 23))
(define *gnc:_style-sheets_* (make-hash-table 23))
-(define
- (make-record-type ""
- '(version name options-generator renderer)))
+(define-record-type
+ (make-ss-template version name options-generator renderer)
+ ss-template?
+ (version ss-template-version ss-template-set-version!)
+ (name ss-template-name ss-template-set-name!)
+ (options-generator ss-template-options-generator ss-template-set-options-generator!)
+ (renderer ss-template-renderer ss-template-set-renderer!))
-(define gnc:html-style-sheet-template?
- (record-predicate ))
-
-(define gnc:html-style-sheet-template-version
- (record-accessor 'version))
-
-(define gnc:html-style-sheet-template-set-version!
- (record-modifier 'version))
-
-(define gnc:html-style-sheet-template-name
- (record-accessor 'name))
-
-(define gnc:html-style-sheet-template-set-name!
- (record-modifier 'name))
-
-(define gnc:html-style-sheet-template-options-generator
- (record-accessor 'options-generator))
-
-(define gnc:html-style-sheet-template-set-options-generator!
- (record-modifier 'options-generator))
-
-(define gnc:html-style-sheet-template-renderer
- (record-accessor 'renderer))
-
-(define gnc:html-style-sheet-template-set-renderer!
- (record-modifier 'renderer))
+(define gnc:html-style-sheet-template? ss-template?)
+(define gnc:html-style-sheet-template-version ss-template-version)
+(define gnc:html-style-sheet-template-set-version! ss-template-set-version!)
+(define gnc:html-style-sheet-template-name ss-template-name)
+(define gnc:html-style-sheet-template-set-name! ss-template-set-name!)
+(define gnc:html-style-sheet-template-options-generator ss-template-options-generator)
+(define gnc:html-style-sheet-template-set-options-generator! ss-template-set-options-generator!)
+(define gnc:html-style-sheet-template-renderer ss-template-renderer)
+(define gnc:html-style-sheet-template-set-renderer! ss-template-set-renderer!)
(define (gnc:html-style-sheet-template-find tname)
(hash-ref *gnc:_style-sheet-templates_* tname))
@@ -68,56 +56,38 @@
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(define (gnc:define-html-style-sheet . args)
- (let loop ((args args)
- (ss ((record-constructor ) #f #f #f #f)))
+ (let loop ((args args) (ss (make-ss-template #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)))))
+ (_ (hash-set! *gnc:_style-sheet-templates_*
+ (gnc:html-style-sheet-template-name ss) ss)))))
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; methods
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-(define
- (make-record-type ""
- '(name type options renderer style)))
+(define-record-type
+ (make-html-ss name type options renderer style)
+ html-ss?
+ (name ss-name ss-set-name!)
+ (type ss-type ss-set-type!)
+ (options ss-options ss-set-options!)
+ (renderer ss-renderer ss-set-renderer!)
+ (style ss-style))
-(define gnc:html-style-sheet?
- (record-predicate ))
-
-(define gnc:html-style-sheet-name
- (record-accessor 'name))
-
-(define gnc:html-style-sheet-set-name!
- (record-modifier 'name))
-
-(define gnc:html-style-sheet-type
- (record-accessor 'type))
-
-(define gnc:html-style-sheet-set-type!
- (record-modifier 'type))
-
-(define gnc:html-style-sheet-options
- (record-accessor 'options))
-
-(define gnc:html-style-sheet-set-options!
- (record-modifier 'options))
-
-(define gnc:html-style-sheet-renderer
- (record-accessor 'renderer))
-
-(define gnc:html-style-sheet-set-renderer!
- (record-modifier 'renderer))
-
-(define gnc:make-html-style-sheet-internal
- (record-constructor ))
-
-(define gnc:html-style-sheet-style
- (record-accessor 'style))
+(define gnc:make-html-style-sheet-internal make-html-ss)
+(define gnc:html-style-sheet? html-ss?)
+(define gnc:html-style-sheet-name ss-name)
+(define gnc:html-style-sheet-set-name! ss-set-name!)
+(define gnc:html-style-sheet-type ss-type)
+(define gnc:html-style-sheet-set-type! ss-set-type!)
+(define gnc:html-style-sheet-options ss-options)
+(define gnc:html-style-sheet-set-options! ss-set-options!)
+(define gnc:html-style-sheet-renderer ss-renderer)
+(define gnc:html-style-sheet-set-renderer! ss-set-renderer!)
+(define gnc:html-style-sheet-style ss-style)
(define gnc:current-saved-stylesheets
(gnc-build-userdata-path "stylesheets-2.0"))