aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--module/output/ical.scm10
-rw-r--r--module/vcomponent/base.scm6
2 files changed, 15 insertions, 1 deletions
diff --git a/module/output/ical.scm b/module/output/ical.scm
index 87a85f82..cd97b346 100644
--- a/module/output/ical.scm
+++ b/module/output/ical.scm
@@ -116,6 +116,16 @@
;; Remove from output
[('X-HNH-FILENAME _) 'noop]
+ [(key (vlines ...))
+ (for vline in vlines
+ (display
+ (ical-line-fold
+ ;; Expected output: key;p1=v;p3=10:value
+ (format #f "~a~:{;~a=~@{~a~^,~}~}:~a"
+ key (properties vline)
+ (value-format key vline))))
+ (display "\r\n"))]
+
[(key vline)
(display
(ical-line-fold
diff --git a/module/vcomponent/base.scm b/module/vcomponent/base.scm
index 994ac197..9475addf 100644
--- a/module/vcomponent/base.scm
+++ b/module/vcomponent/base.scm
@@ -100,8 +100,12 @@
;; vcomponent x (or str symb) → value
(define (get-attr component key)
- (get-attribute-value component (as-symb key) #f))
+ (let ((attrs (get-attr* component key)))
+ (cond [(not attrs) #f]
+ [(list? attrs) (concatenate (map value attrs))]
+ [else (value attrs)])))
+;; TODO do something sensible here
(define (set-attr! component key value)
(set-attribute! component (as-symb key) value))