From: anton Date: Sun, 18 Jun 2017 17:49:44 +0000 (+0000) Subject: Don't write input if ICANON is enabled. Also, write one byte at a time. X-Git-Url: http://artulab.com/gitweb/?a=commitdiff_plain;h=d63293c4717d287cde8ccdd51ad5353d83ca5986;p=openbsd Don't write input if ICANON is enabled. Also, write one byte at a time. --- diff --git a/regress/bin/ksh/edit/edit.c b/regress/bin/ksh/edit/edit.c index 0e707af294c..247e0b0ab2e 100644 --- a/regress/bin/ksh/edit/edit.c +++ b/regress/bin/ksh/edit/edit.c @@ -34,6 +34,7 @@ int main(int argc, char *argv[]) { char in[BUFSIZ], out[BUFSIZ]; + struct termios tio; struct pollfd pfd; struct winsize ws; pid_t pid; @@ -100,7 +101,12 @@ main(int argc, char *argv[]) if (nread == 0) continue; - n = write(ptyfd, &in[nwrite], nin - nwrite); + if (tcgetattr(ptyfd, &tio) == -1) + err(1, "tcgetattr"); + if ((tio.c_lflag & ICANON) == ICANON) + continue; + + n = write(ptyfd, &in[nwrite], 1); if (n == -1) err(1, "write"); nwrite += n;