Welcome to mirror list, hosted at ThFree Co, Russian Federation.

cygwin.com/git/newlib-cygwin.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristopher Faylor <me@cgf.cx>2005-12-19 07:34:13 +0300
committerChristopher Faylor <me@cgf.cx>2005-12-19 07:34:13 +0300
commit65438ec635d9cede44bb9e59438f80668422d704 (patch)
tree7f7d9c84558ab4b6ae8868b05cf49e51c8f69b4f /winsup/cygwin/fhandler.h
parentca9271d1b6c70a60640e32a2cdb729d51e2037e7 (diff)
* fhandler.h (fhandler_pipe::fixup_in_child): Declare new function.
(fhandler_console::invisible_console): Declare new variable. (fhandler_console::need_invisible): Ditto. (fhandler_console::has_a): Ditto. * fhandler_console.cc (set_console_state_for_spawn): Eliminate return value. Set up an invisible console if necessary prior to spawning. (fhandler_console::invisible_console): Define. * fhandler_tty.cc (fhandler_tty_slave::open): Use fhandler_console::invisible_console to setup an invisible console. * pipe.cc (fhandler_pipe::fixup_in_child): Define new function from fixup_after_exec. (fhandler_pipe::fixup_after_exec): Use fixup_in_child when appropriate. (fhandler_pipe::fixup_after_fork): Ditto. * spawn.cc (handle): Reorganize and modernize a little. (spawn_guts): Rely on set_console_state_for_spawn to set the console into the right state but don't create the process with "detached" flag if we have no controlling tty since that confuses 'cmd'. * dtable.cc (dtable::stdio_init): Don't set console as controlling terminal if we have an invisible console. * sigproc.cc (child_info::sync): Use correct name in ForceCloseHandle1.
Diffstat (limited to 'winsup/cygwin/fhandler.h')
-rw-r--r--winsup/cygwin/fhandler.h6
1 files changed, 5 insertions, 1 deletions
diff --git a/winsup/cygwin/fhandler.h b/winsup/cygwin/fhandler.h
index defb2886b..e948403ba 100644
--- a/winsup/cygwin/fhandler.h
+++ b/winsup/cygwin/fhandler.h
@@ -515,6 +515,7 @@ public:
void create_guard (SECURITY_ATTRIBUTES *sa) {guard = CreateMutex (sa, FALSE, NULL);}
int dup (fhandler_base *child);
int ioctl (unsigned int cmd, void *);
+ void fixup_in_child ();
virtual void fixup_after_fork (HANDLE);
void fixup_after_exec ();
bool hit_eof ();
@@ -864,6 +865,7 @@ class fhandler_console: public fhandler_termios
{
private:
static dev_console *dev_state;
+ static bool invisible_console;
/* Output calls */
void set_default_attr ();
@@ -917,6 +919,8 @@ class fhandler_console: public fhandler_termios
void send_winch_maybe ();
static tty_min *get_tty_stuff (int);
bool is_slow () {return 1;}
+ static bool need_invisible ();
+ static bool fhandler_console::has_a () {return !invisible_console;}
};
class fhandler_tty_common: public fhandler_termios
@@ -1360,6 +1364,6 @@ class select_stuff
device_specific_mailslot (0) {}
};
-int __stdcall set_console_state_for_spawn ();
+void __stdcall set_console_state_for_spawn ();
#endif /* _FHANDLER_H_ */