* 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:
@@ -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
|
||||
|
Reference in New Issue
Block a user