diff options
author | Andrey Nazarov <skuller@skuller.net> | 2010-10-01 19:33:23 +0400 |
---|---|---|
committer | Andrey Nazarov <skuller@skuller.net> | 2010-10-01 19:33:23 +0400 |
commit | 8ed29fd28f023bd9e128b7ac4abdb02a201f602e (patch) | |
tree | cf4b4fe22477022db25d9f2c83a221fb771018aa /src/common.c | |
parent | f56136418650c1f26dc5f3161f7af29bcd8d6123 (diff) |
Renamed COM_FormatFileSize into Com_FormatSize, added longer variant.
Diffstat (limited to 'src/common.c')
-rw-r--r-- | src/common.c | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/src/common.c b/src/common.c index 048af5b..e4990f1 100644 --- a/src/common.c +++ b/src/common.c @@ -1336,6 +1336,26 @@ 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 ) { + if( bytes >= 1000000 ) { + return Q_scnprintf( dest, size, "%2.1fM", ( float )bytes / 1000000 ); + } + if( bytes >= 1000 ) { + return Q_scnprintf( dest, size, "%3"PRIz"K", bytes / 1000 ); + } + return Q_scnprintf( dest, size, "%3"PRIz, bytes ); +} + +size_t Com_FormatSizeLong( char *dest, size_t bytes, size_t size ) { + if( bytes >= 1000000 ) { + return Q_scnprintf( dest, size, "%2.1f MB", ( float )bytes / 1000000 ); + } + if( bytes >= 1000 ) { + return Q_scnprintf( dest, size, "%3"PRIz" KB", bytes / 1000 ); + } + return Q_scnprintf( dest, size, "%3"PRIz" byte%s", bytes, bytes == 1 ? "" : "s" ); +} + /* ============================================================================== |