Make resizewin(1) discard the terminal queues, to lower the chance

for "unable to parse response" error which happens when youre typing
too fast for the machine you're running it on.

Reviewed by:	cem, Daniel O'Connor <darius@dons.net.au>
MFC after:	2 weeks
Sponsored by:	DARPA, AFRL
Differential Revision:	https://reviews.freebsd.org/D10624
This commit is contained in:
Edward Tomasz Napierala 2017-05-07 17:21:22 +00:00
parent 215b29f62c
commit 7ffc8a5418

View File

@ -52,7 +52,7 @@ main(__unused int argc, __unused char **argv)
{
struct termios old, new;
struct winsize w;
int ret, fd, cnt, error;
int ret, fd, cnt, error, what;
char data[20];
struct timeval then, now;
@ -71,6 +71,12 @@ main(__unused int argc, __unused char **argv)
if (tcsetattr(fd, TCSANOW, &new) == -1)
exit(1);
/* Discard input received so far */
what = FREAD | FWRITE;
error = ioctl(fd, TIOCFLUSH, &what);
if (error != 0)
warn("ioctl");
if (write(fd, query, sizeof(query)) != sizeof(query)) {
error = 1;
goto out;