From: nekral-guest Date: Sun, 12 Apr 2009 00:17:36 +0000 (+0000) Subject: * src/login.c: Restore the echoctl, echoke, onclr flags to the X-Git-Tag: 4.1.3~5 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=08a212ccae61729c72b706f681a991b250f1c11b;p=shadow * src/login.c: Restore the echoctl, echoke, onclr flags to the terminal termio flags. Reset echoprt, noflsh, tostop. This behavior seems to have change by mistake in earlier releases (4.0.8, for no obvious reason). --- diff --git a/ChangeLog b/ChangeLog index 8fb47218..30cf7034 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +2009-04-12 Nicolas François + + * src/login.c: Restore the echoctl, echoke, onclr flags to the + terminal termio flags. Reset echoprt, noflsh, tostop. This + behavior seems to have change by mistake in earlier releases + (4.0.8, for no obvious reason). + 2009-04-12 Nicolas François * src/login.c: Fix the count of failures before login exits in diff --git a/NEWS b/NEWS index d66f0134..f8d88b33 100644 --- a/NEWS +++ b/NEWS @@ -82,6 +82,10 @@ shadow-4.1.2.2 -> shadow-4.1.3 UNRELEASED * do not create groups with GID set to (gid_t)-1. - grpck * warn for groups with GID set to (gid_t)-1. +- login + * Restore the echoctl, echoke, onclr flags to the terminal termio flags. + Reset echoprt, noflsh, tostop. This behavior seems to have change by + mistake in earlier releases (4.0.8, for no obvious reason). - newusers * Implement the -r, --system option. * Speedup (see "addition of users or groups" above). diff --git a/src/login.c b/src/login.c index a77ca756..39a0cc80 100644 --- a/src/login.c +++ b/src/login.c @@ -173,6 +173,16 @@ static void setup_tty (void) termio.c_lflag |= ISIG | ICANON | ECHO | ECHOE; termio.c_iflag |= ICRNL; +#if defined(ECHOKE) && defined(ECHOCTL) + termio.c_lflag |= ECHOKE | ECHOCTL; +#endif +#if defined(ECHOPRT) && defined(NOFLSH) && defined(TOSTOP) + termio.c_lflag &= ~(ECHOPRT | NOFLSH | TOSTOP); +#endif +#ifdef ONLCR + termio.c_oflag |= ONLCR; +#endif + /* leave these values unchanged if not specified in login.defs */ termio.c_cc[VERASE] = getdef_num ("ERASECHAR", termio.c_cc[VERASE]); termio.c_cc[VKILL] = getdef_num ("KILLCHAR", termio.c_cc[VKILL]);