24.2.1. Инициализация управления экраном

24.2.1. Инициализация управления экраном

Прежде чем использовать функции библиотеки S-Lang для вывода данных на терминал, программа должна послать S-Lang запрос на поиск текущего терминала (как это определено в переменной окружения TERM) в терминальной базе данных. Это осуществляется следующим образом:

void SLtt_get_terminfo(void);

Одной из главных задач функции SLtt_get_terminfo() является установка физического размера экрана в соответствии с размером, указанным в базе данных терминала. Информация о количестве строк и колонок в терминале хранится, соответственно, в SLtt_Screen_Rows и SLtt_Screen_Cols. Хотя данные в терминальной базе данных обычно корректны, в настоящее время широкую популярность приобрели терминалы с изменяемыми размерами (например, xterms). После того как размер такого терминала будет изменен по отношению к размеру, принятому по умолчанию, терминальная база данных не будет содержать корректной информации о размерах терминала. Для компенсации этой неточности библиотека S-Lang позволяет программам восстанавливать исходные значения SLtt_Screen_Rows и SLtt_Screen_Cols после вызова функции SLtt_get_terminfo(). В системе Unix текущие размеры терминала всегда можно узнать с помощью команды TIOCGWINSZ управления вводом-выводом, которая подробно описана в главе 16.

Инициализировать уровень управления экраном в S-Lang можно очень просто:

void SLsmg_init_smg(void);

SLsmg_init_smg()