From 0471e6d765dc5d2286acc3744ad56238aafa77b2 Mon Sep 17 00:00:00 2001 From: Charles Kerr Date: Fri, 12 Dec 2008 02:26:33 +0000 Subject: [PATCH] (trunk libT) make tr_bencDictMerge() support limited nested merges --- libtransmission/bencode.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/libtransmission/bencode.c b/libtransmission/bencode.c index 1e546d30c..5f1692d67 100644 --- a/libtransmission/bencode.c +++ b/libtransmission/bencode.c @@ -1355,6 +1355,7 @@ tr_bencMergeDicts( tr_benc * target, const tr_benc * source ) { int64_t i64; const char * str; + tr_benc * t; if( tr_bencGetInt( val, &i64 ) ) { @@ -1366,9 +1367,14 @@ tr_bencMergeDicts( tr_benc * target, const tr_benc * source ) tr_bencDictRemove( target, key ); tr_bencDictAddStr( target, key, str ); } + else if( tr_bencIsDict( val ) && tr_bencDictFindDict( target, key, &t ) ) + { + tr_bencMergeDicts( t, val ); + } else { - tr_err( "tr_bencMergeDicts skipping \"%s\"", key ); + + tr_dbg( "tr_bencMergeDicts skipping \"%s\"", key ); } } }