Re: DOS/Windows-specific code: inflow.c

Christopher Faylor
2001-05-08T07:54:00Z

On Tue, May 08, 2001 at 02:45:43PM +0300, Eli Zaretskii wrote:
>
> * inflow.c:new_tty()
>
> #if !defined(__GO32__) && !defined(_WIN32)
> #ifdef TIOCNOTTY
> /* Disconnect the child process from our controlling terminal. On some
> systems (SVR4 for example), this may cause a SIGTTOU, so temporarily
> ignore SIGTTOU. */
> tty = open ("/dev/tty", O_RDWR);
> if (tty > 0)
> {
> void (*osigttou) ();
>
> osigttou = (void (*)()) signal (SIGTTOU, SIG_IGN);
> ioctl (tty, TIOCNOTTY, 0);
> close (tty);
> signal (SIGTTOU, osigttou);
> }
> #endif
>
> /* Now open the specified new terminal. */
>
> #ifdef USE_O_NOCTTY
> tty = open (inferior_thisrun_terminal, O_RDWR | O_NOCTTY);
> #else
> tty = open (inferior_thisrun_terminal, O_RDWR);
> #endif
> if (tty == -1)
> {
> print_sys_errmsg (inferior_thisrun_terminal, errno);
> _exit (1);
> }
>
>This code assumes too many Posix features. Should we define
>NO_NEW_TTY?

Actually, I think something should define O_NOCTTY to 0.

> * inflow.c: pass_signal() [and many more functions that call kill()]
>
> /* ARGSUSED */
> static void
> pass_signal (int signo)
> {
> #ifndef _WIN32
> kill (PIDGET (inferior_pid), SIGINT);
> #endif
> }
>
>I don't really understand why does the Windows build need to ifdef
>away the calls to kill. In any case, it sounds like providing a no-op
>version in win32-nat.c would be a better idea.

I don't understand it either. This should work fine on _WIN32. Maybe
we should just get rid of the #ifndef.

cgf