aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHugo Hörnquist <hugo@lysator.liu.se>2020-08-10 15:29:44 +0200
committerHugo Hörnquist <hugo@lysator.liu.se>2020-08-10 15:29:44 +0200
commitb8520a37c1bd075c0c90ad705a09021120d02187 (patch)
treebbd6ab6c079537f8e495aa776d1f961313d56920
parentAllow param, children and type in search queries. (diff)
downloadcalp-b8520a37c1bd075c0c90ad705a09021120d02187.tar.gz
calp-b8520a37c1bd075c0c90ad705a09021120d02187.tar.xz
Simplify term input.
-rw-r--r--module/output/terminal.scm40
1 files changed, 18 insertions, 22 deletions
diff --git a/module/output/terminal.scm b/module/output/terminal.scm
index 7042ead8..946f5100 100644
--- a/module/output/terminal.scm
+++ b/module/output/terminal.scm
@@ -157,6 +157,20 @@
#:width (min 70 width))
(- height 8 5 (length events) 5)))))))
+(define (get-line prompt)
+ (let* ((attr (make-termios))
+ (input-string #f))
+ (tcgetattr! attr)
+ (set! (lflag attr) (logior ECHO (lflag attr)))
+ (tcsetattr! attr)
+ (system "tput cnorm")
+ (set! input-string (readline prompt))
+ (system "tput civis")
+ (set! (lflag attr) (logand (lognot ECHO) (lflag attr)))
+ (tcsetattr! attr)
+ input-string
+ ))
+
(define-method (input (this <day-view>) char)
(set! (page-length this) (length (cached-events this)))
@@ -178,34 +192,16 @@
(active-element this) 0))
((#\/) (set-cursor-pos 0 (1- height))
- (let* ((attr (make-termios))
- (search-term #f))
- (tcgetattr! attr)
- (set! (lflag attr) (logior ECHO (lflag attr)))
- (tcsetattr! attr)
- (system "tput cnorm")
- (set! search-term (readline "quick search: "))
- (system "tput civis")
- (set! (lflag attr) (logand (lognot ECHO) (lflag attr)))
- (tcsetattr! attr)
+ (let ((search-term (get-line "quick search: ")))
`(push ,(search-view
(format #f "(regexp-exec (make-regexp \"~a\" regexp/icase) (prop event 'SUMMARY))"
search-term)
(get-event-set this)))))
((#\() (set-cursor-pos 0 (1- height))
- (let* ((attr (make-termios))
- (search-term #f))
- (tcgetattr! attr)
- (set! (lflag attr) (logior ECHO (lflag attr)))
- (tcsetattr! attr)
- (system "tput cnorm")
- (set! search-term (readline "search: "))
- (system "tput civis")
- (set! (lflag attr) (logand (lognot ECHO) (lflag attr)))
- (tcsetattr! attr)
- `(push ,(search-view search-term (get-event-set this)))
- ))
+ (let ((search-term (get-line "search: ")))
+ `(push ,(search-view search-term (get-event-set this)))))
+
(else (next-method))))
(define (day-view event-set date)