diff options
author | Roy Marples <roy@marples.name> | 2007-09-21 08:49:43 +0000 |
---|---|---|
committer | Roy Marples <roy@marples.name> | 2007-09-21 08:49:43 +0000 |
commit | 45bd125dccdc7aef32af99cc6624a74dd2e24371 (patch) | |
tree | 130770fac1c33514444f9155947f56fc5bcb84ff /src/libeinfo.c | |
parent | ca58877ed06b259ce37a6240746c733d47b0a179 (diff) |
Use a pty for prefixed output instead of pipes for stdout/stderr. This
is so that programs can get information about the controlling terminal.
This change was triggered by bug #188506 where it's possible that
stdin, stdout and stderr didn't point to a terminal but ended up on one
via our pipes. Using a pty means that stdout and stderr always point to
a terminal, but we lose the ability to tell them apart.
If there is not a pty available then we use un-prefixed output as normal.
This change has also introduced the need for a signal pipe so that
SIGCHLD can exit the loop cleanly.
Diffstat (limited to 'src/libeinfo.c')
-rw-r--r-- | src/libeinfo.c | 7 |
1 files changed, 0 insertions, 7 deletions
diff --git a/src/libeinfo.c b/src/libeinfo.c index b85b2f42..5025f339 100644 --- a/src/libeinfo.c +++ b/src/libeinfo.c @@ -175,17 +175,10 @@ static bool colour_terminal (void) static int get_term_columns (FILE *stream) { -#if defined(TIOCGSIZE) /* BSD */ - struct ttysize ts; - - if (ioctl (fileno (stream), TIOCGSIZE, &ts) == 0) - return (ts.ts_cols); -#elif defined(TIOCGWINSZ) /* Linux */ struct winsize ws; if (ioctl (fileno (stream), TIOCGWINSZ, &ws) == 0) return (ws.ws_col); -#endif return (DEFAULT_COLS); } |