diff options
author | 2006-12-14 20:01:31 +1000 | |
---|---|---|
committer | 2006-12-14 20:01:31 +1000 | |
commit | 52b74f9f343f6162781e0af8cf935ac448149dc5 (patch) | |
tree | 87dadc3430071b0851d55c46534a79e6172183a6 /common.c | |
parent | b932a9a084135ed0a5db0a4d69301ed6c2231281 (diff) |
Make sure debug() never alters errno, so that it can safely be called between an error and calling wperror()
darcs-hash:20061214100131-ac50b-b1c2e4819567fc35858233c265a26b934620fc6d.gz
Diffstat (limited to 'common.c')
-rw-r--r-- | common.c | 9 |
1 files changed, 7 insertions, 2 deletions
@@ -548,14 +548,17 @@ int read_blocked(int fd, void *buf, size_t count) void debug( int level, const wchar_t *msg, ... ) { va_list va; + string_buffer_t sb; string_buffer_t sb2; + + int errno_old = errno; - CHECK( msg, ); - if( level > debug_level ) return; + CHECK( msg, ); + sb_init( &sb ); sb_init( &sb2 ); @@ -570,6 +573,8 @@ void debug( int level, const wchar_t *msg, ... ) sb_destroy( &sb ); sb_destroy( &sb2 ); + + errno = errno_old; } void write_screen( const wchar_t *msg, string_buffer_t *buff ) |