On Tue, Sep 27, 2011 at 12:40 AM, Bruce Dubbs <bruce.du...@gmail.com> wrote:
> See if this works as well:
>
> sed -i -e 's/(ECHO)/ECHO/' term-utils/agetty.c
It's  "c_cflag --> c_lflag" .
Maybe you need to see a oculist

>
>   -- Bruce
>
>
> xinglp wrote:
>> ---------- Forwarded message ----------
>> From: Karel Zak <k...@redhat.com>
>> Date: Mon, Sep 26, 2011 at 6:52 PM
>> Subject: Re: agetty not show username as I input on a serial term
>> To: xinglp <xin...@gmail.com>
>> Cc: util-li...@vger.kernel.org
>>
>>
>> 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 <k...@redhat.com>
>> Date: Mon, 26 Sep 2011 12:34:10 +0200
>> Subject: [PATCH] agetty: test ECHO on c_lflag
>>
>> Reported-by: xinglp <xin...@gmail.com>
>> Addresses: http://bugzilla.redhat.com/show_bug.cgi?id=739522
>> Signed-off-by: Karel Zak <k...@redhat.com>
>> ---
>>  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
>
-- 
http://linuxfromscratch.org/mailman/listinfo/lfs-dev
FAQ: http://www.linuxfromscratch.org/faq/
Unsubscribe: See the above information page

Reply via email to