mirror of
https://https.git.savannah.gnu.org/git/coreutils.git
synced 2026-01-26 15:29:07 +00:00
tty: fix exit code with EINVAL
* src/tty.c (main): All systems mention that isatty() man return EINVAL as well as (the POSIX compliant) ENOTTY. Also Centos 6 was seen to return EINVAL from ttyname(). * tests/misc/tty.sh: Fix a test issue where we assume standard input is always a valid tty. Reported by Assaf Gordon on OpenSolaris 5.10 and 5.11, and Centos 6.5
This commit is contained in:
parent
f5d7c0842e
commit
d952949829
@ -119,7 +119,7 @@ main (int argc, char **argv)
|
||||
|
||||
if (silent)
|
||||
return (isatty (STDIN_FILENO) ? EXIT_SUCCESS
|
||||
: errno == ENOTTY ? TTY_STDIN_NOTTY
|
||||
: (errno == ENOTTY || errno == EINVAL) ? TTY_STDIN_NOTTY
|
||||
: TTY_STDIN_ERROR);
|
||||
|
||||
int status = EXIT_SUCCESS;
|
||||
@ -127,7 +127,7 @@ main (int argc, char **argv)
|
||||
|
||||
if (! tty)
|
||||
{
|
||||
if (errno != ENOTTY)
|
||||
if (errno != ENOTTY && errno != EINVAL)
|
||||
error (TTY_STDIN_ERROR, errno, _("standard input"));
|
||||
tty = _("not a tty");
|
||||
status = TTY_STDIN_NOTTY;
|
||||
|
||||
@ -32,7 +32,9 @@ returns_ 2 tty a || fail=1
|
||||
returns_ 2 tty -s a || fail=1
|
||||
|
||||
if test -w /dev/full && test -c /dev/full; then
|
||||
returns_ 3 tty >/dev/full || fail=1
|
||||
if test -t 0; then
|
||||
returns_ 3 tty >/dev/full || fail=1
|
||||
fi
|
||||
returns_ 3 tty </dev/null >/dev/full || fail=1
|
||||
fi
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user