+void folder_set_xml(Folder *folder, XMLTag *tag)
+{
+ GList *cur;
+
+ for (cur = tag->attr; cur != NULL; cur = g_list_next(cur)) {
+ XMLAttr *attr = (XMLAttr *) cur->data;
+
+ if (!attr || !attr->name || !attr->value) continue;
+ if (!strcmp(attr->name, "name")) {
+ if (folder->name != NULL)
+ g_free(folder->name);
+ folder->name = g_strdup(attr->value);
+ } else if (!strcmp(attr->name, "account_id")) {
+ PrefsAccount *account;
+
+ account = account_find_from_id(atoi(attr->value));
+ if (!account)
+ g_warning("account_id: %s not found\n", attr->value);
+ else {
+ folder->account = account;
+ account->folder = folder;
+ }
+ }
+ }
+}
+
+XMLTag *folder_get_xml(Folder *folder)
+{
+ XMLTag *tag;
+
+ tag = g_new0(XMLTag, 1);
+ tag->tag = g_strdup("folder");
+
+ if (folder->name)
+ xml_tag_add_attr(tag, "name", g_strdup(folder->name));
+ if (folder->account)
+ xml_tag_add_attr(tag, "account_id", g_strdup_printf("%d", folder->account->account_id));
+
+ return tag;
+}
+