summaryrefslogtreecommitdiffstats
path: root/term-utils/agetty.c
diff options
context:
space:
mode:
Diffstat (limited to 'term-utils/agetty.c')
-rw-r--r--term-utils/agetty.c17
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;