diff options
Diffstat (limited to 'winsup/cygwin/syscalls.cc')
-rw-r--r-- | winsup/cygwin/syscalls.cc | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/winsup/cygwin/syscalls.cc b/winsup/cygwin/syscalls.cc index 5bfaa0c08..514d458fd 100644 --- a/winsup/cygwin/syscalls.cc +++ b/winsup/cygwin/syscalls.cc @@ -2906,10 +2906,23 @@ getpgrp (void) extern "C" char * ptsname (int fd) { + static char buf[TTY_NAME_MAX]; + return ptsname_r (fd, buf, sizeof (buf)) == 0 ? buf : NULL; +} + +extern "C" int +ptsname_r (int fd, char *buf, size_t buflen) +{ + if (!buf) + { + set_errno (EINVAL); + return EINVAL; + } + cygheap_fdget cfd (fd); if (cfd < 0) return 0; - return (char *) (cfd->ptsname ()); + return cfd->ptsname_r (buf, buflen); } static int __stdcall |