Giorgos Keramidas wrote:
On Tue, 4 Nov 2008 22:30:07 +0200, Diomidis Spinellis <[EMAIL PROTECTED]> wrote:
On Nov 4, 2008, at 8:02 PM, Giorgos Keramidas wrote:
Author: keramida (doc committer)
Date: Tue Nov  4 18:02:35 2008
New Revision: 184645
URL: http://svn.freebsd.org/changeset/base/184645

Log:
  Repeat vmstat header after window.rows instead of a hardcoded 20.

  Use ioctl() to get the window size in vmstat(8), and force a new
  header to be prepended to the output every time the current window
  size changes.  Change the number of lines before each header to the
  current lines of the terminal when the terminal is resized, so that
  the full terminal length can be used for output lines.

  Inspired by:  svn change 175562 (same feature for iostat)
  Reviewed by:  ru (who fixed some of my bugs too)
Thanks!  This functionality is generally useful and tricky to code in a
correct way.  Should we perhaps package it in a library function,  so
that all header-printing commands can benefit from it, without
repeating the code?

That's what I thought when I had to write almost the same code a second
time.  Once is ok, twice is almost ok, but if we find it repeated all
over the place a library function would definitely be nice :)

One of the utilities that includes a similar `repeated output' mode that
I was planning to patch next is procstat(1).  Right now procstat prints
the header once, and then forgets about it.  When the header scrolls off
the terminal it's gone for good.

The code of procstat is quite different that vmstat and iostat though,
so I'll have to think a bit about the best way to make a library
function out of the header display code and link all three of them to
the same code.


And let us not forget netstat and nfsstat (both seem to use a hard-coded terminal size).

Let me remark (without actually suggesting that we go down that road) that the old-school Unix approach to this problem might be to create a separate program that would add a specified header to its input.
_______________________________________________
svn-src-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "[EMAIL PROTECTED]"

Reply via email to