Mercurial > pidgin.yaz
diff libpurple/prefs.c @ 17977:f71bd7e56389
propagate from branch 'im.pidgin.pidgin' (head b438ea0760758dc547f95d62892455f50ee4c4f1)
to branch 'im.pidgin.soc.2007.remotelogging' (head 7e683fd40634aa3eb22dcf25cbd25c8959d76662)
author | Michael Shkutkov <mshkutkov@soc.pidgin.im> |
---|---|
date | Sat, 09 Jun 2007 12:01:29 +0000 |
parents | 8d94cf688009 |
children | f2d8658b3a86 |
line wrap: on
line diff
--- a/libpurple/prefs.c Sun Apr 22 11:11:49 2007 +0000 +++ b/libpurple/prefs.c Sat Jun 09 12:01:29 2007 +0000 @@ -92,7 +92,16 @@ if (name[1] == '\0') return &prefs; else - return g_hash_table_lookup(prefs_hash, name); + { + /* When we're initializing, the debug system is + * initialized before the prefs system, but debug + * calls will end up calling prefs functions, so we + * need to deal cleanly here. */ + if (prefs_hash) + return g_hash_table_lookup(prefs_hash, name); + else + return NULL; + } } @@ -429,14 +438,14 @@ /* I introduced a bug in 2.0.0beta2. This fixes the broken * scores on upgrade. This can be removed sometime shortly * after 2.0.0 final is released. -- rlaager */ - if (purple_prefs_get_int("/core/status/scores/offline") == -500 && - purple_prefs_get_int("/core/status/scores/available") == 100 && - purple_prefs_get_int("/core/status/scores/invisible") == -50 && - purple_prefs_get_int("/core/status/scores/away") == -100 && - purple_prefs_get_int("/core/status/scores/extended_away") == -200 && - purple_prefs_get_int("/core/status/scores/idle") == -400) + if (purple_prefs_get_int("/purple/status/scores/offline") == -500 && + purple_prefs_get_int("/purple/status/scores/available") == 100 && + purple_prefs_get_int("/purple/status/scores/invisible") == -50 && + purple_prefs_get_int("/purple/status/scores/away") == -100 && + purple_prefs_get_int("/purple/status/scores/extended_away") == -200 && + purple_prefs_get_int("/purple/status/scores/idle") == -400) { - purple_prefs_set_int("/core/status/scores/idle", -10); + purple_prefs_set_int("/purple/status/scores/idle", -10); } return TRUE; @@ -928,7 +937,7 @@ if(pref->type != PURPLE_PREF_PATH_LIST) { purple_debug_error("prefs", - "purple_prefs_set_path_list: %s not a string list pref\n", + "purple_prefs_set_path_list: %s not a path list pref\n", name); return; } @@ -1093,13 +1102,14 @@ static void purple_prefs_rename_node(struct purple_pref *oldpref, struct purple_pref *newpref) { - struct purple_pref *child; + struct purple_pref *child, *next; char *oldname, *newname; /* if we're a parent, rename the kids first */ - for(child = oldpref->first_child; child != NULL; child = child->sibling) + for(child = oldpref->first_child; child != NULL; child = next) { struct purple_pref *newchild; + next = child->sibling; for(newchild = newpref->first_child; newchild != NULL; newchild = newchild->sibling) { if(!strcmp(child->name, newchild->name)) @@ -1111,7 +1121,7 @@ if(newchild == NULL) { /* no rename happened, we weren't able to find the new pref */ char *tmpname = pref_full_name(child); - purple_debug_error("prefs", "Unable to find rename pref for %s", tmpname); + purple_debug_error("prefs", "Unable to find rename pref for %s\n", tmpname); g_free(tmpname); } } @@ -1318,39 +1328,42 @@ void purple_prefs_update_old() { + purple_prefs_rename("/core", "/purple"); + /* Remove some no-longer-used prefs */ - purple_prefs_remove("/core/away/auto_response/enabled"); - purple_prefs_remove("/core/away/auto_response/idle_only"); - purple_prefs_remove("/core/away/auto_response/in_active_conv"); - purple_prefs_remove("/core/away/auto_response/sec_before_resend"); - purple_prefs_remove("/core/away/auto_response"); - purple_prefs_remove("/core/away/default_message"); - purple_prefs_remove("/core/buddies/use_server_alias"); - purple_prefs_remove("/core/conversations/away_back_on_send"); - purple_prefs_remove("/core/conversations/send_urls_as_links"); - purple_prefs_remove("/core/conversations/im/show_login"); - purple_prefs_remove("/core/conversations/chat/show_join"); - purple_prefs_remove("/core/conversations/chat/show_leave"); - purple_prefs_remove("/core/conversations/combine_chat_im"); - purple_prefs_remove("/core/conversations/use_alias_for_title"); - purple_prefs_remove("/core/logging/log_signon_signoff"); - purple_prefs_remove("/core/logging/log_idle_state"); - purple_prefs_remove("/core/logging/log_away_state"); - purple_prefs_remove("/core/logging/log_own_states"); - purple_prefs_remove("/core/status/scores/hidden"); + purple_prefs_remove("/purple/away/auto_response/enabled"); + purple_prefs_remove("/purple/away/auto_response/idle_only"); + purple_prefs_remove("/purple/away/auto_response/in_active_conv"); + purple_prefs_remove("/purple/away/auto_response/sec_before_resend"); + purple_prefs_remove("/purple/away/auto_response"); + purple_prefs_remove("/purple/away/default_message"); + purple_prefs_remove("/purple/buddies/use_server_alias"); + purple_prefs_remove("/purple/conversations/away_back_on_send"); + purple_prefs_remove("/purple/conversations/send_urls_as_links"); + purple_prefs_remove("/purple/conversations/im/show_login"); + purple_prefs_remove("/purple/conversations/chat/show_join"); + purple_prefs_remove("/purple/conversations/chat/show_leave"); + purple_prefs_remove("/purple/conversations/combine_chat_im"); + purple_prefs_remove("/purple/conversations/use_alias_for_title"); + purple_prefs_remove("/purple/logging/log_signon_signoff"); + purple_prefs_remove("/purple/logging/log_idle_state"); + purple_prefs_remove("/purple/logging/log_away_state"); + purple_prefs_remove("/purple/logging/log_own_states"); + purple_prefs_remove("/purple/status/scores/hidden"); purple_prefs_remove("/plugins/core/autorecon/hide_connected_error"); purple_prefs_remove("/plugins/core/autorecon/hide_connecting_error"); purple_prefs_remove("/plugins/core/autorecon/hide_reconnecting_dialog"); purple_prefs_remove("/plugins/core/autorecon/restore_state"); purple_prefs_remove("/plugins/core/autorecon"); + purple_prefs_remove("/purple/debug/timestamps"); /* Convert old sounds while_away pref to new 3-way pref. */ - if (purple_prefs_exists("/core/sound/while_away") && - purple_prefs_get_bool("/core/sound/while_away")) + if (purple_prefs_exists("/purple/sound/while_away") && + purple_prefs_get_bool("/purple/sound/while_away")) { - purple_prefs_set_int("/core/sound/while_status", 3); + purple_prefs_set_int("/purple/sound/while_status", 3); } - purple_prefs_remove("/core/sound/while_away"); + purple_prefs_remove("/purple/sound/while_away"); } void * @@ -1370,52 +1383,52 @@ purple_prefs_connect_callback(handle, "/", prefs_save_cb, NULL); - purple_prefs_add_none("/core"); + purple_prefs_add_none("/purple"); purple_prefs_add_none("/plugins"); purple_prefs_add_none("/plugins/core"); purple_prefs_add_none("/plugins/lopl"); purple_prefs_add_none("/plugins/prpl"); /* Away */ - purple_prefs_add_none("/core/away"); - purple_prefs_add_string("/core/away/idle_reporting", "system"); - purple_prefs_add_bool("/core/away/away_when_idle", TRUE); - purple_prefs_add_int("/core/away/mins_before_away", 5); + purple_prefs_add_none("/purple/away"); + purple_prefs_add_string("/purple/away/idle_reporting", "system"); + purple_prefs_add_bool("/purple/away/away_when_idle", TRUE); + purple_prefs_add_int("/purple/away/mins_before_away", 5); /* Away -> Auto-Reply */ - if (!purple_prefs_exists("/core/away/auto_response/enabled") || - !purple_prefs_exists("/core/away/auto_response/idle_only")) + if (!purple_prefs_exists("/purple/away/auto_response/enabled") || + !purple_prefs_exists("/purple/away/auto_response/idle_only")) { - purple_prefs_add_string("/core/away/auto_reply", "awayidle"); + purple_prefs_add_string("/purple/away/auto_reply", "awayidle"); } else { - if (!purple_prefs_get_bool("/core/away/auto_response/enabled")) + if (!purple_prefs_get_bool("/purple/away/auto_response/enabled")) { - purple_prefs_add_string("/core/away/auto_reply", "never"); + purple_prefs_add_string("/purple/away/auto_reply", "never"); } else { - if (purple_prefs_get_bool("/core/away/auto_response/idle_only")) + if (purple_prefs_get_bool("/purple/away/auto_response/idle_only")) { - purple_prefs_add_string("/core/away/auto_reply", "awayidle"); + purple_prefs_add_string("/purple/away/auto_reply", "awayidle"); } else { - purple_prefs_add_string("/core/away/auto_reply", "away"); + purple_prefs_add_string("/purple/away/auto_reply", "away"); } } } /* Buddies */ - purple_prefs_add_none("/core/buddies"); + purple_prefs_add_none("/purple/buddies"); /* Contact Priority Settings */ - purple_prefs_add_none("/core/contact"); - purple_prefs_add_bool("/core/contact/last_match", FALSE); - purple_prefs_remove("/core/contact/offline_score"); - purple_prefs_remove("/core/contact/away_score"); - purple_prefs_remove("/core/contact/idle_score"); + purple_prefs_add_none("/purple/contact"); + purple_prefs_add_bool("/purple/contact/last_match", FALSE); + purple_prefs_remove("/purple/contact/offline_score"); + purple_prefs_remove("/purple/contact/away_score"); + purple_prefs_remove("/purple/contact/idle_score"); } void