aboutsummaryrefslogtreecommitdiff
path: root/module/vcomponent.scm
diff options
context:
space:
mode:
authorHugo Hörnquist <hugo@hornquist.se>2019-05-22 22:04:50 +0200
committerHugo Hörnquist <hugo@hornquist.se>2019-05-22 22:04:50 +0200
commitf575740684715d3de606b37f114d4f215c66c797 (patch)
treef4cf2f979d6011dabb283096f5b172ce89d39fda /module/vcomponent.scm
parentFix git version parsing. (diff)
downloadcalp-f575740684715d3de606b37f114d4f215c66c797.tar.gz
calp-f575740684715d3de606b37f114d4f215c66c797.tar.xz
Add support for events without DTEND set.
Diffstat (limited to 'module/vcomponent.scm')
-rw-r--r--module/vcomponent.scm26
1 files changed, 19 insertions, 7 deletions
diff --git a/module/vcomponent.scm b/module/vcomponent.scm
index b628c11a..cc79b646 100644
--- a/module/vcomponent.scm
+++ b/module/vcomponent.scm
@@ -32,23 +32,35 @@
;; TZSET is the generated recurrence set of a timezone
(set! (attr tz 'X-HNH-TZSET)
- (make-tz-set tz)))
+ (make-tz-set tz)
+ #;
+ ((@ (srfi srfi-41) stream)
+ (list
+ (car (children tz))
+ (cadr (children tz))))
+ ))
(for ev in (children cal 'VEVENT)
- (define date (parse-datetime (attr ev 'DTSTART)))
- (define end-date (parse-datetime (attr ev 'DTEND)))
+ (define dptr (attr* ev 'DTSTART))
+ (define eptr (attr* ev 'DTEND))
- (set! (attr ev "DTSTART") (date->time-utc date)
- (attr ev "DTEND") (date->time-utc end-date))
+ (define date (parse-datetime (value dptr)))
+ (define end-date
+ (if (value eptr)
+ (parse-datetime (value eptr))
+ (set (date-hour date) = (+ 1))))
+
+ (set! (value dptr) (date->time-utc date)
+ (value eptr) (date->time-utc end-date))
(when (prop (attr* ev 'DTSTART) 'TZID)
(set! (zone-offset date) (get-tz-offset ev)
- (attr ev 'DTSTART) (date->time-utc date)
+ (value dptr) (date->time-utc date)
;; The standard says that DTEND must have the same
;; timezone as DTSTART. Here we trust that blindly.
(zone-offset end-date) (zone-offset date)
- (attr ev 'DTEND) (date->time-utc end-date)))))
+ (value eptr) (date->time-utc end-date)))))
;; (define-public value caar)