Различное поведение nCurses с разными терминалами
Я получаю два разных поведения с использованием разных терминалов, это мой код:
(use ncurses)
(initscr)
(curs_set 0)
(noecho)
(start_color)
(define win (newwin 20 50 1 1))
(wclear win)
(box win 0 0)
(for-each (lambda (y)
(for-each (lambda (x)
(mvwaddch win y x #\. ))
(iota 49)))
(iota 19))
(wrefresh win)
(wgetch win)
(endwin)
Код написан на Chicken Scheme, но он легко читается любым, кто знает nCurses. Я думаю, что моя проблема не касается библиотеки, потому что это простая оболочка, которая вызывает функции Си.
Тем не менее, я получаю правильное поведение (окно в штучной упаковке), если я использую xterm, uxterm или терминал linux, вы можете войти с помощью CTRL-ALT-F1.
.................................................┐
.................................................│
.................................................│
.................................................│
.................................................│
.................................................│
.................................................│
.................................................│
.................................................│
.................................................│
.................................................│
.................................................│
.................................................│
.................................................│
.................................................│
.................................................│
.................................................│
.................................................│
.................................................│
└────────────────────────────────────────────────┘
Но если я использую любые другие терминалы, такие как gnome-терминал, терминатор или сакура, я получаю это:
.┐
.│
.│
.│
.│
.│
.│
.│
.│
.│
.│
.│
.│
.│
.│
.│
.│
.│
.│
└─┘
Я не думаю, что это ошибка библиотеки, но я могу попытаться переписать пример на C (мой C немного заржавел).
1 ответ
Это звучит так, как будто ваш TERM
переменная установлена в xterm
, что иногда создает проблемы для терминалов на основе VTE (gnome-Terminal и т. д.). Это часто задаваемые вопросы ( почему бы просто не использовать TERM со значением "xterm"?).
Это не ошибка (во всяком случае, в ncurses).
Установка его в vte
будет работать, если у вас есть полная база данных терминала...