Пару заметок по сабжу:
1. Для того чтобы русские символы корректно появлялись на экране, нужно проделать два шага:
а) линковать не с ncurses(curses), а с ncursesw( gcc -o test test.c -lncursesw ).
б) подключить файл locale.h и закастовать функцию setlocale(LC_ALL, «»);
2. Для вывода wchar_t переменных кастуем printw(«%lc», wcharValue); для строк: printw(«%ls», wcharStr);
3. Аналог getch() для wchar_t : get_wch(), getch() не хотел читать русские символы.
4. Откройте vim в Х-овом терминале, в нем откройте большой файл и промотайте его до конца(середины), заметили как полоса прокрутки терминала уменьшается ? Прокрутите её вверх. Похожее было в моем приложении, если использовал refresh()/wrefresh() для обновления экрана, в принципе это не проблема, но меня раздражало, немного полазил по интернетам и нашел функцию redrawwin(), с ней все работает как мне нужно.
Извиняюсь за синтаксические/пунктуационные/грамматические и прочие ошибки. Головушка моя болит после дня веселья с ncurses. 🙂 Если есть вопросы — спрашивайте, по мере возможности отвечу. )