Do automatic line breaking in debug

darcs-hash:20051012103421-ac50b-d3cba7cb40287fd97cccc246a19dcb2273bf8b82.gz
This commit is contained in:
axel
2005-10-12 20:34:21 +10:00
parent b90e670d6f
commit 4636b783a0
3 changed files with 79 additions and 6 deletions

13
util.c
View File

@@ -872,6 +872,13 @@ void sb_append2( string_buffer_t *b, ... )
int sb_printf( string_buffer_t *buffer, const wchar_t *format, ... )
{
va_list va;
va_start( va, format );
sb_vprintf( buffer, format, va );
va_end( va );
}
int sb_vprintf( string_buffer_t *buffer, const wchar_t *format, va_list va_orig )
{
int res;
if( !buffer->length )
@@ -885,13 +892,16 @@ int sb_printf( string_buffer_t *buffer, const wchar_t *format, ... )
while( 1 )
{
va_list va;
va_copy( va, va_orig );
va_start( va, format );
res = vswprintf( (wchar_t *)((char *)buffer->buff+buffer->used),
(buffer->length-buffer->used)/sizeof(wchar_t),
format,
va );
va_end( va );
if( res >= 0 )
{
buffer->used+= res*sizeof(wchar_t);
@@ -919,7 +929,6 @@ int sb_printf( string_buffer_t *buffer, const wchar_t *format, ... )
die_mem();
buffer->length *= 2;
}
va_end( va );
return res;
}