aboutsummaryrefslogtreecommitdiff
path: root/module/output/terminal.scm
diff options
context:
space:
mode:
Diffstat (limited to 'module/output/terminal.scm')
-rw-r--r--module/output/terminal.scm11
1 files changed, 10 insertions, 1 deletions
diff --git a/module/output/terminal.scm b/module/output/terminal.scm
index 52d34331..20740cac 100644
--- a/module/output/terminal.scm
+++ b/module/output/terminal.scm
@@ -146,7 +146,16 @@
((#\k #\K) (unless (= cur-event 0)
(set! cur-event = (- 1))))
((#\g) (set! cur-event 0))
- ((#\G) (set! cur-event (1- (length events)))))
+ ((#\G) (set! cur-event (1- (length events))))
+ ((#\() (set-cursor-pos 0 (1- height))
+ (let* ((attr (make-termios)))
+ (tcgetattr! attr)
+ (set! (lflag attr) (logior ECHO (lflag attr)))
+ (tcsetattr! attr)
+ (display (readline ">")
+ (current-error-port))
+ (set! (lflag attr) (logand (lognot ECHO) (lflag attr)))
+ (tcsetattr! attr))))
(when (or (eof-object? char)
(memv char '(#\q)))