From 852b1496cb70bcb3a0dbe54799bd632814e3b1fc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Hugo=20H=C3=B6rnquist?= Date: Fri, 29 Mar 2019 15:25:38 +0100 Subject: Move TTY input to end of loop. --- module/main.scm | 37 +++++++++++++++++++++---------------- 1 file changed, 21 insertions(+), 16 deletions(-) (limited to 'module/main.scm') diff --git a/module/main.scm b/module/main.scm index 0ad4da63..995e55a6 100755 --- a/module/main.scm +++ b/module/main.scm @@ -38,12 +38,15 @@ trimmed))) ; TODO show truncated string +(define (now) + (date->time-utc (current-date))) + (define (main-loop regular-events repeating-events) - (define time (date->time-utc (current-date))) + (define time (now)) (define cur-event 0) (call/ec (lambda (return) - (let loop ((char #\nul)) + (let loop () (let ((events ;; TODO change back to filter-sorted once it's fixed (merge (filter ;-sorted @@ -57,19 +60,6 @@ ev-timedate time)) @@ -116,8 +106,23 @@ (string #\newline)) ))) + (let ((char (read-char))) + (case char + ((#\L #\l) (mod! time add-day) (set! cur-event 0)) + ((#\h #\H) (mod! time remove-day) (set! cur-event 0)) + ((#\t) (set! time (now)) (set! cur-event 0)) + ((#\j #\J) (unless (= cur-event (1- (length events))) + (mod! cur-event 1+))) + ((#\k #\K) (unless (= cur-event 0) + (mod! cur-event 1-))) + ((#\g) (set! cur-event 0)) + ((#\G) (set! cur-event (1- (length events))))) + + (when (or (eof-object? char) + (memv char (list #\q (ctrl #\C)))) + (return #f))) ;; (format #t "c = ~c (~d)~%" char (char->integer char)) - (loop (read-char (current-input-port))) + (loop) ))))) -- cgit v1.2.3