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

Index: main.c
===================================================================
RCS file: /cvs/src/usr.bin/systat/main.c,v
retrieving revision 1.64
diff -u -p -r1.64 main.c
--- main.c      2 Jan 2016 15:02:05 -0000       1.64
+++ main.c      13 Oct 2016 05:59:32 -0000
@@ -101,6 +101,8 @@ print_header(void)
        tb_start();
 
        if (!paused) {
+               char *ctim;
+
                getloadavg(avenrun, sizeof(avenrun) / sizeof(avenrun[0]));
 
                snprintf(uloadbuf, sizeof(uloadbuf),
@@ -108,7 +110,9 @@ print_header(void)
                    ucount(), avenrun[0], avenrun[1], avenrun[2]);
 
                time(&now);
-               strlcpy(timebuf, ctime(&now), sizeof(timebuf));
+               ctim = ctime(&now);
+               ctim[11+8] = '\0';
+               strlcpy(timebuf, ctim + 11, sizeof(timebuf));
        }
 
        if (num_disp && (start > 1 || end != num_disp))
@@ -120,7 +124,8 @@ print_header(void)
                    "%s %s", uloadbuf,
                    paused ? "PAUSED" : "");
                
-       snprintf(header, sizeof(header), "%-55s%s", tmpbuf, timebuf);
+       snprintf(header, sizeof(header), "%-44s %.15s %s", tmpbuf, hostname,
+           timebuf);
 
        if (rawmode)
                printf("\n\n%s\n", header);

Reply via email to