svn commit: r248647 - head/usr.bin/systat

Alexander Motin mav at FreeBSD.org
Sat Mar 23 13:11:54 UTC 2013


Author: mav
Date: Sat Mar 23 13:11:54 2013
New Revision: 248647
URL: http://svnweb.freebsd.org/changeset/base/248647

Log:
  Make `systat -vmstat` to use suffixes to display big floating point numbers
  that are not fitting into the specified field width, same as done for ints.
  In particular that allows to properly display disk tps above 100k, that are
  reachable with modern SSDs.

Modified:
  head/usr.bin/systat/vmstat.c

Modified: head/usr.bin/systat/vmstat.c
==============================================================================
--- head/usr.bin/systat/vmstat.c	Sat Mar 23 09:06:40 2013	(r248646)
+++ head/usr.bin/systat/vmstat.c	Sat Mar 23 13:11:54 2013	(r248647)
@@ -703,6 +703,10 @@ putfloat(double f, int l, int lc, int w,
 	snr = snprintf(b, sizeof(b), "%*.*f", w, d, f);
 	if (snr != w)
 		snr = snprintf(b, sizeof(b), "%*.0f", w, f);
+	if (snr != w)
+		snr = snprintf(b, sizeof(b), "%*.0fk", w - 1, f / 1000);
+	if (snr != w)
+		snr = snprintf(b, sizeof(b), "%*.0fM", w - 1, f / 1000000);
 	if (snr != w) {
 		while (--w >= 0)
 			addch('*');
@@ -731,6 +735,10 @@ putlongdouble(long double f, int l, int 
 	snr = snprintf(b, sizeof(b), "%*.*Lf", w, d, f);
 	if (snr != w)
 		snr = snprintf(b, sizeof(b), "%*.0Lf", w, f);
+	if (snr != w)
+		snr = snprintf(b, sizeof(b), "%*.0Lfk", w - 1, f / 1000);
+	if (snr != w)
+		snr = snprintf(b, sizeof(b), "%*.0LfM", w - 1, f / 1000000);
 	if (snr != w) {
 		while (--w >= 0)
 			addch('*');


More information about the svn-src-all mailing list