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
This commit is contained in:
Xin LI
2020-02-10 04:16:41 +00:00
parent 1709a13c7c
commit 9e4029ff49
2 changed files with 30 additions and 3 deletions
+2 -1
View File
@@ -9,6 +9,7 @@ PROG= fsck_msdosfs
MAN= fsck_msdosfs.8 MAN= fsck_msdosfs.8
SRCS= main.c check.c boot.c fat.c dir.c fsutil.c 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> .include <bsd.prog.mk>
+28 -2
View File
@@ -33,6 +33,9 @@ static const char rcsid[] =
"$FreeBSD$"; "$FreeBSD$";
#endif /* not lint */ #endif /* not lint */
#ifdef HAVE_LIBUTIL_H
#include <libutil.h>
#endif
#include <stdlib.h> #include <stdlib.h>
#include <string.h> #include <string.h>
#include <stdio.h> #include <stdio.h>
@@ -126,15 +129,38 @@ checkfilesys(const char *fname)
mod |= FSERROR; 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) 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.NumFiles,
boot.NumFree * boot.ClusterSize / 1024, boot.NumFree, boot.NumFree * boot.ClusterSize / 1024, boot.NumFree,
boot.NumBad * boot.ClusterSize / 1024, boot.NumBad); boot.NumBad * boot.ClusterSize / 1024, boot.NumBad);
else else
pwarn("%d files, %d free (%d clusters)\n", pwarn("%d files, %d KiB free (%d clusters)\n",
boot.NumFiles, boot.NumFiles,
boot.NumFree * boot.ClusterSize / 1024, boot.NumFree); boot.NumFree * boot.ClusterSize / 1024, boot.NumFree);
#endif
if (mod && (mod & FSERROR) == 0) { if (mod && (mod & FSERROR) == 0) {
if (mod & FSDIRTY) { if (mod & FSDIRTY) {