* devices.in (exists_console): Allow /dev/con{sole,in,out} to be referenced
they exist. * devices.cc: Regenerate. * fhandler_console.cc (fhandler_console::set_unit): Ditto.
This commit is contained in:
parent
416b2d8719
commit
3bfa9d984b
|
@ -1,3 +1,10 @@
|
||||||
|
2012-04-12 Christopher Faylor <me.cygwin2012@cgf.cx>
|
||||||
|
|
||||||
|
* devices.in (exists_console): Allow /dev/con{sole,in,out} to be
|
||||||
|
referenced they exist.
|
||||||
|
* devices.cc: Regenerate.
|
||||||
|
* fhandler_console.cc (fhandler_console::set_unit): Ditto.
|
||||||
|
|
||||||
2012-04-11 Corinna Vinschen <corinna@vinschen.de>
|
2012-04-11 Corinna Vinschen <corinna@vinschen.de>
|
||||||
|
|
||||||
* syscalls.cc (fhandler_base::stat_fixup): Fix inode numbers of
|
* syscalls.cc (fhandler_base::stat_fixup): Fix inode numbers of
|
||||||
|
|
|
@ -67,18 +67,16 @@ exists_ntdev_silent (const device& dev)
|
||||||
static int
|
static int
|
||||||
exists_console (const device& dev)
|
exists_console (const device& dev)
|
||||||
{
|
{
|
||||||
if (!iscons_dev (myself->ctty))
|
|
||||||
return false;
|
|
||||||
int devn = *const_cast<device *> (&dev);
|
int devn = *const_cast<device *> (&dev);
|
||||||
switch (devn)
|
switch (devn)
|
||||||
{
|
{
|
||||||
case FH_CONSOLE:
|
case FH_CONSOLE:
|
||||||
case FH_CONIN:
|
case FH_CONIN:
|
||||||
case FH_CONOUT:
|
case FH_CONOUT:
|
||||||
return true;
|
return !!GetConsoleCP ();
|
||||||
default:
|
default:
|
||||||
/* Only show my own console device (for now?) */
|
/* Only show my own console device (for now?) */
|
||||||
return myself->ctty == devn;
|
return iscons_dev (myself->ctty) && myself->ctty == devn;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -63,18 +63,16 @@ exists_ntdev_silent (const device& dev)
|
||||||
static int
|
static int
|
||||||
exists_console (const device& dev)
|
exists_console (const device& dev)
|
||||||
{
|
{
|
||||||
if (!iscons_dev (myself->ctty))
|
|
||||||
return false;
|
|
||||||
int devn = *const_cast<device *> (&dev);
|
int devn = *const_cast<device *> (&dev);
|
||||||
switch (devn)
|
switch (devn)
|
||||||
{
|
{
|
||||||
case FH_CONSOLE:
|
case FH_CONSOLE:
|
||||||
case FH_CONIN:
|
case FH_CONIN:
|
||||||
case FH_CONOUT:
|
case FH_CONOUT:
|
||||||
return true;
|
return !!GetConsoleCP ();
|
||||||
default:
|
default:
|
||||||
/* Only show my own console device (for now?) */
|
/* Only show my own console device (for now?) */
|
||||||
return myself->ctty == devn;
|
return iscons_dev (myself->ctty) && myself->ctty == devn;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -136,18 +136,19 @@ fhandler_console::set_unit ()
|
||||||
fh_devices devset;
|
fh_devices devset;
|
||||||
lock_ttys here;
|
lock_ttys here;
|
||||||
HWND me;
|
HWND me;
|
||||||
|
fh_devices this_unit = dev ();
|
||||||
|
bool generic_console = this_unit == FH_CONIN || this_unit == FH_CONOUT;
|
||||||
if (shared_console_info)
|
if (shared_console_info)
|
||||||
{
|
{
|
||||||
fh_devices this_unit = dev ();
|
|
||||||
fh_devices shared_unit =
|
fh_devices shared_unit =
|
||||||
(fh_devices) shared_console_info->tty_min_state.getntty ();
|
(fh_devices) shared_console_info->tty_min_state.getntty ();
|
||||||
devset = (shared_unit == this_unit || this_unit == FH_CONSOLE
|
devset = (shared_unit == this_unit || this_unit == FH_CONSOLE
|
||||||
|| this_unit == FH_CONIN || this_unit == FH_CONOUT
|
|| generic_console
|
||||||
|| this_unit == FH_TTY) ?
|
|| this_unit == FH_TTY) ?
|
||||||
shared_unit : FH_ERROR;
|
shared_unit : FH_ERROR;
|
||||||
created = false;
|
created = false;
|
||||||
}
|
}
|
||||||
else if ((myself->ctty != -1 && !iscons_dev (myself->ctty))
|
else if ((!generic_console && (myself->ctty != -1 && !iscons_dev (myself->ctty)))
|
||||||
|| !(me = GetConsoleWindow ()))
|
|| !(me = GetConsoleWindow ()))
|
||||||
devset = FH_ERROR;
|
devset = FH_ERROR;
|
||||||
else
|
else
|
||||||
|
|
Loading…
Reference in New Issue