See if this works as well: sed -i -e 's/(ECHO)/ECHO/' term-utils/agetty.c
-- Bruce xinglp wrote: > ---------- Forwarded message ---------- > From: Karel Zak <[email protected]> > Date: Mon, Sep 26, 2011 at 6:52 PM > Subject: Re: agetty not show username as I input on a serial term > To: xinglp <[email protected]> > Cc: [email protected] > > > On Fri, Sep 02, 2011 at 02:26:17PM +0800, xinglp wrote: >> When I login on a serial term, I type username, but nothing appear >> on the screen, just as input password. > > [...] > >> It looks like the "ECHO bit in termios.c_cflag" was not properly set >> before the get_logname() been called. > > The code incorrectly checks c_cflag, but the ECHO is c_lflag flag > constant. > > See the patch below. Thanks! > > Karel > > > From b9261127260ff2a8efbdc6e5f9d00ec7f736b445 Mon Sep 17 00:00:00 2001 > From: Karel Zak <[email protected]> > Date: Mon, 26 Sep 2011 12:34:10 +0200 > Subject: [PATCH] agetty: test ECHO on c_lflag > > Reported-by: xinglp <[email protected]> > Addresses: http://bugzilla.redhat.com/show_bug.cgi?id=739522 > Signed-off-by: Karel Zak <[email protected]> > --- > term-utils/agetty.c | 6 +++--- > 1 files changed, 3 insertions(+), 3 deletions(-) > > diff --git a/term-utils/agetty.c b/term-utils/agetty.c > index 8398015..75c2b14 100644 > --- a/term-utils/agetty.c > +++ b/term-utils/agetty.c > @@ -1466,7 +1466,7 @@ static char *get_logname(struct options *op, > struct termios *tp, struct chardata > case '#': > cp->erase = ascval; /* set erase character */ > if (bp > logname) { > - if ((tp->c_cflag & (ECHO)) == 0) > + if ((tp->c_lflag & ECHO) == 0) > write_all(1, > erase[cp->parity], 3); > bp--; > } > @@ -1475,7 +1475,7 @@ static char *get_logname(struct options *op, > struct termios *tp, struct chardata > case '@': > cp->kill = ascval; /* set > kill character */ > while (bp > logname) { > - if ((tp->c_cflag & (ECHO)) == 0) > + if ((tp->c_lflag & ECHO) == 0) > write_all(1, > erase[cp->parity], 3); > bp--; > } > @@ -1487,7 +1487,7 @@ static char *get_logname(struct options *op, > struct termios *tp, struct chardata > break; > if ((size_t)(bp - logname) >= > sizeof(logname) - 1) > log_err(_("%s: input overrun"), > op->tty); > - if ((tp->c_cflag & (ECHO)) == 0) > + if ((tp->c_lflag & ECHO) == 0) > write_all(1, &c, 1); /* echo > the character */ > *bp++ = ascval; /* and > store it */ > break; > -- > 1.7.6 -- http://linuxfromscratch.org/mailman/listinfo/lfs-dev FAQ: http://www.linuxfromscratch.org/faq/ Unsubscribe: See the above information page
