diff options
author | joerg <joerg@FreeBSD.org> | 1995-07-02 08:54:27 +0000 |
---|---|---|
committer | joerg <joerg@FreeBSD.org> | 1995-07-02 08:54:27 +0000 |
commit | fa02ebb9a11b90388f7d227385e1eb441440b45b (patch) | |
tree | 58847a79c6e078ad75d8fd5722522df39371e5b6 /bin/stty/stty.c | |
parent | 579762e798a64053a3dfdb2a7e0a8389e7289d3f (diff) | |
download | FreeBSD-src-fa02ebb9a11b90388f7d227385e1eb441440b45b.zip FreeBSD-src-fa02ebb9a11b90388f7d227385e1eb441440b45b.tar.gz |
stty fails with a non-obvious error message if it's run on a non-tty
stream, such as a rsh or vi pipeline.
The error message is:
stty: TIOCGETD: Operation not supported
It's immediately obvious to the knowledgable hacker type, but not
exactly comforting to the user who's not native to unix. It's
especially confusing if there's a stty command in their .cshrc and
it's showing up on rsh output.
(Fixes PR #bin/573)
Submitted by: peter@haywire.dialix.com (Peter Wemm)
Diffstat (limited to 'bin/stty/stty.c')
-rw-r--r-- | bin/stty/stty.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/bin/stty/stty.c b/bin/stty/stty.c index d8ce2ff..9d9f679 100644 --- a/bin/stty/stty.c +++ b/bin/stty/stty.c @@ -30,7 +30,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $Id: stty.c,v 1.3 1995/04/29 15:00:34 bde Exp $ + * $Id: stty.c,v 1.4 1995/05/30 00:07:28 rgrimes Exp $ */ #ifndef lint @@ -95,10 +95,12 @@ main(argc, argv) args: argc -= optind; argv += optind; + if (tcgetattr(i.fd, &i.t) < 0) { + warn("tcgetattr: not running on a terminal"); + exit(1); + } if (ioctl(i.fd, TIOCGETD, &i.ldisc) < 0) err(1, "TIOCGETD"); - if (tcgetattr(i.fd, &i.t) < 0) - err(1, "tcgetattr"); if (ioctl(i.fd, TIOCGWINSZ, &i.win) < 0) warn("TIOCGWINSZ: %s\n", strerror(errno)); |