+2003-06-10 [alfons] 0.9.0claws27
+
+ * src/filtering.[ch]
+ * src/folder.c
+ * src/matcher.c
+ * src/scoring.[ch]
+ - try fixing bug #18 (any brave testers?)
+ - add more robustness by refusing previously
+ unchecked NULL pointers
+
2003-06-10 [alfons] 0.9.0claws26
* src/procmsg.c
MICRO_VERSION=0
INTERFACE_AGE=0
BINARY_AGE=0
-EXTRA_VERSION=claws26
+EXTRA_VERSION=claws27
VERSION=$MAJOR_VERSION.$MINOR_VERSION.$MICRO_VERSION$EXTRA_VERSION
dnl set $target
void filteringprop_free(FilteringProp * prop)
{
+ g_return_if_fail(prop);
matcherlist_free(prop->matchers);
filteringaction_free(prop->action);
g_free(prop);
{
FolderItem *item = node->data;
- if(!item->prefs)
- return FALSE;
+ g_return_val_if_fail(item, FALSE);
+ g_return_val_if_fail(item->prefs, FALSE);
prefs_filtering_free(item->prefs->processing);
item->prefs->processing = NULL;
prefs_filtering_free(global_processing);
global_processing = NULL;
}
+
+void prefs_filtering_clear_folder(Folder *folder)
+{
+ g_return_if_fail(folder);
+ g_return_if_fail(folder->node);
+
+ g_node_traverse(folder->node, G_PRE_ORDER, G_TRAVERSE_ALL, -1,
+ prefs_filtering_free_func, NULL);
+ /* FIXME: Note folder settings were changed, where the updates? */
+}
+
gchar * filteringprop_to_string(FilteringProp *prop);
void prefs_filtering_clear(void);
+void prefs_filtering_clear_folder(Folder *folder);
void prefs_filtering_free(GSList *prefs_filtering);
FilteringProp * filteringprop_copy(FilteringProp *src);
g_return_if_fail(folder != NULL);
g_return_if_fail(folder->node != NULL);
- prefs_scoring_clear();
- prefs_filtering_clear();
+ prefs_scoring_clear_folder(folder);
+ prefs_filtering_clear_folder(folder);
g_node_traverse(folder->node, G_POST_ORDER, G_TRAVERSE_ALL, -1, folder_tree_destroy_func, NULL);
if (folder->node)
{
GSList *l;
+ g_return_if_fail(cond);
for (l = cond->matchers ; l != NULL ; l = g_slist_next(l)) {
matcherprop_free((MatcherProp *) l->data);
}
void scoringprop_free(ScoringProp * prop)
{
+ g_return_if_fail(prop);
matcherlist_free(prop->matchers);
g_free(prop);
}
prefs_scoring_free(global_scoring);
global_scoring = NULL;
}
+
+/*!
+ *\brief Clear up scoring for folder
+ */
+void prefs_scoring_clear_folder(Folder *folder)
+{
+ g_return_if_fail(folder);
+ g_return_if_fail(folder->node);
+ g_node_traverse(folder->node, G_PRE_ORDER, G_TRAVERSE_ALL, -1,
+ prefs_scoring_free_func, NULL);
+}
gchar * scoringprop_to_string(ScoringProp * prop);
void prefs_scoring_clear(void);
+void prefs_scoring_clear_folder(Folder *folder);
+
void prefs_scoring_free(GSList * prefs_scoring);
#endif