diff options
author | Hugo Hörnquist <hugo@lysator.liu.se> | 2019-03-09 11:47:50 +0100 |
---|---|---|
committer | Hugo Hörnquist <hugo@lysator.liu.se> | 2019-03-09 11:47:50 +0100 |
commit | 9ae3d41443d59c253257f637b03d7ed5854ad675 (patch) | |
tree | adb562fede1258928fe02af9a04f56a0df74cf56 /vcalendar/recur.scm | |
parent | Extend let* macro with SRFI-71. (diff) | |
download | calp-9ae3d41443d59c253257f637b03d7ed5854ad675.tar.gz calp-9ae3d41443d59c253257f637b03d7ed5854ad675.tar.xz |
Minor cleanups.
Diffstat (limited to 'vcalendar/recur.scm')
-rw-r--r-- | vcalendar/recur.scm | 29 |
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))))) |