Terminal control/Preserve screen: Difference between revisions

→‎{{header|Common Lisp}}: Add a Lisp example using ncurses.
m (→‎{{header|Sidef}}: Fix link: Perl 6 --> Raku)
(→‎{{header|Common Lisp}}: Add a Lisp example using ncurses.)
Line 109:
(format t "~C[?1049l" (code-char #O33))
</lang>
 
==={{header|ncurses}}===
When the ncurses terminal library is used, characters are displayed on an alternate screen of the terminal. Leaving ncurses returns to the original screen buffer with the previous content preserved. To interface ncurses from Lisp, the ''croatoan'' library is used.
<lang lisp>(defun clear-test ()
;; starting a ncurses screen enters the alternate screen buffer of the terminal
(with-screen (scr :input-echoing nil :input-blocking t)
(princ "Text to be cleared" scr)
(refresh scr)
;; wait for a keypress
(get-char scr)
(clear scr)
(refresh scr)
(get-char scr)))
;; leaving ncurses returns the terminal to the main screen buffer</lang>
 
=={{header|Emacs Lisp}}==
69

edits