ls,ps,watch: measure terminal width on fd 0, not 1

This commit is contained in:
Denis Vlasenko
2007-08-09 08:27:24 +00:00
parent 501bfe2630
commit f893da875a
5 changed files with 9 additions and 7 deletions

View File

@@ -28,7 +28,7 @@ int watch_main(int argc, char **argv)
{
unsigned opt;
unsigned period = 2;
unsigned cmdlen = 1; // 1 for terminal NUL
unsigned cmdlen;
char *header = NULL;
char *cmd;
char *tmp;
@@ -42,6 +42,7 @@ int watch_main(int argc, char **argv)
argv += optind;
p = argv;
cmdlen = 1; // 1 for terminal NUL
while (*p)
cmdlen += strlen(*p++) + 1;
tmp = cmd = xmalloc(cmdlen);
@@ -58,7 +59,7 @@ int watch_main(int argc, char **argv)
char *thyme;
time_t t;
get_terminal_width_height(STDOUT_FILENO, &width, 0);
get_terminal_width_height(STDIN_FILENO, &width, 0);
header = xrealloc(header, width--);
// '%-*s' pads header with spaces to the full width
snprintf(header, width, "Every %ds: %-*s", period, width, cmd);