* tty.h (tty::hwnd): Move to tty_min.
(tty::gethwnd): Ditto. (tty::sethwnd): Ditto. (tty_min::hwnd): Receive variable from tty class. (tty_min::gethwnd): Receive function from tty classs. (tty_min::sethwnd): Ditto. * dtable.cc (dtable::stdio_init): Only call init_console_handler when we actually own the console. * fhandler_console.cc (fhandler_console::get_tty_stuff): Set tty's hwnd to non-zero value. * fhandler_termios.cc (fhandler_termios::tcsetpgrp): Semi-reinstate handling of console when pgrp is set.
This commit is contained in:
parent
33b0abd1c3
commit
f09acf77de
@ -1,3 +1,18 @@
|
||||
2006-04-21 Christopher Faylor <cgf@timesys.com>
|
||||
|
||||
* tty.h (tty::hwnd): Move to tty_min.
|
||||
(tty::gethwnd): Ditto.
|
||||
(tty::sethwnd): Ditto.
|
||||
(tty_min::hwnd): Receive variable from tty class.
|
||||
(tty_min::gethwnd): Receive function from tty classs.
|
||||
(tty_min::sethwnd): Ditto.
|
||||
* dtable.cc (dtable::stdio_init): Only call init_console_handler when
|
||||
we actually own the console.
|
||||
* fhandler_console.cc (fhandler_console::get_tty_stuff): Set tty's hwnd
|
||||
to non-zero value.
|
||||
* fhandler_termios.cc (fhandler_termios::tcsetpgrp): Semi-reinstate
|
||||
handling of console when pgrp is set.
|
||||
|
||||
2006-04-21 Pierre Humblet <Pierre.Humblet@ieee.org>
|
||||
Corinna Vinschen <corinna@vinschen.de>
|
||||
|
||||
|
@ -32,7 +32,7 @@ details. */
|
||||
#include "dtable.h"
|
||||
#include "cygheap.h"
|
||||
#include "ntdll.h"
|
||||
#include "tty.h"
|
||||
#include "shared_info.h"
|
||||
|
||||
static const char NO_COPY unknown_file[] = "some disk file";
|
||||
|
||||
@ -135,7 +135,9 @@ dtable::stdio_init ()
|
||||
|
||||
if (myself->cygstarted || ISSTATE (myself, PID_CYGPARENT))
|
||||
{
|
||||
init_console_handler (myself->ctty >= 0);
|
||||
tty_min *t = cygwin_shared->tty.get_tty (myself->ctty);
|
||||
if (t && t->getpgid () == myself->pid && t->gethwnd ())
|
||||
init_console_handler (true);
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -115,6 +115,7 @@ fhandler_console::get_tty_stuff (int flags = 0)
|
||||
if (PRIMARYLANGID (LOWORD (GetKeyboardLayout (0))) == LANG_ENGLISH)
|
||||
dev_state->meta_mask |= RIGHT_ALT_PRESSED;
|
||||
dev_state->set_default_attr ();
|
||||
shared_console_info->tty_min_state.sethwnd ((HWND) INVALID_HANDLE_VALUE);
|
||||
}
|
||||
|
||||
return &shared_console_info->tty_min_state;
|
||||
|
@ -82,6 +82,7 @@ fhandler_termios::tcsetpgrp (const pid_t pgid)
|
||||
{
|
||||
case bg_ok:
|
||||
tc->setpgid (pgid);
|
||||
init_console_handler (tc->gethwnd ());
|
||||
res = 0;
|
||||
break;
|
||||
case bg_signalled:
|
||||
|
@ -46,18 +46,12 @@ public:
|
||||
pid_t pgid;
|
||||
int output_stopped;
|
||||
int ntty;
|
||||
DWORD last_ctrl_c; // tick count of last ctrl-c
|
||||
DWORD last_ctrl_c; /* tick count of last ctrl-c */
|
||||
HWND hwnd; /* Console window handle tty belongs to */
|
||||
|
||||
IMPLEMENT_STATUS_FLAG (bool, initialized)
|
||||
IMPLEMENT_STATUS_FLAG (bool, rstcons)
|
||||
|
||||
tty_min (int t = -1, pid_t s = -1) : sid (s), ntty (t) {}
|
||||
void setntty (int n) {ntty = n;}
|
||||
pid_t getpgid () {return pgid;}
|
||||
void setpgid (int pid) {pgid = pid;}
|
||||
int getsid () {return sid;}
|
||||
void setsid (pid_t tsid) {sid = tsid;}
|
||||
void kill_pgrp (int sig);
|
||||
struct termios ti;
|
||||
struct winsize winsize;
|
||||
|
||||
@ -74,8 +68,17 @@ public:
|
||||
* -ERRNO
|
||||
*/
|
||||
int ioctl_retval;
|
||||
|
||||
int write_error;
|
||||
|
||||
tty_min (int t = -1, pid_t s = -1) : sid (s), ntty (t) {}
|
||||
void setntty (int n) {ntty = n;}
|
||||
pid_t getpgid () {return pgid;}
|
||||
void setpgid (int pid) {pgid = pid;}
|
||||
int getsid () {return sid;}
|
||||
void setsid (pid_t tsid) {sid = tsid;}
|
||||
void kill_pgrp (int sig);
|
||||
HWND gethwnd () {return hwnd;}
|
||||
void sethwnd (HWND wnd) {hwnd = wnd;}
|
||||
};
|
||||
|
||||
class fhandler_pty_master;
|
||||
@ -85,8 +88,6 @@ class tty: public tty_min
|
||||
HANDLE get_event (const char *fmt, BOOL manual_reset = FALSE)
|
||||
__attribute__ ((regparm (3)));
|
||||
public:
|
||||
HWND hwnd; /* Console window handle tty belongs to */
|
||||
|
||||
DWORD master_pid; /* Win32 PID of tty master process */
|
||||
|
||||
HANDLE from_master, to_slave;
|
||||
@ -101,8 +102,6 @@ public:
|
||||
bool alive (const char *fmt);
|
||||
bool slave_alive ();
|
||||
bool master_alive ();
|
||||
HWND gethwnd () {return hwnd;}
|
||||
void sethwnd (HWND wnd) {hwnd = wnd;}
|
||||
bool make_pipes (fhandler_pty_master *ptym);
|
||||
HANDLE open_mutex (const char *mutex);
|
||||
HANDLE open_output_mutex ();
|
||||
|
Loading…
x
Reference in New Issue
Block a user