void finch_prefs_init() { purple_prefs_add_none("/finch"); purple_prefs_add_none("/finch/plugins"); purple_prefs_add_path_list("/finch/plugins/loaded", NULL); purple_prefs_add_path_list("/finch/plugins/seen", NULL); purple_prefs_add_none("/finch/conversations"); purple_prefs_add_bool("/finch/conversations/timestamps", TRUE); purple_prefs_add_bool("/finch/conversations/notify_typing", FALSE); purple_prefs_add_none("/finch/filelocations"); purple_prefs_add_path("/finch/filelocations/last_save_folder", ""); purple_prefs_add_path("/finch/filelocations/last_save_folder", ""); }
void purple_prefs_set_path_list(const char *name, GList *value) { struct purple_pref *pref = find_pref(name); if(pref) { GList *tmp; if(pref->type != PURPLE_PREF_PATH_LIST) { purple_debug_error("prefs", "purple_prefs_set_path_list: %s not a path list pref\n", name); return; } g_list_foreach(pref->value.stringlist, (GFunc)g_free, NULL); g_list_free(pref->value.stringlist); pref->value.stringlist = NULL; for(tmp = value; tmp; tmp = tmp->next) pref->value.stringlist = g_list_prepend(pref->value.stringlist, g_strdup(tmp->data)); pref->value.stringlist = g_list_reverse(pref->value.stringlist); do_callbacks(name, pref); } else { purple_prefs_add_path_list(name, value); } }