Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 30 Jun 2011 09:20:27 +0000 (UTC)
From:      Sergey Kandaurov <pluknet@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r223690 - head/usr.bin/quota
Message-ID:  <201106300920.p5U9KRP6035897@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: pluknet
Date: Thu Jun 30 09:20:26 2011
New Revision: 223690
URL: http://svn.freebsd.org/changeset/base/223690

Log:
  Fix quota(1) output.
  
  - Fix calculation of 1024-byte sized blocks from disk blocks shown when -h
  option isn't specified. It was broken with quota64 integration.
  - In prthumanval(): limit the size of a buffer passed to humanize_number()
  to a width of 5 bytes but allow a shorter length if requested. That's what
  users expect.
  
  PR:		bin/150151
  Reviewed by:	Kirk McKusick

Modified:
  head/usr.bin/quota/quota.c

Modified: head/usr.bin/quota/quota.c
==============================================================================
--- head/usr.bin/quota/quota.c	Thu Jun 30 05:28:10 2011	(r223689)
+++ head/usr.bin/quota/quota.c	Thu Jun 30 09:20:26 2011	(r223690)
@@ -264,8 +264,11 @@ prthumanval(int len, u_int64_t bytes)
 {
 	char buf[len + 1];
 
-	humanize_number(buf, sizeof(buf), bytes, "", HN_AUTOSCALE,
-	    HN_B | HN_NOSPACE | HN_DECIMAL);
+	/*
+	 * Limit the width to 5 bytes as that is what users expect.
+	 */
+	humanize_number(buf, sizeof(buf) < 5 ? sizeof(buf) : 5, bytes, "",
+	    HN_AUTOSCALE, HN_B | HN_NOSPACE | HN_DECIMAL);
 
 	(void)printf(" %*s", len, buf);
 }
@@ -352,10 +355,13 @@ showquotas(int type, u_long id, const ch
 			prthumanval(7, dbtob(qup->dqblk.dqb_bhardlimit));
 		} else {
 			printf(" %7ju%c %7ju %7ju",
-			    dbtob(1024) * (uintmax_t)qup->dqblk.dqb_curblocks,
+			    (uintmax_t)dbtob(qup->dqblk.dqb_curblocks)
+				/ 1024,
 			    (msgb == NULL) ? ' ' : '*',
-			    dbtob(1024) * (uintmax_t)qup->dqblk.dqb_bsoftlimit,
-			    dbtob(1024) * (uintmax_t)qup->dqblk.dqb_bhardlimit);
+			    (uintmax_t)dbtob(qup->dqblk.dqb_bsoftlimit)
+				/ 1024,
+			    (uintmax_t)dbtob(qup->dqblk.dqb_bhardlimit)
+				/ 1024);
 		}
 		if (msgb != NULL)
 			bgrace = timeprt(qup->dqblk.dqb_btime);



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201106300920.p5U9KRP6035897>