diff options
Diffstat (limited to '')
-rw-r--r-- | module/vcomponent/formats/xcal.scm | 3 | ||||
-rw-r--r-- | module/vcomponent/formats/xcal/output.scm | 9 |
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) |