aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHugo Hörnquist <hugo@lysator.liu.se>2023-10-16 15:21:32 +0200
committerHugo Hörnquist <hugo@lysator.liu.se>2023-10-16 15:21:32 +0200
commite96963ab77c6c3d4c12ea00dd4e6906121fb228f (patch)
tree4ab22dc1cc7e3155ebc5e31fc00a2dd4efafe0dc
parentRemove some old debug prints. (diff)
downloadcalp-e96963ab77c6c3d4c12ea00dd4e6906121fb228f.tar.gz
calp-e96963ab77c6c3d4c12ea00dd4e6906121fb228f.tar.xz
Fixen in vcomponent formats.
Previously almost everything was broken. This takes it back to a somewhat working state.
-rw-r--r--module/vcomponent/formats/sxcal.scm6
-rw-r--r--module/vcomponent/formats/xcal.scm3
-rw-r--r--module/vcomponent/formats/xcal/output.scm9
3 files changed, 10 insertions, 8 deletions
diff --git a/module/vcomponent/formats/sxcal.scm b/module/vcomponent/formats/sxcal.scm
index c02dbada..35e0ee1c 100644
--- a/module/vcomponent/formats/sxcal.scm
+++ b/module/vcomponent/formats/sxcal.scm
@@ -1,15 +1,15 @@
(define-module (vcomponent formats sxcal)
:use-module ((vcomponent formats xcal parse)
:select (sxcal->vcomponent))
- :export (serialize deserialize)
- )
+ :use-module ((vcomponent formats xcal output)
+ :select (vcomponent->sxcal))
+ :export (serialize deserialize))
(define (serialize component port)
(write (serialize/object component) port))
(define (serialize/object component)
- ;; TODO where is this defined?
(vcomponent->sxcal component))
(define (deserialize port)
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)