From dbd8713dda050a7b7147de6e5eacbf43d7fcc2db Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Hugo=20H=C3=B6rnquist?= Date: Thu, 25 Jun 2020 23:54:48 +0200 Subject: Fix number of problems with new serializers. --- module/output/common.scm | 4 +++- module/output/ical.scm | 1 + module/output/sxml-types.scm | 18 ++++++++++-------- module/output/xcal.scm | 3 ++- module/vcomponent/recurrence/internal.scm | 2 +- 5 files changed, 17 insertions(+), 11 deletions(-) diff --git a/module/output/common.scm b/module/output/common.scm index c501bcae..3955442f 100644 --- a/module/output/common.scm +++ b/module/output/common.scm @@ -5,6 +5,8 @@ (define-module (output common) :use-module (util) + :use-module (srfi srfi-1) + :use-module (vcomponent) ) ;; TODO this is also defined @ (vcomponent parse component) @@ -12,7 +14,7 @@ (string=? "X-" (string-take (symbol->string symb) 2))) ;; TODO this is also defined twice -(define (generate-uuid) +(define-public (generate-uuid) ((@ (rnrs io ports) call-with-port) ((@ (ice-9 popen) open-input-pipe) "uuidgen") (@ (ice-9 rdelim) read-line))) diff --git a/module/output/ical.scm b/module/output/ical.scm index b10e0c56..114178c6 100644 --- a/module/output/ical.scm +++ b/module/output/ical.scm @@ -14,6 +14,7 @@ :use-module (datetime zic) :use-module (glob) :use-module (vcomponent recurrence) + :use-module (vcomponent geo) :use-module (output types) :use-module (output common) ) diff --git a/module/output/sxml-types.scm b/module/output/sxml-types.scm index 623ff9e8..bd7253fd 100644 --- a/module/output/sxml-types.scm +++ b/module/output/sxml-types.scm @@ -3,26 +3,28 @@ :use-module (output types) :use-module (datetime) :use-module (datetime util) + :use-module (output common) ) (define (write-boolean _ v) `(boolean ,(if v "true" "false"))) -(define (write-date _ value) +(define (write-date _ v) `(date ,(date->string v "~Y-~m-~d"))) (define (write-datetime p v) ;; TODO TZID? - (datetime->string - (hashq-ref p 'X-HNH-ORIGINAL v) - ;; TODO ~z? - "~Y-~m-~dT~H:~M:~S~Z")) + `(date-time + ,(datetime->string + (hashq-ref p 'X-HNH-ORIGINAL v) + ;; TODO ~z? + "~Y-~m-~dT~H:~M:~S~Z"))) (define (write-time _ v) - (time->string v "~H:~M:S")) + `(time ,(time->string v "~H:~M:S"))) (define (write-recur _ v) - `(recur ,@(recur-rule->rrule-sxml v))) + `(recur ,@((@@ (vcomponent recurrence internal) recur-rule->rrule-sxml) v))) ;; sepparate since this text shouldn't be escaped (define (write-text _ v) @@ -39,7 +41,7 @@ (hashq-set! sxml-writers simple-type (lambda (p v) `(,(downcase-symbol simple-type) - ,((get-writer simple-type) p v))))) + ,(((@ (output types) get-writer) simple-type) p v))))) (hashq-set! sxml-writers 'BOOLEAN write-boolean) (hashq-set! sxml-writers 'DATE write-date) diff --git a/module/output/xcal.scm b/module/output/xcal.scm index 554955c5..fc2a30b0 100644 --- a/module/output/xcal.scm +++ b/module/output/xcal.scm @@ -16,7 +16,8 @@ (define writer (cond - [(and=> (prop vline 'VALUE) string->symbol) => get-writer] + [(and=> (prop vline 'VALUE) (compose string->symbol car)) + => get-writer] [(memv key '(COMPLETED DTEND DUE DTSTART RECURRENCE-ID CREATED DTSTAMP LAST-MODIFIED ACKNOWLEDGED EXDATE)) diff --git a/module/vcomponent/recurrence/internal.scm b/module/vcomponent/recurrence/internal.scm index 8c295bb9..738c80de 100644 --- a/module/vcomponent/recurrence/internal.scm +++ b/module/vcomponent/recurrence/internal.scm @@ -127,7 +127,7 @@ (map-fields (lambda (field value) `(,(downcase-symbol field) - ,(field->string filed value))) + ,(field->string field value))) rrule)) -- cgit v1.2.3