aboutsummaryrefslogtreecommitdiff
path: root/module/vcomponent/base.scm
diff options
context:
space:
mode:
authorHugo Hörnquist <hugo@lysator.liu.se>2020-08-13 10:43:33 +0200
committerHugo Hörnquist <hugo@lysator.liu.se>2020-08-13 10:43:33 +0200
commita902eb51621521d45c648d6a4d06d70d981dfaeb (patch)
treeafc31d4d17fa3939585ad30878b5b690d3b80db3 /module/vcomponent/base.scm
parentAdd TODO's (diff)
parentComment about generalizing. (diff)
downloadcalp-a902eb51621521d45c648d6a4d06d70d981dfaeb.tar.gz
calp-a902eb51621521d45c648d6a4d06d70d981dfaeb.tar.xz
Merge branch 'calchooser' into master
Diffstat (limited to 'module/vcomponent/base.scm')
-rw-r--r--module/vcomponent/base.scm10
1 files changed, 9 insertions, 1 deletions
diff --git a/module/vcomponent/base.scm b/module/vcomponent/base.scm
index 3e75e566..7b81fb05 100644
--- a/module/vcomponent/base.scm
+++ b/module/vcomponent/base.scm
@@ -148,7 +148,7 @@
(hash-map->list cons (get-component-properties component)))
(define-public (property-keys component)
- (map car (get-component-properties component)))
+ (hash-map->list (lambda (a _) a) (get-component-properties component)))
(define (copy-vline vline)
(make-vline (vline-key vline)
@@ -169,6 +169,14 @@
(copy-vline value))))
(get-component-properties component)))))
+;; updates target with all fields from source.
+;; fields in target but not in source left unchanged.
+;; parent and children unchanged
+(define-public (vcomponent-update! target source)
+ (for key in (property-keys source)
+ (set! (prop* target key)
+ (prop* source key))))
+
(define-public (extract field)
(lambda (e) (prop e field)))