From 90ac6feef9146b48d6ca1d2a7a230188ec0fd2ed Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Hugo=20H=C3=B6rnquist?= Date: Thu, 25 Apr 2019 19:05:55 +0200 Subject: Change vulgar output to also use grouped events. --- module/output/terminal.scm | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/module/output/terminal.scm b/module/output/terminal.scm index e087a73e..3b8cb251 100644 --- a/module/output/terminal.scm +++ b/module/output/terminal.scm @@ -11,6 +11,7 @@ #:use-module (terminal escape) #:use-module (terminal util) #:use-module (vcomponent output) + #:use-module (vcomponent group) #:use-module (vcomponent) #:use-module (vcomponent datetime) @@ -56,10 +57,12 @@ (while #t (let ((events - (stream->list - (filter-sorted-stream - (cut event-in? <> time) - event-stream)))) + (group->event-list + (stream-car + ;; TODO reusing the same grouping causes it to lose events. + ;; I currently have no idea why, but it's BAD. + (get-groups-between (group-stream event-stream) + (time-utc->date time) (time-utc->date time)))))) (cls) (display-calendar-header! (time-utc->date time)) @@ -101,7 +104,7 @@ (set! time (remove-day time) cur-event 0)) ((#\t) - (set! time (date->time-utc (current-date)) + (set! time (date->time-utc (drop-time (current-date))) cur-event 0)) ((#\j #\J) (unless (= cur-event (1- (length events))) (mod! cur-event 1+))) @@ -123,7 +126,7 @@ (define (terminal-main calendars events args) (let ((opts (getopt-long args options))) (let ((time (date->time-utc - (or (and=> (option-ref opts 'date #f) parse-freeform-date) - (current-date))))) + (drop-time (or (and=> (option-ref opts 'date #f) parse-freeform-date) + (current-date)))))) (with-vulgar (lambda () (main-loop time events)))))) -- cgit v1.2.3