On Thu, Oct 13, 2016 at 08:20:52AM +0200, Otto Moerbeek wrote:

> On Thu, Oct 13, 2016 at 08:01:22AM +0200, Otto Moerbeek wrote:
> 
> > On Thu, Oct 13, 2016 at 12:15:34AM -0400, Ted Unangst wrote:
> > 
> > > Theo de Raadt wrote:
> > > > > On Wed, Oct 12, 2016 at 03:20:00PM +0200, Otto Moerbeek wrote:
> > > > > > simple diff to show the hostname on the second line. OK?
> > > > > 
> > > > > OK bluhm@
> > > > > 
> > > > > > 
> > > > > > BTW, batch mode doesn't function here as expected. Need to look 
> > > > > > into that,
> > > > 
> > > > I hoped this would look more like top(1) so I did it a different way.
> > > > This does not work quite right for long hostnames, but then.. neither
> > > > does top.
> > > 
> > > this truncates hostname to always display time.
> > 
> > If the line grows (because of multiple pages and/or PAUSED mode), the
> > line wraps now.... Also, we have hostname already available in a
> > buffer. 
> > 
> >     -Otto
> > 
> 

And squeeze the users/Load info a bit.

        -Otto

Index: main.c
===================================================================
RCS file: /cvs/src/usr.bin/systat/main.c,v
retrieving revision 1.65
diff -u -p -r1.65 main.c
--- main.c      13 Oct 2016 05:46:20 -0000      1.65
+++ main.c      13 Oct 2016 09:05:40 -0000
@@ -52,7 +52,7 @@
 #include "engine.h"
 #include "systat.h"
 
-#define TIMEPOS 55
+#define TIMEPOS (80 - 8 - 20 - 1)
 
 double dellave;
 
@@ -67,7 +67,6 @@ int   ut, hz, stathz;
 char    hostname[HOST_NAME_MAX+1];
 WINDOW  *wnd;
 int    CMDLINE;
-char   hostbuf[26];
 char   timebuf[26];
 char   uloadbuf[TIMEPOS];
 
@@ -107,11 +106,9 @@ print_header(void)
                getloadavg(avenrun, sizeof(avenrun) / sizeof(avenrun[0]));
 
                snprintf(uloadbuf, sizeof(uloadbuf),
-                   "%5d users    Load %.2f %.2f %.2f", 
+                   "%4d users Load %.2f %.2f %.2f", 
                    ucount(), avenrun[0], avenrun[1], avenrun[2]);
 
-               gethostname(hostbuf, sizeof hostbuf);
-
                time(&now);
                ctim = ctime(&now);
                ctim[11+8] = '\0';
@@ -127,7 +124,8 @@ print_header(void)
                    "%s %s", uloadbuf,
                    paused ? "PAUSED" : "");
                
-       snprintf(header, sizeof(header), "%-45s%25.25s %s", tmpbuf, hostbuf, 
timebuf);
+       snprintf(header, sizeof(header), "%-*s %19.19s %s", TIMEPOS - 1,
+           tmpbuf, hostname, timebuf);
 
        if (rawmode)
                printf("\n\n%s\n", header);

Reply via email to