aboutsummaryrefslogtreecommitdiff
path: root/src/libeinfo.c
diff options
context:
space:
mode:
authorRoy Marples <roy@marples.name>2007-09-21 08:49:43 +0000
committerRoy Marples <roy@marples.name>2007-09-21 08:49:43 +0000
commit45bd125dccdc7aef32af99cc6624a74dd2e24371 (patch)
tree130770fac1c33514444f9155947f56fc5bcb84ff /src/libeinfo.c
parentca58877ed06b259ce37a6240746c733d47b0a179 (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.c7
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);
}