Как работает ncurses?

При инициализации окна, используя библиотеку ncurses — initscr(), — будто бы создаётся отдельная область. То есть стирается текст терминала, сбрасывается прокрутка и мы теперь пишем в "чистом" окне. Потом, при выходе, данные восстанавливаются. Уж навряд ли библиотека сохраняет и загружает весь текст. И, думается мне, реализовано это при помощи управляющих последовательностей терминала. Отпишитесь, пожалуйста, кто знает, как такое сделать: нет желания копаться в исходниках.


Ответы (1 шт):

Автор решения: avp

Не знаю, как сделано в ncurses, а в gist.github.com/fnky/458719343aabd01cfb17a3a4f7296797 пишут:

Common Private Modes

These are some examples of private modes, which are not defined by the specification, but are implemented in most terminals ...

ESC[?47h save screen
ESC[?47l restore screen

(найдено в гугле по запросу terminal escape sequence)

→ Ссылка