diff options
author | Hugo Hörnquist <hugo@lysator.liu.se> | 2023-11-14 00:31:19 +0100 |
---|---|---|
committer | Hugo Hörnquist <hugo@lysator.liu.se> | 2023-11-16 00:51:19 +0100 |
commit | 8df1c642c101db44f9b655027f0be78bfeb6cb96 (patch) | |
tree | 18245bcfbb421724ccb4bb75dc8e6970f51e1153 /module/vcomponent/create.scm | |
parent | Export 'extract' from (vcomponent) (diff) | |
download | calp-8df1c642c101db44f9b655027f0be78bfeb6cb96.tar.gz calp-8df1c642c101db44f9b655027f0be78bfeb6cb96.tar.xz |
Formatting changes.
Diffstat (limited to 'module/vcomponent/create.scm')
-rw-r--r-- | module/vcomponent/create.scm | 24 |
1 files changed, 13 insertions, 11 deletions
diff --git a/module/vcomponent/create.scm b/module/vcomponent/create.scm index 355839f0..ebf845fe 100644 --- a/module/vcomponent/create.scm +++ b/module/vcomponent/create.scm @@ -68,20 +68,22 @@ (cond ((null? attrs*) (values '() '())) ((even? (length attrs*)) (values attrs* '())) (else (init+last attrs*)))) + + (define (attach-property pair component) + (let ((k value (car+cdr pair))) + (prop* component k + (cond ((vline? value) + (key value k)) + ((list-value? value) + (map (lambda (value) (vline key: k vline-value: value)) + (list-value-value value))) + (else (vline key: k vline-value: value)))))) + ;; TODO add-child requires a UID on the child ;; Possibly just genenerate one here if missing (fold (swap add-child) - (fold (lambda (pair component) - (let ((k value (car+cdr pair))) - (prop* component k - (cond ((vline? value) - (key value k)) - ((list-value? value) - (map (lambda (value) (vline key: k vline-value: value)) - (list-value-value value))) - (else (vline key: k vline-value: value)))))) - (vcs-vcomponent - type: type) + (fold attach-property + (vcs-vcomponent type: type) (upcase-keys (kvlist->assq attrs))) children)) |