diff options
Diffstat (limited to 'term-utils/agetty.c')
-rw-r--r-- | term-utils/agetty.c | 17 |
1 files changed, 13 insertions, 4 deletions
diff --git a/term-utils/agetty.c b/term-utils/agetty.c index 844220401..e22600e28 100644 --- a/term-utils/agetty.c +++ b/term-utils/agetty.c @@ -1264,13 +1264,22 @@ static void termio_init(struct options *op, struct termios *tp) * later on. */ + /* The defaul is set c_iflag in termio_final() according to chardata. + * Unfortunately, the chardata are not set according to the serial line + * if --autolog is enabled. In this case we do not read from the line + * at all. The best what we can do in this case is to keep c_iflag + * unmodified for --autolog. + */ + if (!op->autolog) { #ifdef IUTF8 - tp->c_iflag = tp->c_iflag & IUTF8; - if (tp->c_iflag & IUTF8) - op->flags |= F_UTF8; + tp->c_iflag = tp->c_iflag & IUTF8; + if (tp->c_iflag & IUTF8) + op->flags |= F_UTF8; #else - tp->c_iflag = 0; + tp->c_iflag = 0; #endif + } + tp->c_lflag = 0; tp->c_oflag &= OPOST | ONLCR; |