mirror of
https://sourceware.org/git/glibc.git
synced 2025-07-29 11:41:21 +03:00
* sysdeps/unix/bsd/bsd4.4/isatty.c: New file.
* sysdeps/unix/bsd/isatty.c (__isatty): Don't save and restore errno. * sysdeps/unix/bsd/ptsname.c (__ptsname_r): Return errno value from isatty unmodified. Reported by Bruno Haible <bruno@clisp.org>.
This commit is contained in:
3
sysdeps/unix/bsd/bsd4.4/isatty.c
Normal file
3
sysdeps/unix/bsd/bsd4.4/isatty.c
Normal file
@ -0,0 +1,3 @@
|
||||
/* In a 4.4-derived world, tcgetattr is just one ioctl. */
|
||||
|
||||
#include <sysdeps/posix/isatty.c>
|
@ -1,4 +1,4 @@
|
||||
/* Copyright (C) 1991, 1995, 1996, 1997 Free Software Foundation, Inc.
|
||||
/* Copyright (C) 1991,95,96,97,2002 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
|
||||
The GNU C Library is free software; you can redistribute it and/or
|
||||
@ -25,15 +25,8 @@ int
|
||||
__isatty (fd)
|
||||
int fd;
|
||||
{
|
||||
int save;
|
||||
int is_tty;
|
||||
struct sgttyb term;
|
||||
|
||||
save = errno;
|
||||
is_tty = __ioctl (fd, TIOCGETP, &term) == 0;
|
||||
__set_errno (save);
|
||||
|
||||
return is_tty;
|
||||
return __ioctl (fd, TIOCGETP, &term) == 0;
|
||||
}
|
||||
|
||||
weak_alias (__isatty, isatty)
|
||||
|
@ -1,4 +1,4 @@
|
||||
/* Copyright (C) 1998 Free Software Foundation, Inc.
|
||||
/* Copyright (C) 1998,2002 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
|
||||
The GNU C Library is free software; you can redistribute it and/or
|
||||
@ -53,22 +53,20 @@ __ptsname_r (int fd, char *buf, size_t buflen)
|
||||
}
|
||||
|
||||
if (!__isatty (fd))
|
||||
{
|
||||
__set_errno (ENOTTY);
|
||||
return ENOTTY;
|
||||
}
|
||||
/* We rely on isatty to set errno properly (i.e. EBADF or ENOTTY). */
|
||||
return errno;
|
||||
|
||||
if (buflen < strlen (_PATH_TTY) + 3)
|
||||
{
|
||||
__set_errno (ERANGE);
|
||||
return ERANGE;
|
||||
}
|
||||
|
||||
|
||||
if (__ttyname_r (fd, buf, buflen) != 0)
|
||||
return errno;
|
||||
|
||||
buf[sizeof (_PATH_DEV) - 1] = 't';
|
||||
|
||||
|
||||
if (__stat (buf, &st) < 0)
|
||||
return errno;
|
||||
|
||||
|
Reference in New Issue
Block a user