svn commit: r364112 - head/usr.bin/script
Mark Johnston
markj at FreeBSD.org
Tue Aug 11 14:19:06 UTC 2020
Author: markj
Date: Tue Aug 11 14:19:05 2020
New Revision: 364112
URL: https://svnweb.freebsd.org/changeset/base/364112
Log:
script: Minor cleanups.
- Instead of using isatty() to decide whether to call tcgetattr(), just
call tcgetattr() directly, since that's all that isatty() does anyway.
- Simplify error handling in termset(). Check for errno != ENOTTY from
tcgetattr() to handle errors that may be raised while running
script(1) under a debugger.
PR: 248377
Submitted by: Soumendra Ganguly <soumendraganguly at gmail.com>
MFC after: 1 week
Modified:
head/usr.bin/script/script.c
Modified: head/usr.bin/script/script.c
==============================================================================
--- head/usr.bin/script/script.c Tue Aug 11 13:51:48 2020 (r364111)
+++ head/usr.bin/script/script.c Tue Aug 11 14:19:05 2020 (r364112)
@@ -176,16 +176,16 @@ main(int argc, char *argv[])
if (pflg)
playback(fscript);
- if ((ttyflg = isatty(STDIN_FILENO)) != 0) {
- if (tcgetattr(STDIN_FILENO, &tt) == -1)
- err(1, "tcgetattr");
- if (ioctl(STDIN_FILENO, TIOCGWINSZ, &win) == -1)
- err(1, "ioctl");
- if (openpty(&master, &slave, NULL, &tt, &win) == -1)
+ if (tcgetattr(STDIN_FILENO, &tt) == -1 ||
+ ioctl(STDIN_FILENO, TIOCGWINSZ, &win) == -1) {
+ if (errno != ENOTTY) /* For debugger. */
+ err(1, "tcgetattr/ioctl");
+ if (openpty(&master, &slave, NULL, NULL, NULL) == -1)
err(1, "openpty");
} else {
- if (openpty(&master, &slave, NULL, NULL, NULL) == -1)
+ if (openpty(&master, &slave, NULL, &tt, &win) == -1)
err(1, "openpty");
+ ttyflg = 1;
}
if (rawout)
@@ -433,9 +433,8 @@ termset(void)
struct termios traw;
if (tcgetattr(STDOUT_FILENO, &tt) == -1) {
- if (errno == EBADF)
- err(1, "%d not valid fd", STDOUT_FILENO);
- /* errno == ENOTTY */
+ if (errno != ENOTTY) /* For debugger. */
+ err(1, "tcgetattr");
return;
}
ttyflg = 1;
More information about the svn-src-all
mailing list