diff options
author | Not Zed <NotZed@Ximian.com> | 2002-05-08 14:36:28 +0800 |
---|---|---|
committer | Michael Zucci <zucchi@src.gnome.org> | 2002-05-08 14:36:28 +0800 |
commit | d616d97a3ef8a1202933ba2000b363d0dcb69d3d (patch) | |
tree | b6c946427a68bf9f5733fc1f6f32a2cb1aff00bf /filter/rule-context.c | |
parent | 8accbe54edf3b9f2b1d6ebcaf8b06d796fef1ec6 (diff) | |
download | gsoc2013-evolution-d616d97a3ef8a1202933ba2000b363d0dcb69d3d.tar.gz 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.c | 31 |
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; + } +} + |