* 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).
This commit is contained in:
nekral-guest 2009-04-12 00:17:36 +00:00
parent 64a9f33ffa
commit 08a212ccae
3 changed files with 21 additions and 0 deletions

View File

@ -1,3 +1,10 @@
2009-04-12 Nicolas François <nicolas.francois@centraliens.net>
* 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 <nicolas.francois@centraliens.net> 2009-04-12 Nicolas François <nicolas.francois@centraliens.net>
* src/login.c: Fix the count of failures before login exits in * src/login.c: Fix the count of failures before login exits in

4
NEWS
View File

@ -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. * do not create groups with GID set to (gid_t)-1.
- grpck - grpck
* warn for groups with GID set to (gid_t)-1. * 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 - newusers
* Implement the -r, --system option. * Implement the -r, --system option.
* Speedup (see "addition of users or groups" above). * Speedup (see "addition of users or groups" above).

View File

@ -173,6 +173,16 @@ static void setup_tty (void)
termio.c_lflag |= ISIG | ICANON | ECHO | ECHOE; termio.c_lflag |= ISIG | ICANON | ECHO | ECHOE;
termio.c_iflag |= ICRNL; 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 */ /* leave these values unchanged if not specified in login.defs */
termio.c_cc[VERASE] = getdef_num ("ERASECHAR", termio.c_cc[VERASE]); termio.c_cc[VERASE] = getdef_num ("ERASECHAR", termio.c_cc[VERASE]);
termio.c_cc[VKILL] = getdef_num ("KILLCHAR", termio.c_cc[VKILL]); termio.c_cc[VKILL] = getdef_num ("KILLCHAR", termio.c_cc[VKILL]);