From aaf694ca54365997a1ba103832db12605da9023f Mon Sep 17 00:00:00 2001 From: Lennart Poettering Date: Tue, 13 Apr 2010 18:51:22 +0200 Subject: [PATCH] util: reset nl/cr flags on terminal when resetting --- util.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/util.c b/util.c index a1b9f1e0..17ee09c1 100644 --- a/util.c +++ b/util.c @@ -1422,14 +1422,18 @@ int reset_terminal(int fd) { assert(fd >= 0); - /* Set terminal up for job control */ + /* Set terminal to some sane defaults */ if (tcgetattr(fd, &termios) < 0) { r = -errno; goto finish; } - termios.c_iflag &= ~(IGNBRK | BRKINT); + /* We only reset the stuff that matters to the software. How + * hardware is set up we don't touch assuming that somebody + * else will do that for us */ + + termios.c_iflag &= ~(IGNBRK | BRKINT | ISTRIP | INLCR | IGNCR | IUCLC); termios.c_iflag |= ICRNL | IMAXBEL | IUTF8; termios.c_oflag |= ONLCR; termios.c_cflag |= CREAD; @@ -1446,6 +1450,8 @@ int reset_terminal(int fd) { termios.c_cc[VLNEXT] = 026; /* ^V */ termios.c_cc[VWERASE] = 027; /* ^W */ termios.c_cc[VREPRINT] = 022; /* ^R */ + termios.c_cc[VEOL] = 0; + termios.c_cc[VEOL2] = 0; termios.c_cc[VTIME] = 0; termios.c_cc[VMIN] = 1; -- 2.39.5