Mercurial > pidgin
diff src/blist.c @ 10337:682201b69107
[gaim-migrate @ 11545]
* Preliminary reading of status.xml using xmlnode.[h|c]
* I made a few changes the blist.xml readering code that I think makes
it cleaner
* "gaim_statuses_find_saved" makes more sense to me than
"gaim_statuses_find_stored"
* struct GaimStatus isn't really supposed to be used for keeping the
saved statuses, is it? I don't see how that would work. It seems
to make more sense to have a separate data structure for it. Maybe
I'm not seeing things clearly.
committer: Tailor Script <tailor@pidgin.im>
author | Mark Doliner <mark@kingant.net> |
---|---|
date | Thu, 09 Dec 2004 03:55:19 +0000 |
parents | 8d42237564f6 |
children | ee4f477fc8cf |
line wrap: on
line diff
--- a/src/blist.c Thu Dec 09 03:10:30 2004 +0000 +++ b/src/blist.c Thu Dec 09 03:55:19 2004 +0000 @@ -1956,43 +1956,40 @@ gsize length; xmlnode *gaim, *blist, *privacy; - gaim_debug(GAIM_DEBUG_INFO, "blist import", - "Reading %s\n", filename); + gaim_debug_info("blist", "Reading %s\n", filename); + if (!g_file_get_contents(filename, &contents, &length, &error)) { - gaim_debug(GAIM_DEBUG_ERROR, "blist import", - "Error reading blist: %s\n", error->message); + gaim_debug_error("blist", "Error reading blist.xml: %s\n", + error->message); g_error_free(error); return FALSE; } gaim = xmlnode_from_str(contents, length); - - if (!gaim) { + + if (gaim == NULL) { FILE *backup; char *name; - gaim_debug(GAIM_DEBUG_ERROR, "blist import", "Error parsing %s\n", - filename); + gaim_debug_error("blist", "Error parsing blist.xml\n"); name = g_build_filename(gaim_user_dir(), "blist.xml~", NULL); - if ((backup = fopen(name, "w"))) { fwrite(contents, length, 1, backup); fclose(backup); chmod(name, S_IRUSR | S_IWUSR); } else { - gaim_debug(GAIM_DEBUG_ERROR, "blist load", "Unable to write backup %s\n", - name); + gaim_debug_error("blist", "Unable to write backup %s\n", name); } g_free(name); g_free(contents); return FALSE; } - + g_free(contents); - + blist = xmlnode_get_child(gaim, "blist"); if (blist) { xmlnode *groupnode; - for (groupnode = xmlnode_get_child(blist, "group"); groupnode; + for (groupnode = xmlnode_get_child(blist, "group"); groupnode != NULL; groupnode = xmlnode_get_next_twin(groupnode)) { parse_group(groupnode); } @@ -2039,31 +2036,32 @@ } } - gaim_debug(GAIM_DEBUG_INFO, "blist import", "Finished reading %s\n", - filename); + gaim_debug_info("blist", "Finished reading blist.xml\n"); xmlnode_free(gaim); + return TRUE; } void gaim_blist_load() { const char *user_dir = gaim_user_dir(); - char *filename; - char *msg; + gchar *filename; + gchar *msg; blist_safe_to_write = TRUE; - if (!user_dir) + if (user_dir == NULL) return; filename = g_build_filename(user_dir, "blist.xml", NULL); if (g_file_test(filename, G_FILE_TEST_EXISTS)) { if (!gaim_blist_read(filename)) { - msg = g_strdup_printf(_("An error was encountered parsing your " - "buddy list. It has not been loaded, " - "and the old file has moved to blist.xml~.")); + msg = g_strdup_printf(_("An error was encountered parsing the " + "file containing your buddy list (%s). It has not " + "been loaded, and the old file has been renamed " + "to blist.xml~."), filename); gaim_notify_error(NULL, NULL, _("Buddy List Error"), msg); g_free(msg); }