aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHugo Hörnquist <hugo@lysator.liu.se>2020-06-25 23:54:48 +0200
committerHugo Hörnquist <hugo@lysator.liu.se>2020-06-25 23:54:48 +0200
commitdbd8713dda050a7b7147de6e5eacbf43d7fcc2db (patch)
treebe8ca4fb35165df0fae371ca7a3528802445982e
parentMinor changes to vcomponent base. (diff)
downloadcalp-dbd8713dda050a7b7147de6e5eacbf43d7fcc2db.tar.gz
calp-dbd8713dda050a7b7147de6e5eacbf43d7fcc2db.tar.xz
Fix number of problems with new serializers.
-rw-r--r--module/output/common.scm4
-rw-r--r--module/output/ical.scm1
-rw-r--r--module/output/sxml-types.scm18
-rw-r--r--module/output/xcal.scm3
-rw-r--r--module/vcomponent/recurrence/internal.scm2
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))