aboutsummaryrefslogtreecommitdiffstats
path: root/filter/rule-context.c
diff options
context:
space:
mode:
authorNot Zed <NotZed@Ximian.com>2002-05-08 14:36:28 +0800
committerMichael Zucci <zucchi@src.gnome.org>2002-05-08 14:36:28 +0800
commitd616d97a3ef8a1202933ba2000b363d0dcb69d3d (patch)
treeb6c946427a68bf9f5733fc1f6f32a2cb1aff00bf /filter/rule-context.c
parent8accbe54edf3b9f2b1d6ebcaf8b06d796fef1ec6 (diff)
downloadgsoc2013-evolution-d616d97a3ef8a1202933ba2000b363d0dcb69d3d.tar
gsoc2013-evolution-d616d97a3ef8a1202933ba2000b363d0dcb69d3d.tar.gz
gsoc2013-evolution-d616d97a3ef8a1202933ba2000b363d0dcb69d3d.tar.bz2
gsoc2013-evolution-d616d97a3ef8a1202933ba2000b363d0dcb69d3d.tar.lz
gsoc2013-evolution-d616d97a3ef8a1202933ba2000b363d0dcb69d3d.tar.xz
gsoc2013-evolution-d616d97a3ef8a1202933ba2000b363d0dcb69d3d.tar.zst
gsoc2013-evolution-d616d97a3ef8a1202933ba2000b363d0dcb69d3d.zip
Changed to return a GList *, a list of the names of the rules affected by
2002-05-08 Not Zed <NotZed@Ximian.com> * rule-context.c (rule_context_delete_uri): Changed to return a GList *, a list of the names of the rules affected by the delete, fixed all implementors. (rule_context_rename_uri): Similarly for delete_uri, for api consistency. (rule_context_free_uri_list): Util function to free the return from above. * filter-context.c (filter_delete_uri): Actually implement it, fix for #18826, and some related bugs. svn path=/trunk/; revision=16718
Diffstat (limited to 'filter/rule-context.c')
-rw-r--r--filter/rule-context.c31
1 files changed, 23 insertions, 8 deletions
diff --git a/filter/rule-context.c b/filter/rule-context.c
index d11e4ec722..18939a0041 100644
--- a/filter/rule-context.c
+++ b/filter/rule-context.c
@@ -38,8 +38,8 @@
static int load(RuleContext * f, const char *system, const char *user);
static int save(RuleContext * f, const char *user);
-static int rename_uri(RuleContext *f, const char *olduri, const char *newuri, GCompareFunc cmp);
-static int delete_uri(RuleContext *f, const char *uri, GCompareFunc cmp);
+static GList *rename_uri(RuleContext *f, const char *olduri, const char *newuri, GCompareFunc cmp);
+static GList *delete_uri(RuleContext *f, const char *uri, GCompareFunc cmp);
static void rule_context_class_init(RuleContextClass * class);
static void rule_context_init(RuleContext * gspaper);
@@ -652,28 +652,43 @@ rule_context_find_rank_rule (RuleContext *f, int rank, const char *source)
return NULL;
}
-static int
+static GList *
delete_uri(RuleContext *f, const char *uri, GCompareFunc cmp)
{
- return 0;
+ return NULL;
}
-int
+GList *
rule_context_delete_uri(RuleContext *f, const char *uri, GCompareFunc cmp)
{
return ((RuleContextClass *) ((GtkObject *) f)->klass)->delete_uri(f, uri, cmp);
}
-static int
+static GList *
rename_uri(RuleContext *f, const char *olduri, const char *newuri, GCompareFunc cmp)
{
- return 0;
+ return NULL;
}
-int
+GList *
rule_context_rename_uri(RuleContext *f, const char *olduri, const char *newuri, GCompareFunc cmp)
{
return ((RuleContextClass *) ((GtkObject *) f)->klass)->rename_uri (f, olduri, newuri, cmp);
}
+void
+rule_context_free_uri_list(RuleContext *f, GList *uris)
+{
+ GList *l = uris, *n;
+
+ /* TODO: should be virtual */
+
+ while (l) {
+ n = l->next;
+ g_free(l->data);
+ g_list_free_1(l);
+ l = n;
+ }
+}
+