aboutsummaryrefslogtreecommitdiff
path: root/module/vcomponent/formats/xcal
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--module/vcomponent/formats/xcal.scm3
-rw-r--r--module/vcomponent/formats/xcal/output.scm9
2 files changed, 7 insertions, 5 deletions
diff --git a/module/vcomponent/formats/xcal.scm b/module/vcomponent/formats/xcal.scm
index 29a1d92f..8fadde75 100644
--- a/module/vcomponent/formats/xcal.scm
+++ b/module/vcomponent/formats/xcal.scm
@@ -8,8 +8,9 @@
:use-module ((hnh util) :select (->))
:export (serialize deserialize))
+(define-public xcal (string->symbol "urn:ietf:params:xml:ns:icalendar-2.0"))
-(define* (serialize component port key: (namespaces '()))
+(define* (serialize component port key: (namespaces `((,xcal . xcal))))
(-> (vcomponent->sxcal component)
ns-wrap
(namespaced-sxml->xml port: port
diff --git a/module/vcomponent/formats/xcal/output.scm b/module/vcomponent/formats/xcal/output.scm
index 2378d87e..6d5e0656 100644
--- a/module/vcomponent/formats/xcal/output.scm
+++ b/module/vcomponent/formats/xcal/output.scm
@@ -76,10 +76,11 @@
(warning (G_ "Unknown key ~a") k)
(get-writer 'TEXT)]))
- (writer ((@@ (vcomponent base) get-vline-parameters) vline)
- (value vline)))
+ (writer (vline-parameters vline)
+ (vline-value vline)))
-(define (property->value-tag tag . values)
+(define (property->value-tag pair)
+ (define-values (tag value) (car+cdr pair))
(if (or (eq? tag 'VALUE)
(internal-field? tag))
#f
@@ -87,7 +88,7 @@
,@(map (lambda (v)
;; TODO parameter types!!!! (rfc6321 3.5.)
`(,(xml xcal 'text) ,(->string v)))
- values))))
+ value))))
;; ((key value ...) ...) -> `(parameters , ... )
(define (parameters-tag parameters)