From aad20af475f8e3e1d7d878e82d82d433706ffaff Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Fri, 5 Mar 1999 18:52:41 +0000 Subject: Update. * sysdeps/unix/sysv/linux/ttyname_r.c (__ttyname_r): Remember whether /dev/pts is available. * sysdeps/unix/sysv/linux/ttyname.c (ttyname): Fix handling of dev_pts_available. --- sysdeps/unix/sysv/linux/ttyname_r.c | 29 +++++++++++++++++++---------- 1 file changed, 19 insertions(+), 10 deletions(-) (limited to 'sysdeps/unix/sysv/linux/ttyname_r.c') diff --git a/sysdeps/unix/sysv/linux/ttyname_r.c b/sysdeps/unix/sysv/linux/ttyname_r.c index b92c712fcc..ae5a029e65 100644 --- a/sysdeps/unix/sysv/linux/ttyname_r.c +++ b/sysdeps/unix/sysv/linux/ttyname_r.c @@ -103,6 +103,7 @@ __ttyname_r (fd, buf, buflen) char *buf; size_t buflen; { + static int dev_pts_available = 1; char procname[30]; struct stat st, st1; int dostat = 0; @@ -148,20 +149,28 @@ __ttyname_r (fd, buf, buflen) memcpy (buf, "/dev/pts/", sizeof ("/dev/pts/")); buflen -= sizeof ("/dev/pts/") - 1; - if (__xstat (_STAT_VER, buf, &st1) == 0 && S_ISDIR (st1.st_mode)) + if (dev_pts_available) { + if (__xstat (_STAT_VER, buf, &st1) == 0 && S_ISDIR (st1.st_mode)) + { #ifdef _STATBUF_ST_RDEV - ret = getttyname_r (buf, buflen, st.st_rdev, st.st_ino, save, - &dostat); + ret = getttyname_r (buf, buflen, st.st_rdev, st.st_ino, save, + &dostat); #else - ret = getttyname_r (buf, buflen, st.st_dev, st.st_ino, save, - &dostat); + ret = getttyname_r (buf, buflen, st.st_dev, st.st_ino, save, + &dostat); #endif - } - else - { - __set_errno (save); - ret = ENOENT; + } + else + { + __set_errno (save); + ret = ENOENT; + } + else + { + __set_errno (save); + dev_pts_available = 0; + } } if (ret && dostat != -1) -- cgit 1.4.1