Minor fixes:

- Use "OPOST | ONLCR" as a c_oflag in the raw mode instead of 0, which should
  make debug output mode readable;
- flush input buffer when switching to/from raw mode. This should prevent
  leaking raw scancodes into your shell prompt when program called
  VGLKeyboardEnd() w/o processing all scancodes in the buffer.
This commit is contained in:
Maxim Sobolev 2001-01-24 09:05:35 +00:00
parent 45e889896e
commit 5c9a541b66
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=71518

View File

@ -51,14 +51,14 @@ VGLKeyboardInit(int mode)
term = VGLKeyboardTty;
cfmakeraw(&term);
term.c_iflag = IGNPAR | IGNBRK;
term.c_oflag = 0;
term.c_oflag = OPOST | ONLCR;
term.c_cflag = CREAD | CS8;
term.c_lflag &= ~(ICANON | ECHO | ISIG);
term.c_cc[VTIME] = 0;
term.c_cc[VMIN] = 0;
cfsetispeed(&term, 9600);
cfsetospeed(&term, 9600);
tcsetattr(0, TCSANOW, &term);
tcsetattr(0, TCSANOW | TCSAFLUSH, &term);
switch (mode) {
case VGL_RAWKEYS:
@ -79,7 +79,7 @@ VGLKeyboardEnd()
{
if (VGLKeyboardMode != -1) {
ioctl(0, KDSKBMODE, VGLKeyboardMode);
tcsetattr(0, TCSANOW, &VGLKeyboardTty);
tcsetattr(0, TCSANOW | TCSAFLUSH, &VGLKeyboardTty);
}
}