Печать двойных символов с помощью Ncurses
Многие эмуляторы терминала (xterm, Konsole) поддерживают символы двойного размера. Ncurses не поддерживает это, и, насколько я знаю, ncurses не будет печатать escape-символы (\033 будет экранирован и напечатан в виде открытого текста).
Можно ли вообще печатать символы двойного размера в приложении ncurses?
1 ответ
Ссылочная возможность "двойного размера", на которую вы ссылаетесь, задается следующими последовательностями ANSI (см. Здесь):
ESC# 3 DEC линия двойной высоты, верхняя половина (DECDHL) ESC # 4 DEC линия двойной высоты, нижняя половина (DECDHL)
\e#3
Атрибут делает наборы переключателей терминала на набор, который содержит только верхнюю половину каждого символа. Так же, \e#4
переключается на набор символов, содержащий нижнюю половину. Используя их вместе,
echo -e "\e#3Foo\n\e#4Foo"
терминал может отображать текст "двойной высоты" в двух отдельных строках.
Насколько я могу судить, вы правы - ncurses не "реализовал" их - возможно, потому, что они используют специализированный набор шрифтов, изначально уникальный для DECTerminals.
Приступая к делу, это кажется невозможным, поскольку ncurses не имеет атрибутов для этой функции, хотя я, правда, не могу найти никаких ссылок, прямо заявляющих, что это невозможно. Возможно, кто-то с сумасшедшими навыками terminfo сможет объяснить, почему это так (или нет).