* 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:
Christopher Faylor 2012-04-13 02:30:51 +00:00
parent 416b2d8719
commit 3bfa9d984b
4 changed files with 15 additions and 11 deletions

View File

@ -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

View File

@ -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;
} }
} }

View File

@ -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;
} }
} }

View File

@ -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