(trunk libT) possible fix for benc/json saving issues reported in 1.70. This is a guess from rb07's post in the forums about bencode.c, and from John Clay's comments in irc
This commit is contained in:
parent
d0ae679a2f
commit
38a032b1bf
|
@ -1544,22 +1544,17 @@ tr_bencToFile( const tr_benc * top, tr_fmt_mode mode, const char * filename )
|
|||
}
|
||||
else
|
||||
{
|
||||
struct evbuffer * buf = evbuffer_new( );
|
||||
tr_bencToBuf( top, mode, buf );
|
||||
int len;
|
||||
char * str = tr_bencToStr( top, mode, &len );
|
||||
|
||||
while( !err && EVBUFFER_LENGTH( buf ) )
|
||||
{
|
||||
if( evbuffer_write( buf, fileno(fp) ) == -1 )
|
||||
{
|
||||
err = errno;
|
||||
tr_err( _( "Couldn't save file \"%1$s\": %2$s" ),
|
||||
filename, tr_strerror( errno ) );
|
||||
}
|
||||
if( fwrite( str, 1, len, fp ) == (size_t)len )
|
||||
tr_dbg( "tr_bencToFile saved \"%s\"", filename );
|
||||
else {
|
||||
err = errno;
|
||||
tr_err( _( "Couldn't save file \"%1$s\": %2$s" ), filename, tr_strerror( errno ) );
|
||||
}
|
||||
|
||||
if( !err )
|
||||
tr_dbg( "tr_bencToFile saved \"%s\"", filename );
|
||||
evbuffer_free( buf );
|
||||
tr_free( str );
|
||||
fclose( fp );
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue