diff options
Diffstat (limited to 'src/prompt.lisp')
-rw-r--r-- | src/prompt.lisp | 33 |
1 files changed, 0 insertions, 33 deletions
diff --git a/src/prompt.lisp b/src/prompt.lisp deleted file mode 100644 index afe8604..0000000 --- a/src/prompt.lisp +++ /dev/null @@ -1,33 +0,0 @@ -;;;; prompt.lisp -- a function using readlline to collect text from the user - -(defpackage #:oneliners.cli.prompt - (:use #:cl) - (:local-nicknames (#:rl #:cl-readline)) - (:export #:prompt)) - -(in-package :oneliners.cli.prompt) - -(defun prompt (prompt - &key - (expect (constantly t)) - retry-text - (prefill "")) - ;; register a prefill hook - (rl:register-hook - :pre-input - (lambda () - (rl:insert-text prefill) - (rl:redisplay))) - (unwind-protect - (loop - with prompt-text = prompt - with should-retry-p = t - while should-retry-p - for line = (rl:readline :prompt prompt-text) - when (funcall expect line) - do (setf should-retry-p nil) - when retry-text - do (setf prompt-text retry-text) - finally (return line)) - ;; unregisters the hook. - (rl:register-hook :pre-input nil))) |