summaryrefslogtreecommitdiffstats
path: root/bin/stty
diff options
context:
space:
mode:
authorjoerg <joerg@FreeBSD.org>1995-07-02 08:54:27 +0000
committerjoerg <joerg@FreeBSD.org>1995-07-02 08:54:27 +0000
commitfa02ebb9a11b90388f7d227385e1eb441440b45b (patch)
tree58847a79c6e078ad75d8fd5722522df39371e5b6 /bin/stty
parent579762e798a64053a3dfdb2a7e0a8389e7289d3f (diff)
downloadFreeBSD-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')
-rw-r--r--bin/stty/stty.c8
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));
OpenPOWER on IntegriCloud