aboutsummaryrefslogtreecommitdiffstats
path: root/filter/filter-rule.c
diff options
context:
space:
mode:
Diffstat (limited to 'filter/filter-rule.c')
-rw-r--r--filter/filter-rule.c14
1 files changed, 11 insertions, 3 deletions
diff --git a/filter/filter-rule.c b/filter/filter-rule.c
index 17173a1c97..663e9d7f81 100644
--- a/filter/filter-rule.c
+++ b/filter/filter-rule.c
@@ -182,8 +182,11 @@ xml_encode (FilterRule *fr)
}
if (fr->name) {
+ gchar *encstr;
work = xmlNewNode (NULL, "title");
- xmlNodeSetContent (work, fr->name);
+ encstr = e_utf8_xml1_encode (fr->name);
+ xmlNodeSetContent (work, encstr);
+ g_free (encstr);
xmlAddChild (node, work);
}
@@ -264,8 +267,13 @@ xml_decode (FilterRule *fr, xmlNodePtr node, RuleContext *f)
if (!strcmp (work->name, "partset")) {
load_set (work, fr, f);
} else if (!strcmp (work->name, "title")) {
- if (!fr->name)
- fr->name = xmlNodeGetContent (work);
+ if (!fr->name) {
+ gchar *str, *decstr;
+ str = xmlNodeGetContent (work);
+ decstr = e_utf8_xml1_decode (str);
+ if (str) xmlFree (str);
+ fr->name = decstr;
+ }
}
work = work->next;
}