diff options
author | Hugo Hörnquist <hugo@lysator.liu.se> | 2023-04-18 19:28:12 +0200 |
---|---|---|
committer | Hugo Hörnquist <hugo@lysator.liu.se> | 2023-04-21 15:58:41 +0200 |
commit | 6d5a9c21158b81b61278d39868597324e44444c1 (patch) | |
tree | a06497fc90d295c3ff3a8722abd2d5379863a574 /module/vcomponent/formats/xcal.scm | |
parent | Utilities for namespaced sxml. (diff) | |
download | calp-6d5a9c21158b81b61278d39868597324e44444c1.tar.gz calp-6d5a9c21158b81b61278d39868597324e44444c1.tar.xz |
Change xcal to work on namespaced sxml instead.
Diffstat (limited to 'module/vcomponent/formats/xcal.scm')
-rw-r--r-- | module/vcomponent/formats/xcal.scm | 16 |
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)) |