Я пытаюсь написать простое приложение чата на C, используя ncurses, оба из которых я новичок в PHP. (Да, я знаю. Спасибо. Я приму этот совет близко к сердцу. Пожалуйста, опусти оружие.)
Я попытался создать два окна, одно для ввода и одно для текста канала, например:
int termwidth = getmaxy(stdscr);
int termheight = getmaxx(stdscr);
WINDOW *channel = newwin(termwidth, termheight - 1, 0, 0);
scrollok(channel, TRUE);
WINDOW *input = newwin(termwidth, 1, termheight + 1, 0);
scrollok(input, TRUE);
и затем установите позицию курсора для ввода:
wmove(input, 0, 0);
для того, чтобы поместить типизированный ввод во второе окно, которое должно занимать один столбец в нижней части терминала, тогда как вывод появляется в первом окне, которое заполняет остальную часть пространства терминала.
Вывод появляется , чтобы правильно заполнить верхнее окно (канал), при этом курсор ввода мигает в нужном месте, но изменение его размера не приводит к предсказуемым результатам, и типизированный ввод не выполняется в окно ввода вообще.
Полный источник доступен здесь: http://pastebin.com/X8apHUgh
Подводя итог, я спрашиваю, почему ввод ведет себя неожиданно, и почему рисование окна "канал" дает странные результаты.