X-Git-Url: https://ncurses.scripts.mit.edu/?a=blobdiff_plain;f=progs%2Ftset.c;h=777fc6f483a1b94f2f7056834a5d44e9156c4182;hb=59c1a9740d123db3cecafe76e18f7848081a670b;hp=472146dc4f15d5ceab98bfb0d67d94f634a8fa97;hpb=808858ace09b9bf60f7154e33cb6572f49347101;p=ncurses.git diff --git a/progs/tset.c b/progs/tset.c index 472146dc..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.95 2015/04/04 15:09:24 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, @@ -377,7 +377,6 @@ static int tbaudrate(char *rate) { const SPEEDS *sp = 0; - int found = FALSE; size_t n; /* The baudrate number can be preceded by a 'B', which is ignored. */ @@ -386,7 +385,6 @@ tbaudrate(char *rate) for (n = 0; n < SIZEOF(speeds); ++n) { if (!CaselessCmp(rate, speeds[n].string)) { - found = TRUE; sp = speeds + n; break; } @@ -1212,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; @@ -1238,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; @@ -1280,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 @@ -1295,7 +1296,7 @@ main(int argc, char **argv) reset_mode(); } - (void) get_termcap_entry(*argv); + ttype = get_termcap_entry(*argv); if (!noset) { #if HAVE_SIZECHANGE @@ -1329,9 +1330,6 @@ main(int argc, char **argv) } } - /* Get the terminal name from the entry. */ - ttype = _nc_first_name(cur_term->type.term_names); - if (noset) (void) printf("%s\n", ttype); else {