我有这个ncurses应用程序正在执行标准配方,暂时退出ncurses,运行外部编辑器/ shell /等等,然后在完成后退回到ncurses.
这几乎是有效的,除了之后ncurses得到的前几个按键显然是假的; 如果我按两次向上箭头,ncurses认为^ [和A分别被看到.
以前有人见过这种行为并知道解决这个问题的神奇之处是什么?如果它有帮助,这是Ruby ncurses库.
经过一番研究后,我找到了一个货物崇拜解决方案:在 stdscr 上退出 shell 后显式调用 keypad(1) 。我不知道为什么会这样,但确实如此。如果其他人能解释原因,我会将其标记为“是”。 当前的工作原理是键盘接触某种内部缓冲区并将其清除。
从头开始:
NCURSES_EXPORT(整数)
键盘(WINDOW *win,布尔标志)
{
T((T_CALLED("键盘(%p,%d)"), win, flag));
如果(赢){
win->_use_keypad = 标志;
returnCode(_nc_keypad(SP, 标志));
} 别的
返回代码(错误);
}
| 归档时间: |
|
| 查看次数: |
462 次 |
| 最近记录: |