summaryrefslogtreecommitdiff
path: root/src/common.c
diff options
context:
space:
mode:
authorAndrey Nazarov <skuller@skuller.net>2010-10-01 19:33:23 +0400
committerAndrey Nazarov <skuller@skuller.net>2010-10-01 19:33:23 +0400
commit8ed29fd28f023bd9e128b7ac4abdb02a201f602e (patch)
treecf4b4fe22477022db25d9f2c83a221fb771018aa /src/common.c
parentf56136418650c1f26dc5f3161f7af29bcd8d6123 (diff)
Renamed COM_FormatFileSize into Com_FormatSize, added longer variant.
Diffstat (limited to 'src/common.c')
-rw-r--r--src/common.c20
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" );
+}
+
/*
==============================================================================