=================================================================== RCS file: /cvsrepo/anoncvs/cvs/src/usr.bin/systat/main.c,v retrieving revision 1.57 retrieving revision 1.58 diff -c -r1.57 -r1.58 *** src/usr.bin/systat/main.c 2010/07/16 05:22:48 1.57 --- src/usr.bin/systat/main.c 2011/03/31 06:12:34 1.58 *************** *** 1,4 **** ! /* $Id: main.c,v 1.57 2010/07/16 05:22:48 lum Exp $ */ /* * Copyright (c) 2001, 2007 Can Erkin Acar * Copyright (c) 2001 Daniel Hartmeier --- 1,4 ---- ! /* $Id: main.c,v 1.58 2011/03/31 06:12:34 lum Exp $ */ /* * Copyright (c) 2001, 2007 Can Erkin Acar * Copyright (c) 2001 Daniel Hartmeier *************** *** 53,58 **** --- 53,60 ---- #include "engine.h" #include "systat.h" + #define TIMEPOS 55 + double dellave; kvm_t *kd; *************** *** 66,73 **** char hostname[MAXHOSTNAMELEN]; WINDOW *wnd; int CMDLINE; - #define TIMEPOS 55 int ucount(void); void usage(void); --- 68,76 ---- char hostname[MAXHOSTNAMELEN]; WINDOW *wnd; int CMDLINE; + char timebuf[26]; + char uloadbuf[TIMEPOS]; int ucount(void); void usage(void); *************** *** 90,120 **** { time_t now; int start = dispstart + 1, end = dispstart + maxprint; ! char tbuf[26]; if (end > num_disp) end = num_disp; tb_start(); ! getloadavg(avenrun, sizeof(avenrun) / sizeof(avenrun[0])); ! time(&now); ! strlcpy(tbuf, ctime(&now), sizeof tbuf); ! tbprintf(" %d users", ucount()); ! tbprintf(" Load %.2f %.2f %.2f", avenrun[0], avenrun[1], avenrun[2]); ! if (num_disp && (start > 1 || end != num_disp)) ! tbprintf(" (%u-%u of %u)", start, end, num_disp); ! if (paused) ! tbprintf(" PAUSED"); ! ! if (rawmode) { ! printf("\n\n%-55s%s\n", tmp_buf, tbuf); ! } else { ! mvprintw(0, 0, "%s", tmp_buf); ! mvprintw(0, TIMEPOS, "%s", tbuf); } return (1); } --- 93,132 ---- { time_t now; int start = dispstart + 1, end = dispstart + maxprint; ! char tmpbuf[TIMEPOS]; ! char header[MAX_LINE_BUF]; if (end > num_disp) end = num_disp; tb_start(); ! if (!paused) { ! getloadavg(avenrun, sizeof(avenrun) / sizeof(avenrun[0])); ! snprintf(uloadbuf, sizeof(uloadbuf), ! "%5d users Load %.2f %.2f %.2f", ! ucount(), avenrun[0], avenrun[1], avenrun[2]); ! time(&now); ! strlcpy(timebuf, ctime(&now), sizeof(timebuf)); } + + if (num_disp && (start > 1 || end != num_disp)) + snprintf(tmpbuf, sizeof(tmpbuf), + "%s (%u-%u of %u) %s", uloadbuf, start, end, num_disp, + paused ? "PAUSED" : ""); + else + snprintf(tmpbuf, sizeof(tmpbuf), + "%s %s", uloadbuf, + paused ? "PAUSED" : ""); + + snprintf(header, sizeof(header), "%-55s%s", tmpbuf, timebuf); + + if (rawmode) + printf("\n\n%s\n", header); + else + mvprintw(0, 0, "%s", header); return (1); }