diff options
author | Hugo Hörnquist <hugo@lysator.liu.se> | 2019-03-21 01:17:37 +0100 |
---|---|---|
committer | Hugo Hörnquist <hugo@lysator.liu.se> | 2019-03-21 01:53:21 +0100 |
commit | d19fa67db7a4c8fb7b5fd58473f1390f54dd7983 (patch) | |
tree | f82f2d0413db2badbc1c17ded9f55733dab12e00 | |
parent | Update utility functions. (diff) | |
download | calp-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-x | main.scm | 19 |
1 files changed, 9 insertions, 10 deletions
@@ -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))))) |