summaryrefslogtreecommitdiffstats
path: root/winsup/cygwin/fhandler.cc
diff options
context:
space:
mode:
authorChristopher Faylor <me@cgf.cx>2011-10-20 14:02:54 +0000
committerChristopher Faylor <me@cgf.cx>2011-10-20 14:02:54 +0000
commit38d732a152ff27601b385c00e6574111461b65c4 (patch)
treece60ae6b1ad6b8ca6e1d71d10cddaffebbf62ab2 /winsup/cygwin/fhandler.cc
parentaa982024d14f9d6c4afe8ada89e5a46585623102 (diff)
downloadcygnal-38d732a152ff27601b385c00e6574111461b65c4.tar.gz
cygnal-38d732a152ff27601b385c00e6574111461b65c4.tar.bz2
cygnal-38d732a152ff27601b385c00e6574111461b65c4.zip
Throughout change TTY_* to PTY_*, tty_* to pty_*, and ttym_* to ptmx_*.
* devices.cc: Regenerate. * dtable.cc: (fh_alloc): Preserve /dev/tty name when that's what we opened. (build_fh_pc): Preserve any existing name. * fhandler.cc (fhandler_base::open_with_arch): Ditto. * fhandler_tty.cc (fhandler_pty_master::fhandler_pty_master): Force the name to /dev/ptmx while preserving other pty master device information. * path.h (cfree_maybe): New macro. (path_conv::operator =): Free any allocated strings in target. (path_conv::free_strings): Delete unused function. * sigproc.cc (proc_terminate): Remove previous accommodation for execed processes since it didn't have the desired effect. Change comment to a FIXME. * spawn.cc (chExeced): Mark NO_COPY. (exe_suffixes): Ditto.
Diffstat (limited to 'winsup/cygwin/fhandler.cc')
-rw-r--r--winsup/cygwin/fhandler.cc11
1 files changed, 11 insertions, 0 deletions
diff --git a/winsup/cygwin/fhandler.cc b/winsup/cygwin/fhandler.cc
index 83a4e1b75..c9eb16cc8 100644
--- a/winsup/cygwin/fhandler.cc
+++ b/winsup/cygwin/fhandler.cc
@@ -469,8 +469,19 @@ fhandler_base::open_with_arch (int flags, mode_t mode)
}
else
{
+ char *name;
+ /* Preserve any name (like /dev/tty) derived from build_fh_pc. */
+ if (!get_name ())
+ name = NULL;
+ else
+ {
+ name = (char *) alloca (strlen (get_name ()) + 1);
+ strcpy (name, get_name ());
+ }
fhandler_base *arch = archetype;
archetype->copyto (this);
+ if (name)
+ set_name (name);
archetype = arch;
archetype_usecount (1);
usecount = 0;