--- isatty.c.orig 2009-11-07 14:51:38.000000000 -0800 +++ isatty.c 2009-11-07 14:51:40.000000000 -0800 @@ -35,14 +35,22 @@ __FBSDID("$FreeBSD: src/lib/libc/gen/isa #include <termios.h> #include <unistd.h> +#include <sys/filio.h> +#include <sys/conf.h> +#include <sys/ioctl.h> +#include <errno.h> int isatty(fd) int fd; { - int retval; + int retval, type; struct termios t; - retval = (tcgetattr(fd, &t) != -1); + if(ioctl(fd, FIODTYPE, &type) != -1) { + if((retval = (type == D_TTY)) == 0) + errno = ENOTTY; + } else + retval = (tcgetattr(fd, &t) != -1); return(retval); }