svn commit: r317909 - head/usr.bin/resizewin
Jilles Tjoelker
jilles at stack.nl
Sun May 7 18:28:14 UTC 2017
On Sun, May 07, 2017 at 09:01:43PM +0300, Konstantin Belousov wrote:
> On Sun, May 07, 2017 at 05:21:23PM +0000, Edward Tomasz Napierala wrote:
> > Author: trasz
> > Date: Sun May 7 17:21:22 2017
> > New Revision: 317909
> > URL: https://svnweb.freebsd.org/changeset/base/317909
> > Log:
> > 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 at dons.net.au>
> > MFC after: 2 weeks
> > Sponsored by: DARPA, AFRL
> > Differential Revision: https://reviews.freebsd.org/D10624
> > Modified:
> > head/usr.bin/resizewin/resizewin.c
> >
> > Modified: head/usr.bin/resizewin/resizewin.c
> > ==============================================================================
> > --- head/usr.bin/resizewin/resizewin.c Sun May 7 14:59:45 2017 (r317908)
> > +++ head/usr.bin/resizewin/resizewin.c Sun May 7 17:21:22 2017 (r317909)
> > @@ -52,7 +52,7 @@ main(__unused int argc, __unused char **
> > {
> > 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 **
> > if (tcsetattr(fd, TCSANOW, &new) == -1)
> > exit(1);
> >
> > + /* Discard input received so far */
> > + what = FREAD | FWRITE;
> > + error = ioctl(fd, TIOCFLUSH, &what);
> This is correctly spelled tcflush(fd, TCIOFLUSH);
Alternatively, the above TCSANOW could be changed to TCSAFLUSH. The
effect is slightly different in that pending output is drained instead
of discarded.
In any case, the TIOCFLUSH ioctl is non-standard and should not be used
directly.
--
Jilles Tjoelker
More information about the svn-src-head
mailing list