aboutsummaryrefslogtreecommitdiff
path: root/module/vcomponent/formats/xcal.scm
diff options
context:
space:
mode:
Diffstat (limited to 'module/vcomponent/formats/xcal.scm')
-rw-r--r--module/vcomponent/formats/xcal.scm16
1 files changed, 10 insertions, 6 deletions
diff --git a/module/vcomponent/formats/xcal.scm b/module/vcomponent/formats/xcal.scm
index cfc70a92..29a1d92f 100644
--- a/module/vcomponent/formats/xcal.scm
+++ b/module/vcomponent/formats/xcal.scm
@@ -1,5 +1,6 @@
(define-module (vcomponent formats xcal)
- :use-module (sxml simple)
+ :use-module (sxml namespaced)
+ :use-module (sxml namespaced util)
:use-module ((vcomponent formats xcal output)
:select (vcomponent->sxcal ns-wrap))
:use-module ((vcomponent formats xcal parse)
@@ -8,16 +9,19 @@
:export (serialize deserialize))
-(define (serialize component port)
+(define* (serialize component port key: (namespaces '()))
(-> (vcomponent->sxcal component)
ns-wrap
- (sxml->xml port)
- ))
+ (namespaced-sxml->xml port: port
+ namespaces: namespaces)))
(define (serialize/object component)
(call-with-output-string (lambda (p) (serialize component p))))
-(define (deserialize port)
- (-> (xml->sxml port)
+(define* (deserialize port)
+ (-> port
+ xml->namespaced-sxml
+ root-element ; Strip potential *TOP*
+ cadr ; Remove containing icalendar
sxcal->vcomponent))