aboutsummaryrefslogtreecommitdiff
path: root/module/vcomponent
diff options
context:
space:
mode:
authorHugo Hörnquist <hugo@lysator.liu.se>2020-06-25 18:15:32 +0200
committerHugo Hörnquist <hugo@lysator.liu.se>2020-06-25 18:25:33 +0200
commit7dc9e082426cd6c81310c2f78088b5b613bd0c10 (patch)
tree4f3f2295eef117bc539677775f63c1c16fc6bacc /module/vcomponent
parentICS writer now handles types and parameters. (diff)
downloadcalp-7dc9e082426cd6c81310c2f78088b5b613bd0c10.tar.gz
calp-7dc9e082426cd6c81310c2f78088b5b613bd0c10.tar.xz
Add structure for importing events.
Diffstat (limited to 'module/vcomponent')
-rw-r--r--module/vcomponent/parse.scm6
-rw-r--r--module/vcomponent/parse/component.scm7
2 files changed, 9 insertions, 4 deletions
diff --git a/module/vcomponent/parse.scm b/module/vcomponent/parse.scm
index 960fb6eb..b20fcfc8 100644
--- a/module/vcomponent/parse.scm
+++ b/module/vcomponent/parse.scm
@@ -105,17 +105,19 @@
;; Parse a vdir or ics file at the given path.
(define-public (parse-cal-path path)
+ ;; TODO check (access? path R_OK) ?
(define st (stat path))
(define cal
(case (stat:type st)
[(regular)
(let ((comp (call-with-input-file path parse-calendar)))
- (set! (attr comp 'X-HNH-SOURCETYPE) "file")
+ (set! (attr comp 'X-HNH-SOURCETYPE) 'file)
comp) ]
[(directory)
(report-time! "Parsing ~a" path)
(let ((comp (parse-vdir path)))
- (set! (attr comp 'X-HNH-SOURCETYPE) "vdir")
+ (set! (attr comp 'X-HNH-SOURCETYPE) 'vdir
+ (attr comp 'X-HNH-DIRECTORY) path)
comp)]
[(block-special char-special fifo socket unknown symlink)
=> (lambda (t) (error "Can't parse file of type " t))]))
diff --git a/module/vcomponent/parse/component.scm b/module/vcomponent/parse/component.scm
index 69b833dd..f7dbdf71 100644
--- a/module/vcomponent/parse/component.scm
+++ b/module/vcomponent/parse/component.scm
@@ -109,7 +109,7 @@
(cond
[(and=> (hashq-ref params 'VALUE) string->symbol) => get-parser]
- [(memv key '(COMPLETED DTEND DUE DTSTART RECURRENCE-ID RDATE
+ [(memv key '(COMPLETED DTEND DUE DTSTART RECURRENCE-ID RDATE
CREATED DTSTAMP LAST-MODIFIED
;; only on VALARM
ACKNOWLEDGED
@@ -142,7 +142,10 @@
(lambda (params value)
(let ((v (car ((get-parser 'TEXT) params value))))
(unless (and (string? v) (string=? "2.0" v))
- (warning "File of unsuported version. Proceed with caution"))))]
+ #f
+ ;; (warning "File of unsuported version. Proceed with caution")
+ )
+ v))]
[(memv key '(TRANSP))
(enum-parser '(OPAQUE TRANSPARENT))]