diff options
author | Lennart Poettering <lennart@poettering.net> | 2010-04-13 18:51:22 +0200 |
---|---|---|
committer | Lennart Poettering <lennart@poettering.net> | 2010-04-13 18:51:22 +0200 |
commit | aaf694ca54365997a1ba103832db12605da9023f (patch) | |
tree | 58e1a481303ddabb06d3f77ecc481f6db67f040d | |
parent | 02a51abad1d6f334599c8d648b18d000b6118eb5 (diff) | |
download | systemd-aaf694ca54365997a1ba103832db12605da9023f.tar.gz |
util: reset nl/cr flags on terminal when resetting
-rw-r--r-- | util.c | 10 |
1 files changed, 8 insertions, 2 deletions
@@ -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; |