diff options
author | Christopher Faylor <me@cgf.cx> | 2011-10-20 18:02:54 +0400 |
---|---|---|
committer | Christopher Faylor <me@cgf.cx> | 2011-10-20 18:02:54 +0400 |
commit | 38d732a152ff27601b385c00e6574111461b65c4 (patch) | |
tree | ce60ae6b1ad6b8ca6e1d71d10cddaffebbf62ab2 /winsup/cygwin/fhandler.cc | |
parent | aa982024d14f9d6c4afe8ada89e5a46585623102 (diff) |
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.cc | 11 |
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; |