]> granicus.if.org Git - procps-ng/commitdiff
w: Adjust command width
authorCraig Small <csmall@enc.com.au>
Tue, 21 Jul 2015 12:45:02 +0000 (22:45 +1000)
committerCraig Small <csmall@enc.com.au>
Wed, 14 Oct 2015 10:34:22 +0000 (21:34 +1100)
w would error out if the window size was smaller than 71 or some
other fields through environment grew too big. The code was a little
convoluted as well. The minimum length for command was 3, which is
pretty useless.

This change does the following:
 w doesn't care by default the window size
 w will adjust the command length up and down, to a minimum of 7
characters.
 if the fields don't fit, w will line-wrap each line.

The idea being its better the line-wrap than it is to error out.

References: https://bugs.debian.org/183394

Signed-off-by: Craig Small <csmall@enc.com.au>
Ported-by: Jim Warner <james.warner@comcast.net>
From original:
commit 151c05b4978b2022eda1d6e509e65f74eb491312

w.c

diff --git a/w.c b/w.c
index e4e01cc77de2808fd49b98eb9e7fc2265c81066e..615cd4bb6679db95e5478c4fd46720a084709eb9 100644 (file)
--- a/w.c
+++ b/w.c
@@ -65,6 +65,7 @@ typedef struct utmp utmp_t;
 #endif
 
 #define MAX_CMD_WIDTH  512
+#define MIN_CMD_WIDTH   7
 
 /*
  * This routine is careful since some programs leave utmp strings
@@ -621,16 +622,11 @@ int main(int argc, char **argv)
                maxcmd = atoi(p);
        else
                maxcmd = MAX_CMD_WIDTH;
-       if (maxcmd < 71)
-               xerrx(EXIT_FAILURE, _("%d column window is too narrow"), maxcmd);
-       if (MAX_CMD_WIDTH < maxcmd) {
-               xwarnx(_("%d column width exceeds command buffer size, truncating to %d"),
-                      maxcmd, MAX_CMD_WIDTH);
+       if (MAX_CMD_WIDTH < maxcmd)
                maxcmd = MAX_CMD_WIDTH;
-       }
        maxcmd -= 21 + userlen + (from ? fromlen : 0) + (longform ? 20 : 0);
-       if (maxcmd < 3)
-               xwarnx(_("warning: screen width %d suboptimal"), win.ws_col);
+       if (maxcmd < MIN_CMD_WIDTH)
+        maxcmd = MIN_CMD_WIDTH;
 
 
        if (header) {