svn commit: r357716 - head/sbin/fsck_msdosfs

Xin LI delphij at FreeBSD.org
Mon Feb 10 04:16:42 UTC 2020


Author: delphij
Date: Mon Feb 10 04:16:41 2020
New Revision: 357716
URL: https://svnweb.freebsd.org/changeset/base/357716

Log:
  Use humanize_number to format available and bad space sizes.
  
  Reviewed by:		mckusick (earlier version)
  MFC after:		2 weeks
  Differential Revision:	https://reviews.freebsd.org/D23050

Modified:
  head/sbin/fsck_msdosfs/Makefile
  head/sbin/fsck_msdosfs/check.c

Modified: head/sbin/fsck_msdosfs/Makefile
==============================================================================
--- head/sbin/fsck_msdosfs/Makefile	Mon Feb 10 02:44:29 2020	(r357715)
+++ head/sbin/fsck_msdosfs/Makefile	Mon Feb 10 04:16:41 2020	(r357716)
@@ -9,6 +9,7 @@ PROG=	fsck_msdosfs
 MAN=	fsck_msdosfs.8
 SRCS=	main.c check.c boot.c fat.c dir.c fsutil.c
 
-CFLAGS+= -I${FSCK}
+CFLAGS+= -I${FSCK} -DHAVE_LIBUTIL_H
+LIBADD=	util
 
 .include <bsd.prog.mk>

Modified: head/sbin/fsck_msdosfs/check.c
==============================================================================
--- head/sbin/fsck_msdosfs/check.c	Mon Feb 10 02:44:29 2020	(r357715)
+++ head/sbin/fsck_msdosfs/check.c	Mon Feb 10 04:16:41 2020	(r357716)
@@ -33,6 +33,9 @@ static const char rcsid[] =
   "$FreeBSD$";
 #endif /* not lint */
 
+#ifdef HAVE_LIBUTIL_H
+#include <libutil.h>
+#endif
 #include <stdlib.h>
 #include <string.h>
 #include <stdio.h>
@@ -126,15 +129,38 @@ checkfilesys(const char *fname)
 			mod |= FSERROR;
 	}
 
+#ifdef HAVE_LIBUTIL_H
+	char freestr[7], badstr[7];
+
+	int64_t freebytes = boot.NumFree * boot.ClusterSize;
+	humanize_number(freestr, sizeof(freestr), freebytes, "",
+	    HN_AUTOSCALE, HN_DECIMAL | HN_IEC_PREFIXES);
+	if (boot.NumBad) {
+		int64_t badbytes = boot.NumBad * boot.ClusterSize;
+
+		humanize_number(badstr, sizeof(badstr), badbytes, "",
+		    HN_AUTOSCALE, HN_B | HN_DECIMAL | HN_IEC_PREFIXES);
+
+		pwarn("%d files, %sB free (%d clusters), %sB bad (%d clusters)\n",
+		      boot.NumFiles,
+		      freestr, boot.NumFree,
+		      badstr, boot.NumBad);
+	} else {
+		pwarn("%d files, %sB free (%d clusters)\n",
+		      boot.NumFiles,
+		      freestr, boot.NumFree);
+	}
+#else
 	if (boot.NumBad)
-		pwarn("%d files, %d free (%d clusters), %d bad (%d clusters)\n",
+		pwarn("%d files, %d KiB free (%d clusters), %d KiB bad (%d clusters)\n",
 		      boot.NumFiles,
 		      boot.NumFree * boot.ClusterSize / 1024, boot.NumFree,
 		      boot.NumBad * boot.ClusterSize / 1024, boot.NumBad);
 	else
-		pwarn("%d files, %d free (%d clusters)\n",
+		pwarn("%d files, %d KiB free (%d clusters)\n",
 		      boot.NumFiles,
 		      boot.NumFree * boot.ClusterSize / 1024, boot.NumFree);
+#endif
 
 	if (mod && (mod & FSERROR) == 0) {
 		if (mod & FSDIRTY) {


More information about the svn-src-all mailing list