termp
2025-06-22
Check if we are in a dumb or real terminal. Provide the termp check and a quit function.
Are we running inside a real or a dumb terminal window?
Adapt your logic for the terminal or for Slime.
A small utility that I use in progressons and that I might re-use.
(defvar *termp*) ; Unbound by default. (defun termp (&key force) "Return T if we run on a terminal. This must fail on Slime (on Emacs' default shell prompt) and succeed on a Lisp in a terminal window." (if (and (not force) (boundp '*termp*)) *termp* (setf *termp* (not (equalp "dumb" (uiop:getenv "TERM"))))))
There is also termp:quit &optional code
: quit the Lisp image (uiop:quit
) only if we are in a non-dumb terminal. Helps to test scripts.
Installation
This library is on Ultralisp.
Licence
WTFPL