diff --git a/doc/coreutils.texi b/doc/coreutils.texi index 5a0c47659..eb174620d 100644 --- a/doc/coreutils.texi +++ b/doc/coreutils.texi @@ -15123,7 +15123,6 @@ Exit status: 1 if standard input is a non-terminal file 2 if given incorrect arguments 3 if a write error occurs -4 if standard input is closed or its type cannot be determined @end display diff --git a/src/tty.c b/src/tty.c index 994b35611..c02a0d0db 100644 --- a/src/tty.c +++ b/src/tty.c @@ -17,7 +17,7 @@ /* Displays "not a tty" if stdin is not a terminal. Displays nothing if -s option is given. Exit status 0 if stdin is a tty, 1 if not a tty, 2 if usage error, - 3 if write error, 4 for other stdin errors. + 3 if write error. Written by David MacKenzie . */ @@ -35,8 +35,7 @@ enum { TTY_STDIN_NOTTY = 1, TTY_FAILURE = 2, - TTY_WRITE_ERROR = 3, - TTY_STDIN_ERROR = 4 + TTY_WRITE_ERROR = 3 }; /* The official name of this program (e.g., no 'g' prefix). */ @@ -118,17 +117,13 @@ main (int argc, char **argv) errno = ENOENT; if (silent) - return (isatty (STDIN_FILENO) ? EXIT_SUCCESS - : (errno == ENOTTY || errno == EINVAL) ? TTY_STDIN_NOTTY - : TTY_STDIN_ERROR); + return isatty (STDIN_FILENO) ? EXIT_SUCCESS : TTY_STDIN_NOTTY; int status = EXIT_SUCCESS; char const *tty = ttyname (STDIN_FILENO); if (! tty) { - if (errno != ENOTTY && errno != EINVAL) - error (TTY_STDIN_ERROR, errno, _("standard input")); tty = _("not a tty"); status = TTY_STDIN_NOTTY; } diff --git a/tests/misc/tty.sh b/tests/misc/tty.sh index 904b5d6a2..aa3203be5 100755 --- a/tests/misc/tty.sh +++ b/tests/misc/tty.sh @@ -27,6 +27,8 @@ fi returns_ 1 tty /dev/null || fail=1 +returns_ 1 tty -s <&- || fail=1 returns_ 2 tty a || fail=1 returns_ 2 tty -s a || fail=1 @@ -38,7 +40,4 @@ if test -w /dev/full && test -c /dev/full; then returns_ 3 tty /dev/full || fail=1 fi -returns_ 4 tty <&- 2>/dev/null || fail=1 -returns_ 4 tty -s <&- || fail=1 - Exit $fail