В программы, работающие с пакетом libcur (расширение до пакета libcurses AT&T) необходимо внести следующие изменения:
Основной набор символов псевдографики: wcolorout(win, Bxa); cbox(win); wcolorend(win); или wcolorout(win, Bxa); drawbox(win, y, x, высота, ширина); wcolorend(win); Дополнительный набор символов псевдографики: wcolorout(win, Bya) cboxalt(win); wcolorend(win); или wcolorout(win, Bya); drawbox(win, y, x, высота, ширина); wcolorend(win);
Bxa и Bya соответствуют атрибутам primary и alternate, определенным в базе данных terminfo.
В файл cur01.h добавлены следующие макроопределения:
cboxalt(win) drawboxalt(win, y,x, height, width)
Программы, выполняющие ввод многобайтовых символов, должны выглядеть следующим образом:
Процедура ввода:
Пример:
int c, count;
char buf[];
extended(FALSE); /* считывается по одному байту */
count =0;
while (1) {
c = wgetch(); /* чтение байтов по одному */
buf[count++] = c;
if(count <=MB_CUR_MAX)
if(mblen(buf, count) != -1)
break; /* символ найден * /
else
/* Ошибка. Символ не найден */
/* Обработка этой ситуации */
break;
}
/* В буфере содержится последовательность многобайтовых символов для ввода */
/* Обработка функциональных клавиш и любых escape-последовательностей */
Глава 16, Поддержка национальных языков.
Функции addch, waddch, addstr, waddstr, mvaddstr, mvwaddstr, delch, wdelch, mvdelch, mvwdelch, inch, insch, winsch, mvinsch, mvwinsch, winch, mvinch, mvwinch, wcwidth и wgetch.