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) {
_______________________________________________
svn-src-all@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to