cvs commit: src/libexec/getty main.c

Brian F. Feldman green at FreeBSD.org
Sat Jun 14 08:02:11 PDT 2003


Yar Tikhiy <yar at FreeBSD.org> wrote:
> On Sat, Jun 14, 2003 at 01:26:48AM -0700, Brian Feldman wrote:
> > green       2003/06/14 01:26:48 PDT
> > 
> >   FreeBSD src repository
> > 
> >   Modified files:
> >     libexec/getty        main.c 
> >   Log:
> >   In the last clean-up of this code, the fact that the default tty mode
> >   information could only be gleaned from the the tty descriptor itself
> >   was neglected, so never did the tty's default settings get copied from
> >   the kernel.  Specifically, this caused all manner of ctrl-keys to not
> >   work.  Fix this by calling dogettytab() in all the proper places, and
> >   retrieving the terminfo temporarily in dogettytab().
> 
> Thank you for fixing my bug before I had time to take a look at it.
> 
> However, your fix seems to have at least one drawback.  Consider
> the following scenario:  A gettytab(5) entry containing control
> character settings is used to initialize a terminal.  Then another
> gettytab(5) entry is selected from autobaud() or portselector(),
> or through the "nx" capability.  Since the current set of control
> characters is read from the terminal driver each time to get the
> default values, it will poison the actual defaults.  I think I've
> nearly made a fix for this, which will reduce the number of
> tcgetattr(3) calls as well.

That's ok, I knew it didn't do EXACTLY the same thing, but it shouldn't 
actually do any behavior detrimental to the user.  I know the more involved 
fix means you should probably take a copy of the tmode initially and store 
that as the one to initialize default values from, but I wasn't sure how 
you'd want to organize that.

-- 
Brian Fundakowski Feldman                           \'[ FreeBSD ]''''''''''\
  <> green at FreeBSD.org                               \  The Power to Serve! \
 Opinions expressed are my own.                       \,,,,,,,,,,,,,,,,,,,,,,\




More information about the cvs-all mailing list