ps: fix non-desktop ps -ww -- thanks rockeychu

This commit is contained in:
Denis Vlasenko 2007-07-25 17:27:58 +00:00
parent f4cee7a174
commit 7ce7594fa3

View File

@ -11,6 +11,9 @@
#include "libbb.h" #include "libbb.h"
/* Absolute maximum on output line length */
enum { MAX_WIDTH = 2*1024 };
#if ENABLE_DESKTOP #if ENABLE_DESKTOP
/* Print value to buf, max size+1 chars (including trailing '\0') */ /* Print value to buf, max size+1 chars (including trailing '\0') */
@ -317,10 +320,11 @@ int ps_main(int argc, char **argv)
/* Was INT_MAX, but some libc's go belly up with printf("%.*s") /* Was INT_MAX, but some libc's go belly up with printf("%.*s")
* and such large widths */ * and such large widths */
terminal_width = 30000; terminal_width = MAX_WIDTH;
if (isatty(1)) { if (isatty(1)) {
get_terminal_width_height(1, &terminal_width, NULL); get_terminal_width_height(1, &terminal_width, NULL);
terminal_width--; if (--terminal_width > MAX_WIDTH)
terminal_width = MAX_WIDTH;
} }
format_header(); format_header();
@ -358,11 +362,12 @@ int ps_main(int argc, char **argv)
* if w is given more than once, it is "unlimited" * if w is given more than once, it is "unlimited"
*/ */
if (w_count) { if (w_count) {
terminal_width = (w_count==1) ? 132 : INT_MAX; terminal_width = (w_count==1) ? 132 : MAX_WIDTH;
} else { } else {
get_terminal_width_height(1, &terminal_width, NULL); get_terminal_width_height(1, &terminal_width, NULL);
/* Go one less... */ /* Go one less... */
terminal_width--; if (--terminal_width > MAX_WIDTH)
terminal_width = MAX_WIDTH;
} }
#else /* only ENABLE_SELINUX */ #else /* only ENABLE_SELINUX */
i = getopt32(argc, argv, "Z"); i = getopt32(argc, argv, "Z");