aboutsummaryrefslogtreecommitdiff
path: root/vcalendar
diff options
context:
space:
mode:
authorHugo Hörnquist <hugo@lysator.liu.se>2019-03-09 11:47:50 +0100
committerHugo Hörnquist <hugo@lysator.liu.se>2019-03-09 11:47:50 +0100
commit9ae3d41443d59c253257f637b03d7ed5854ad675 (patch)
treeadb562fede1258928fe02af9a04f56a0df74cf56 /vcalendar
parentExtend let* macro with SRFI-71. (diff)
downloadcalp-9ae3d41443d59c253257f637b03d7ed5854ad675.tar.gz
calp-9ae3d41443d59c253257f637b03d7ed5854ad675.tar.xz
Minor cleanups.
Diffstat (limited to 'vcalendar')
-rw-r--r--vcalendar/recur.scm29
1 files changed, 14 insertions, 15 deletions
diff --git a/vcalendar/recur.scm b/vcalendar/recur.scm
index 3a02aa73..4ca71f29 100644
--- a/vcalendar/recur.scm
+++ b/vcalendar/recur.scm
@@ -1,13 +1,11 @@
(define-module (vcalendar recur)
#:use-module (srfi srfi-1)
- #:use-module (srfi srfi-8) ; Recieve
#:use-module (srfi srfi-9 gnu) ; Records
#:use-module (srfi srfi-19) ; Datetime
#:use-module (srfi srfi-19 util)
#:use-module (srfi srfi-26) ; Cut
#:use-module (srfi srfi-41) ; Streams
#:use-module (ice-9 curried-definitions)
- ;; #:use-module (ice-9 match)
#:use-module (vcalendar)
#:use-module (vcalendar datetime)
#:use-module (util)
@@ -119,28 +117,29 @@
(string-split str #\;))))
(define (generate-next event rule)
- (let ((new-event (copy-vcomponent event)))
+ (let ((ne (copy-vcomponent event))) ; new event
(case (freq rule)
((WEEKLY)
- (transform-attr! new-event "DTSTART" (cut time-add <> 1 weeks))
- (set! (attr new-event "DTEND")
- (add-duration (attr new-event "DTSTART")
- (attr new-event "DURATION")))
- (values new-event rule))
+ (mod! (attr ne "DTSTART") (cut time-add <> 1 weeks))
+
+ (set! (attr ne "DTEND")
+ (add-duration (attr ne "DTSTART")
+ (attr ne "DURATION")))
+ (values ne rule))
((DAILY)
- (transform-attr! new-event "DTSTART" (cut time-add <> 1 days))
- (set! (attr new-event "DTEND")
- (add-duration (attr new-event "DTSTART")
- (attr new-event "DURATION")))
- (values new-event rule))
+ (mod! (attr ne "DTSTART") (cut time-add <> 1 days))
+
+ (set! (attr ne "DTEND")
+ (add-duration (attr ne "DTSTART")
+ (attr ne "DURATION")))
+ (values ne rule))
(else (values '() rule)))))
(define-stream (recur-event-stream event rule-obj)
(stream-cons event
- (receive (next-event next-rule)
- (generate-next event rule-obj)
+ (let* ([next-event next-rule (generate-next event rule-obj)])
(if (null? next-event)
stream-null
(recur-event-stream next-event next-rule)))))