* cygwin.din (ptsname_r): Export.

* fhandler.cc (fhandler_base::ptsname_r): Define.
* fhandler.h (fhandler_base::ptsname): Delete.
(fhandler_base::ptsname_r): Declare.
(fhandler_pty_master::ptsname_r): Declare.
* fhandler_tty.cc (fhandler_pty_master::ptsname): Delete.
(fhandler_pty_master::ptsname_r): New reentrant function derived from previous
ptsname.
* syscalls.cc (ptsname_r): Implement new function with functionality similar to
Linux.
(ptsname): Use ptsname_r () to fill out buf.
* include/cygwin/stdlib.h (ptsname_r): Declare.
* include/cygwin/version.h: Bump CYGWIN_VERSION_API_MINOR to 255 to reflect
export of ptsname_r.
* pinfo.cc (pinfo::wait): Return bool rather than int.
* pinfo.h (info::wait): Ditto.
(pinfo::reattach): Define !defined(_SIGPROC_H) case for consistency.
* sigproc.cc (child_info_spawn::reattach_children): Use correct dwProcessId
rather than pid when duplicating handle.
This commit is contained in:
Christopher Faylor
2011-11-07 20:05:49 +00:00
parent 78942629ac
commit 65a6152f18
11 changed files with 69 additions and 16 deletions

View File

@@ -1419,13 +1419,19 @@ fhandler_pty_master::ioctl (unsigned int cmd, void *arg)
return 0;
}
char *
fhandler_pty_master::ptsname ()
int
fhandler_pty_master::ptsname_r (char *buf, size_t buflen)
{
static char buf[TTY_NAME_MAX];
char tmpbuf[TTY_NAME_MAX];
__small_sprintf (buf, "/dev/pty%d", get_unit ());
return buf;
__small_sprintf (tmpbuf, "/dev/pty%d", get_unit ());
if (buflen <= strlen (tmpbuf))
{
set_errno (ERANGE);
return ERANGE;
}
strcpy (buf, tmpbuf);
return 0;
}
void