X-Git-Url: https://ncurses.scripts.mit.edu/?p=ncurses.git;a=blobdiff_plain;f=progs%2Ftset.c;h=777fc6f483a1b94f2f7056834a5d44e9156c4182;hp=f66a1670b6e7cde1327a420df2c94e63fd93c04d;hb=59c1a9740d123db3cecafe76e18f7848081a670b;hpb=96e4e128aeac7fd4706facb2c23d9a89c8f52c2f diff --git a/progs/tset.c b/progs/tset.c index f66a1670..777fc6f4 100644 --- a/progs/tset.c +++ b/progs/tset.c @@ -1,5 +1,5 @@ /**************************************************************************** - * Copyright (c) 1998-2013,2015 Free Software Foundation, Inc. * + * Copyright (c) 1998-2015,2016 Free Software Foundation, Inc. * * * * Permission is hereby granted, free of charge, to any person obtaining a * * copy of this software and associated documentation files (the * @@ -119,7 +119,7 @@ char *ttyname(int fd); #include #include -MODULE_ID("$Id: tset.c,v 1.97 2015/11/08 01:45:47 tom Exp $") +MODULE_ID("$Id: tset.c,v 1.99 2016/07/24 00:07:16 tom Exp $") /* * SCO defines TIOCGSIZE and the corresponding struct. Other systems (SunOS, @@ -1210,7 +1210,7 @@ main(int argc, char **argv) obsolete(argv); noinit = noset = quiet = Sflag = sflag = showterm = 0; - while ((ch = getopt(argc, argv, "a:cd:e:Ii:k:m:np:qQSrsVw")) != -1) { + while ((ch = getopt(argc, argv, "a:cd:e:Ii:k:m:p:qQSrsVw")) != -1) { switch (ch) { case 'c': /* set control-chars */ opt_c = TRUE; @@ -1236,8 +1236,6 @@ main(int argc, char **argv) case 'm': /* map identifier to type */ add_mapping(0, optarg); break; - case 'n': /* OBSOLETE: set new tty driver */ - break; case 'p': /* OBSOLETE: map identifier to type */ add_mapping("plugboard", optarg); break; @@ -1278,8 +1276,13 @@ main(int argc, char **argv) if (!opt_c && !opt_w) opt_c = opt_w = TRUE; - if (GET_TTY(STDERR_FILENO, &mode) < 0) - failed("standard error"); + /* + * stderr is less likely to be redirected than stdout; try that first. + */ + if (GET_TTY(STDERR_FILENO, &mode) < 0 && + GET_TTY(STDOUT_FILENO, &mode) < 0) { + failed("terminal attributes"); + } can_restore = TRUE; original = oldmode = mode; #ifdef TERMIOS