diff options
author | Andrey Nazarov <skuller@skuller.net> | 2009-04-22 23:40:03 +0000 |
---|---|---|
committer | Andrey Nazarov <skuller@skuller.net> | 2009-04-22 23:40:03 +0000 |
commit | 275f310df767a57b8cf409acdcbd14c63cb90df9 (patch) | |
tree | 3b59e2751c32b2f15fcfabb1af8b03e702cd5230 /source/q_shared.c | |
parent | 385ccd0e9a518933019a8c6f1fecad2ae660b766 (diff) |
Don't execute ‘cl_beginmapcmd’, ‘cl_changemapcmd’ and ‘cl_disconnectcmd’ triggers when playing back demos.
Fixed automatic restart of sound subsystem after cvar change not working randomly.
Don't crash in CL_Disconnect() on dedicated server exit.
Added ‘sv_redirect_address’ variable.
Fixed ‘\r’ char not stripped properly from filename when processing ‘\include’ directive in AC config files.
Made AC config parser compliant with reference format as defined by R1Q2 implementation.
Updated documentation.
Diffstat (limited to 'source/q_shared.c')
-rw-r--r-- | source/q_shared.c | 71 |
1 files changed, 11 insertions, 60 deletions
diff --git a/source/q_shared.c b/source/q_shared.c index 32a1707..67772ef 100644 --- a/source/q_shared.c +++ b/source/q_shared.c @@ -1038,6 +1038,16 @@ size_t Q_UnescapeString( char *out, const char *in, size_t bufsize, escape_t fla } #endif +size_t Q_FormatFileSize( char *dest, size_t bytes, size_t size ) { + if( bytes >= 1000000 ) { + return Q_snprintf( dest, size, "%2.1fM", ( float )bytes / 1000000 ); + } + if( bytes >= 1000 ) { + return Q_snprintf( dest, size, "%3"PRIz"K", bytes / 1000 ); + } + return Q_snprintf( dest, size, "%3"PRIz, bytes ); +} + /* ============ va @@ -1061,68 +1071,9 @@ char *va( const char *format, ... ) { return buffers[index]; } - static char com_token[4][MAX_TOKEN_CHARS]; static int com_tokidx; -static char *COM_GetToken( void ) { - return com_token[com_tokidx++ & 3]; -} - -/* -============== -COM_SimpleParse - -Parse a token out of a string. -============== -*/ -char *COM_SimpleParse( const char **data_p, int *length ) { - int c; - int len; - const char *data; - char *s = COM_GetToken(); - - data = *data_p; - len = 0; - s[0] = 0; - if( length ) { - *length = 0; - } - - if( !data ) { - *data_p = NULL; - return s; - } - -// skip whitespace - while( ( c = *data ) <= ' ' ) { - if( c == 0 ) { - *data_p = NULL; - return s; - } - data++; - } - -// parse a regular word - do { - if( len < MAX_TOKEN_CHARS - 1 ) { - s[len++] = c; - } - data++; - c = *data; - } while( c > 32 ); - - s[len] = 0; - - if( length ) { - *length = len; - } - - *data_p = data; - return s; -} - - /* ============== COM_Parse @@ -1135,7 +1086,7 @@ char *COM_Parse( const char **data_p ) { int c; int len; const char *data; - char *s = COM_GetToken(); + char *s = com_token[com_tokidx++ & 3]; data = *data_p; len = 0; |