Re: svn commit: r317909 - head/usr.bin/resizewin
On 0507T2028, Jilles Tjoelker wrote: > On Sun, May 07, 2017 at 09:01:43PM +0300, Konstantin Belousov wrote: > > On Sun, May 07, 2017 at 05:21:23PM +, 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> > > 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.cSun May 7 14:59:45 2017 > > > (r317908) > > > +++ head/usr.bin/resizewin/resizewin.cSun 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, ) == -1) > > > exit(1); > > > > > > + /* Discard input received so far */ > > > + what = FREAD | FWRITE; > > > + error = ioctl(fd, TIOCFLUSH, ); > > 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. I've changed it to use tcflush(3), as suggested by kib@, as it keeps the current (tested) behaviour. I'll try to investigate TCSANOW as well, thanks! ___ svn-src-head@freebsd.org mailing list https://lists.freebsd.org/mailman/listinfo/svn-src-head To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"
Re: svn commit: r317909 - head/usr.bin/resizewin
On Sun, May 07, 2017 at 09:01:43PM +0300, Konstantin Belousov wrote: > On Sun, May 07, 2017 at 05:21:23PM +, 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> > 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, ) == -1) > > exit(1); > > > > + /* Discard input received so far */ > > + what = FREAD | FWRITE; > > + error = ioctl(fd, TIOCFLUSH, ); > 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 ___ svn-src-head@freebsd.org mailing list https://lists.freebsd.org/mailman/listinfo/svn-src-head To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"
Re: svn commit: r317909 - head/usr.bin/resizewin
On Sun, May 07, 2017 at 05:21:23PM +, 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> 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.cSun May 7 14:59:45 2017 > (r317908) > +++ head/usr.bin/resizewin/resizewin.cSun 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, ) == -1) > exit(1); > > + /* Discard input received so far */ > + what = FREAD | FWRITE; > + error = ioctl(fd, TIOCFLUSH, ); This is correctly spelled tcflush(fd, TCIOFLUSH); > + if (error != 0) > + warn("ioctl"); > + > if (write(fd, query, sizeof(query)) != sizeof(query)) { > error = 1; > goto out; ___ svn-src-head@freebsd.org mailing list https://lists.freebsd.org/mailman/listinfo/svn-src-head To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"
svn commit: r317909 - head/usr.bin/resizewin
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'ConnorMFC 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, ) == -1) exit(1); + /* Discard input received so far */ + what = FREAD | FWRITE; + error = ioctl(fd, TIOCFLUSH, ); + if (error != 0) + warn("ioctl"); + if (write(fd, query, sizeof(query)) != sizeof(query)) { error = 1; goto out; ___ svn-src-head@freebsd.org mailing list https://lists.freebsd.org/mailman/listinfo/svn-src-head To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"