From df49b43613693fd8b710972c680aac0c476825c9 Mon Sep 17 00:00:00 2001
From: Rob Swindell <rob@synchro.net>
Date: Sun, 30 May 2021 02:38:10 -0700
Subject: [PATCH] Beautify the file list files (e.g. NEWFILES.TXT) a bit

Use the file size estimates rather than actual byte values (to keep lines < 80 chars).
Use file name file summary/description is blank or doesn't exist.
---
 src/sbbs3/listfile.cpp | 11 +++++++++--
 1 file changed, 9 insertions(+), 2 deletions(-)

diff --git a/src/sbbs3/listfile.cpp b/src/sbbs3/listfile.cpp
index bde0a0d830..9e42737bc0 100644
--- a/src/sbbs3/listfile.cpp
+++ b/src/sbbs3/listfile.cpp
@@ -1073,8 +1073,15 @@ int sbbs_t::listfileinfo(uint dirnum, const char *filespec, long mode)
 void sbbs_t::listfiletofile(file_t* f, FILE* fp)
 {
 	char fname[13];	/* This is one of the only 8.3 filename formats left! (used for display purposes only) */
-	fprintf(fp, "%-*s %10lu %s\r\n", (int)sizeof(fname)-1, format_filename(f->name, fname, sizeof(fname)-1, /* pad: */TRUE)
-		,(ulong)getfilesize(&cfg, f), f->desc);
+	char bytes[32];
+	unsigned units = 1;
+	off_t size = getfilesize(&cfg, f);
+	do {
+		byte_estimate_to_str(size, bytes, sizeof(bytes), units, /* precision: */1);
+		units *= 1024;
+	} while(strlen(bytes) > 6 && units < 1024 * 1024 * 1024);
+	fprintf(fp, "%-*s %7s %s\r\n", (int)sizeof(fname)-1, format_filename(f->name, fname, sizeof(fname)-1, /* pad: */TRUE)
+		,bytes, (f->desc == NULL || *f->desc == '\0') ? f->name : f->desc);
 }
 
 int extdesclines(char *str)
-- 
GitLab