diff --git a/libtransmission/bencode.c b/libtransmission/bencode.c index 7d1de7a9e..1368f887e 100644 --- a/libtransmission/bencode.c +++ b/libtransmission/bencode.c @@ -1331,6 +1331,17 @@ tr_bencSaveAsJSON( const tr_benc * top, struct evbuffer * out ) return (char*) EVBUFFER_DATA( out ); } +char* +tr_bencToJSON( const tr_benc * top ) +{ + char * ret; + struct evbuffer * buf = evbuffer_new( ); + tr_bencSaveAsJSON( top, buf ); + ret = tr_strndup( EVBUFFER_DATA( buf ), EVBUFFER_LENGTH( buf ) ); + evbuffer_free( buf ); + return ret; +} + /*** **** ***/ diff --git a/libtransmission/bencode.h b/libtransmission/bencode.h index 2781085b3..8919e0870 100644 --- a/libtransmission/bencode.h +++ b/libtransmission/bencode.h @@ -80,6 +80,8 @@ char* tr_bencSave( const tr_benc * val, int * len ); char* tr_bencSaveAsJSON( const tr_benc * top, struct evbuffer * out ); +char* tr_bencToJSON( const tr_benc * top ); + int tr_bencSaveFile( const char * filename, const tr_benc * ); int tr_bencSaveJSONFile( const char * filename, const tr_benc * ); diff --git a/libtransmission/tr-getopt.c b/libtransmission/tr-getopt.c index ce8a03205..cad47d9c7 100644 --- a/libtransmission/tr-getopt.c +++ b/libtransmission/tr-getopt.c @@ -216,4 +216,3 @@ tr_getopt( const char * usage, *setme_optarg = argv[tr_optind++]; return o->val; } - diff --git a/libtransmission/tr-getopt.h b/libtransmission/tr-getopt.h index 370a39491..3c70a0c48 100644 --- a/libtransmission/tr-getopt.h +++ b/libtransmission/tr-getopt.h @@ -25,6 +25,10 @@ #ifndef TR_GETOPT_H #define TR_GETOPT_H +#ifdef __cplusplus +extern "C" { +#endif + extern int tr_optind; typedef struct tr_option @@ -65,4 +69,8 @@ void tr_getopt_usage( const char * appName, const char * description, const tr_option * opts ); +#ifdef __cplusplus +} /* extern "C" */ +#endif + #endif /* TR_GETOPT_H */