Changeset 4026
Legend:
- Unmodified
- Added
- Removed
-
trunk/gtk/conf.c
r3499 r4026 39 39 40 40 #include <libtransmission/transmission.h> 41 #include <libtransmission/bencode.h> 41 42 42 43 #include "conf.h" … … 250 251 g_free( filename ); 251 252 } 253 254 /*** 255 **** 256 ***/ 257 258 static char* 259 getCompat08PrefsFilename( void ) 260 { 261 assert( gl_confdir != NULL ); 262 return g_build_filename( gl_confdir, "prefs", NULL ); 263 } 264 265 static void 266 translate_08_to_09( const char* oldfile, const char* newfile ) 267 { 268 static struct pref_entry { 269 const char* oldkey; 270 const char* newkey; 271 } pref_table[] = { 272 { "add-behavior-ipc", "add-behavior-ipc"}, 273 { "add-behavior-standard", "add-behavior-standard"}, 274 { "download-directory", "default-download-directory"}, 275 { "download-limit", "download-limit"}, 276 { "use-download-limit", "download-limit-enabled" }, 277 { "listening-port", "listening-port"}, 278 { "use-nat-traversal", "nat-traversal-enabled"}, 279 { "use-peer-exchange", "pex-enabled"}, 280 { "ask-quit", "prompt-before-exit"}, 281 { "ask-download-directory", "prompt-for-download-directory"}, 282 { "use-tray-icon", "system-tray-icon-enabled"}, 283 { "upload-limit", "upload-limit"}, 284 { "use-upload-limit", "upload-limit-enabled"} 285 }; 286 287 GString * out = g_string_new( NULL ); 288 gchar * contents = NULL; 289 gsize contents_len = 0; 290 benc_val_t top; 291 292 memset( &top, 0, sizeof(benc_val_t) ); 293 294 if( g_file_get_contents( oldfile, &contents, &contents_len, NULL ) 295 && !tr_bencLoad( contents, contents_len, &top, NULL ) 296 && top.type==TYPE_DICT ) 297 { 298 unsigned int i; 299 g_string_append( out, "\n[general]\n" ); 300 for ( i=0; i<G_N_ELEMENTS(pref_table); ++i ) { 301 const benc_val_t * val = tr_bencDictFind( &top, pref_table[i].oldkey ); 302 if( val != NULL ) { 303 const char * valstr = val->val.s.s; 304 if( !strcmp( valstr, "yes" ) ) valstr = "true"; 305 if( !strcmp( valstr, "no" ) ) valstr = "false"; 306 g_string_append_printf( out, "%s=%s\n", pref_table[i].newkey, valstr ); 307 } 308 } 309 } 310 311 g_file_set_contents( newfile, out->str, out->len, NULL ); 312 g_string_free( out, TRUE ); 313 g_free( contents ); 314 } 315 316 void 317 cf_check_older_configs( void ) 318 { 319 char * cfn = getPrefsFilename( ); 320 char * cfn08 = getCompat08PrefsFilename( ); 321 322 if( !g_file_test( cfn, G_FILE_TEST_IS_REGULAR ) 323 && g_file_test( cfn08, G_FILE_TEST_IS_REGULAR ) ) 324 translate_08_to_09( cfn08, cfn ); 325 326 g_free( cfn08 ); 327 g_free( cfn ); 328 } -
trunk/gtk/conf.h
r3381 r4026 56 56 char * 57 57 cf_sockname(void); 58 void 59 cf_check_older_configs(void); 58 60 59 61 #endif /* TG_CONF_H */ -
trunk/gtk/tr_prefs.c
r3549 r4026 27 27 tr_prefs_init_global( void ) 28 28 { 29 cf_check_older_configs( ); 30 29 31 pref_flag_set_default ( PREF_KEY_DL_LIMIT_ENABLED, FALSE ); 30 32 pref_int_set_default ( PREF_KEY_DL_LIMIT, 100 );
Note: See TracChangeset
for help on using the changeset viewer.