diff options
author | Andrey Nazarov <skuller@skuller.net> | 2010-10-05 16:16:43 +0400 |
---|---|---|
committer | Andrey Nazarov <skuller@skuller.net> | 2010-10-05 16:16:43 +0400 |
commit | 7574d355761e926ddd7b1e69afa3c282bae93226 (patch) | |
tree | 467fe18196fea5f97a952dac463cbd16dc9fd68b /src/common.c | |
parent | 95168893793ec6d0310c284dda087078e5456e27 (diff) |
Clean up Com_FormatSize(Long).
Diffstat (limited to 'src/common.c')
-rw-r--r-- | src/common.c | 29 |
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" ); } /* |