summaryrefslogtreecommitdiff
path: root/src/common.c
diff options
context:
space:
mode:
authorAndrey Nazarov <skuller@skuller.net>2010-10-05 16:16:43 +0400
committerAndrey Nazarov <skuller@skuller.net>2010-10-05 16:16:43 +0400
commit7574d355761e926ddd7b1e69afa3c282bae93226 (patch)
tree467fe18196fea5f97a952dac463cbd16dc9fd68b /src/common.c
parent95168893793ec6d0310c284dda087078e5456e27 (diff)
Clean up Com_FormatSize(Long).
Diffstat (limited to 'src/common.c')
-rw-r--r--src/common.c29
1 files changed, 21 insertions, 8 deletions
diff --git a/src/common.c b/src/common.c
index e4990f1..71d7b5f 100644
--- a/src/common.c
+++ b/src/common.c
@@ -1336,24 +1336,37 @@ size_t Com_TimeDiffLong( char *buffer, size_t size, time_t *p, time_t now ) {
return Com_FormatTimeLong( buffer, size, diff );
}
-size_t Com_FormatSize( char *dest, size_t bytes, size_t size ) {
+size_t Com_FormatSize( char *dest, size_t destsize, off_t bytes ) {
+ if( bytes >= 10000000 ) {
+ return Q_scnprintf( dest, destsize, "%dM", (int)(bytes / 1000000) );
+ }
if( bytes >= 1000000 ) {
- return Q_scnprintf( dest, size, "%2.1fM", ( float )bytes / 1000000 );
+ return Q_scnprintf( dest, destsize, "%.1fM", (float)bytes / 1000000 );
}
if( bytes >= 1000 ) {
- return Q_scnprintf( dest, size, "%3"PRIz"K", bytes / 1000 );
+ return Q_scnprintf( dest, destsize, "%dK", (int)(bytes / 1000) );
+ }
+ if( bytes >= 0 ) {
+ return Q_scnprintf( dest, destsize, "%d", (int)bytes );
}
- return Q_scnprintf( dest, size, "%3"PRIz, bytes );
+ return Q_scnprintf( dest, destsize, "???" );
}
-size_t Com_FormatSizeLong( char *dest, size_t bytes, size_t size ) {
+size_t Com_FormatSizeLong( char *dest, size_t destsize, off_t bytes ) {
+ if( bytes >= 10000000 ) {
+ return Q_scnprintf( dest, destsize, "%d MB", (int)(bytes / 1000000) );
+ }
if( bytes >= 1000000 ) {
- return Q_scnprintf( dest, size, "%2.1f MB", ( float )bytes / 1000000 );
+ return Q_scnprintf( dest, destsize, "%.1f MB", (float)bytes / 1000000 );
}
if( bytes >= 1000 ) {
- return Q_scnprintf( dest, size, "%3"PRIz" KB", bytes / 1000 );
+ return Q_scnprintf( dest, destsize, "%d kB", (int)(bytes / 1000) );
+ }
+ if( bytes >= 0 ) {
+ return Q_scnprintf( dest, destsize, "%d byte%s",
+ (int)bytes, bytes == 1 ? "" : "s" );
}
- return Q_scnprintf( dest, size, "%3"PRIz" byte%s", bytes, bytes == 1 ? "" : "s" );
+ return Q_scnprintf( dest, destsize, "unknown size" );
}
/*