summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--regress/bin/ksh/edit/edit.c8
1 files changed, 7 insertions, 1 deletions
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;