Hi
Why do you need to move tty_close? It is prototyped in tty.h which is
included at the start of your diff.
The other changes look good.
On Sat, Sep 12, 2015 at 03:17:53PM -0400, Michael McConville wrote:
> * move tty_close() up so that we can call it in tty_init()
> * bump tfd's assignment into its own line
> * realize that those if conditions are identical
>
> Index: tty.c
> ===================================================================
> RCS file: /cvs/src/bin/ksh/tty.c,v
> retrieving revision 1.10
> diff -u -p -r1.10 tty.c
> --- tty.c 10 Aug 2014 02:44:26 -0000 1.10
> +++ tty.c 12 Sep 2015 05:19:50 -0000
> @@ -6,6 +6,15 @@
> #include "tty.h"
> #undef EXTERN
>
> +void
> +tty_close(void)
> +{
> + if (tty_fd >= 0) {
> + close(tty_fd);
> + tty_fd = -1;
> + }
> +}
> +
> /* Initialize tty_fd. Used for saving/reseting tty modes upon
> * foreground job completion and for setting up tty process group.
> */
> @@ -15,19 +24,15 @@ tty_init(int init_ttystate)
> int do_close = 1;
> int tfd;
>
> - if (tty_fd >= 0) {
> - close(tty_fd);
> - tty_fd = -1;
> - }
> + tty_close();
> tty_devtty = 1;
>
> - if ((tfd = open("/dev/tty", O_RDWR, 0)) < 0) {
> + tfd = open("/dev/tty", O_RDWR, 0);
> + if (tfd < 0) {
> tty_devtty = 0;
> warningf(false, "No controlling tty (open /dev/tty: %s)",
> strerror(errno));
> - }
>
> - if (tfd < 0) {
> do_close = 0;
> if (isatty(0))
> tfd = 0;
> @@ -45,13 +50,4 @@ tty_init(int init_ttystate)
> tcgetattr(tty_fd, &tty_state);
> if (do_close)
> close(tfd);
> -}
> -
> -void
> -tty_close(void)
> -{
> - if (tty_fd >= 0) {
> - close(tty_fd);
> - tty_fd = -1;
> - }
> }
>