aboutsummaryrefslogtreecommitdiff
path: root/main.scm
diff options
context:
space:
mode:
authorHugo Hörnquist <hugo@lysator.liu.se>2019-03-21 01:17:37 +0100
committerHugo Hörnquist <hugo@lysator.liu.se>2019-03-21 01:53:21 +0100
commitd19fa67db7a4c8fb7b5fd58473f1390f54dd7983 (patch)
treef82f2d0413db2badbc1c17ded9f55733dab12e00 /main.scm
parentUpdate utility functions. (diff)
downloadcalp-d19fa67db7a4c8fb7b5fd58473f1390f54dd7983.tar.gz
calp-d19fa67db7a4c8fb7b5fd58473f1390f54dd7983.tar.xz
Change main-loop input.
Changed input for main loop from a list of calendars into a list of regular events and a list of repeating events.
Diffstat (limited to '')
-rwxr-xr-xmain.scm19
1 files changed, 9 insertions, 10 deletions
diff --git a/main.scm b/main.scm
index 71ea2ed4..0c83a4a8 100755
--- a/main.scm
+++ b/main.scm
@@ -35,17 +35,13 @@
trimmed)))
; TODO show truncated string
-(define (main-loop calendars)
+(define (main-loop regular-events repeating-events)
(define time (date->time-utc (current-date)))
(define cur-event 0)
(let loop ((char #\nul))
(let ((events
- (sort* (concat
- (map (lambda (cal)
- (filter (cut event-in? <> time)
- (children cal 'VEVENT)))
- calendars))
- time<? (extract "DTSTART"))))
+ (filter (cut event-in? <> time)
+ regular-events)))
(case char
;; TODO The explicit loop call is a hack to rerender the display
@@ -117,10 +113,13 @@
(define (main args)
(define calendars (map make-vcomponent calendar-files))
+ (define events (concatenate (map (cut children <> 'VEVENT) calendars)))
- (display calendar-files) (newline)
+ (let* ((repeating regular (partition repeating? events)))
+ (sort*! repeating time<? (extract 'DTSTART))
+ (sort*! regular time<? (extract 'DTSTART))
- (with-vulgar
- (lambda () (main-loop calendars))))
+ (with-vulgar
+ (lambda () (main-loop regular repeating)))))