diff options
Diffstat (limited to 'filter/filter-rule.c')
-rw-r--r-- | filter/filter-rule.c | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/filter/filter-rule.c b/filter/filter-rule.c index 663e9d7f81..c5d36d3496 100644 --- a/filter/filter-rule.c +++ b/filter/filter-rule.c @@ -138,6 +138,21 @@ filter_rule_new () return o; } +FilterRule * +filter_rule_clone(FilterRule *base, RuleContext *f) +{ + xmlNodePtr xml; + FilterRule *rule; + + /* TODO: do this more directly/efficiently */ + xml = filter_rule_xml_encode(base); + rule = gtk_type_new(((GtkObject *)base)->klass->type); + filter_rule_xml_decode(rule, xml, f); + xmlFreeNodeList(xml); + + return rule; +} + void filter_rule_set_name (FilterRule *fr, const char *name) { |