RosettaCodeData/Task/Keyboard-input-Keypress-check/Emacs-Lisp/keyboard-input-keypress-check.el
2026-04-30 12:34:36 -04:00

21 lines
906 B
EmacsLisp

(defun store-keypress ()
"If a key has been pressed, store it as a variable.
Note that the variable created is a variable inside the scope of let and
will not be available as a variable outside the scope of let. However,
the function also returns the value of the variable, which can be used
outside the scope of let."
(let ((keypress))
(if (input-pending-p)
(setq keypress (char-to-string (read-key))))))
(defun store-keypress-multiple ()
"If one or more keys have been pressed, store it/them as a variable.
Note that the variable created is a variable inside the scope of let and
will not be available as a variable outside the scope of let. However,
the function also returns the value of the variable, which can be used
outside the scope of let."
(let ((keypress))
(while (input-pending-p)
(push (read-key) keypress))
(setq keypress (concat (nreverse keypress)))))