aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHugo Hörnquist <hugo@hornquist.se>2019-04-25 19:05:55 +0200
committerHugo Hörnquist <hugo@hornquist.se>2019-04-25 19:05:55 +0200
commit90ac6feef9146b48d6ca1d2a7a230188ec0fd2ed (patch)
tree677e7e52b471d5e00709cc5ed4e6c69b7083c5a6
parentMove group-stream, add helper methods. (diff)
downloadcalp-90ac6feef9146b48d6ca1d2a7a230188ec0fd2ed.tar.gz
calp-90ac6feef9146b48d6ca1d2a7a230188ec0fd2ed.tar.xz
Change vulgar output to also use grouped events.
-rw-r--r--module/output/terminal.scm17
1 files 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))))))