Печать двойных символов с помощью Ncurses - PullRequest
2 голосов
/ 12 августа 2010

Многие эмуляторы терминала (xterm, Konsole) поддерживают символы двойного размера . Ncurses не поддерживает это, и, насколько я знаю, ncurses не будет печатать escape-символы (\ 033 будет экранирован и напечатан в виде открытого текста).

Можно ли вообще печатать символы двойного размера в приложении ncurses?

1 Ответ

6 голосов
/ 12 августа 2010

Функция «двойной размер», на которую вы ссылаетесь, задается следующими последовательностями ANSI (найдено здесь ):

    ESC # 3   DEC double-height line, top half (DECDHL)
    ESC # 4   DEC double-height line, bottom half (DECDHL)

Атрибут \e#3 делает переключение терминаланаборы символов, которые содержат только верхнюю половину каждого символа.Точно так же \e#4 переключается на набор символов, содержащий нижнюю половину.Используя их вместе,

echo -e "\e#3Foo\n\e#4Foo"

терминал может отображать текст "двойной высоты" в двух отдельных строках.

Насколько я могу судить, вы правы - ncurses hasn '«реализовал» их - возможно, потому что они полагаются на специализированный набор шрифтов, первоначально уникальный для DECTerminals.

Приступая к делу, это кажется невозможным , поскольку ncurses не имеет атрибута для этой функции, хотя я по общему признанию не могу найти никакой ссылки, прямо заявляющей, что это невозможно.Возможно, кто-то с сумасшедшими навыками terminfo может объяснить, почему это так (или нет).

...