X-Git-Url: http://ncurses.scripts.mit.edu/?p=ncurses.git;a=blobdiff_plain;f=progs%2Ftty_settings.c;h=a9eb8cd8ba748b9095504130e713f4714ce4bf6a;hp=23daefa07ac8d94452b4214fa6b57a7b4c0c800b;hb=HEAD;hpb=cd142df6d9934f1bda19f5b968cc666291be5072 diff --git a/progs/tty_settings.c b/progs/tty_settings.c index 23daefa0..a9eb8cd8 100644 --- a/progs/tty_settings.c +++ b/progs/tty_settings.c @@ -1,5 +1,6 @@ /**************************************************************************** - * Copyright (c) 2016,2017 Free Software Foundation, Inc. * + * Copyright 2020,2021 Thomas E. Dickey * + * Copyright 2016,2017 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 * @@ -35,7 +36,7 @@ #include -MODULE_ID("$Id: tty_settings.c,v 1.5 2017/10/07 20:55:57 tom Exp $") +MODULE_ID("$Id: tty_settings.c,v 1.7 2021/10/08 23:53:32 tom Exp $") static int my_fd; static TTY original_settings; @@ -73,10 +74,12 @@ save_tty_settings(TTY * tty_settings, bool need_tty) { if (!get_tty_settings(STDERR_FILENO, tty_settings) && !get_tty_settings(STDOUT_FILENO, tty_settings) && - !get_tty_settings(STDIN_FILENO, tty_settings) && - !get_tty_settings(open("/dev/tty", O_RDWR), tty_settings)) { + !get_tty_settings(STDIN_FILENO, tty_settings)) { if (need_tty) { - failed("terminal attributes"); + int fd = open("/dev/tty", O_RDWR); + if (!get_tty_settings(fd, tty_settings)) { + failed("terminal attributes"); + } } else { my_fd = fileno(stdout); }