Re: svn commit: r317909 - head/usr.bin/resizewin

2017-05-08 Thread Edward Tomasz Napierala
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

2017-05-07 Thread Jilles Tjoelker
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

2017-05-07 Thread Konstantin Belousov
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

2017-05-07 Thread Edward Tomasz Napierala
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, );
+   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"