diff options
Diffstat (limited to 'mixlib/mix_predicate_list.c')
| -rw-r--r-- | mixlib/mix_predicate_list.c | 14 | 
1 files changed, 10 insertions, 4 deletions
| diff --git a/mixlib/mix_predicate_list.c b/mixlib/mix_predicate_list.c index 3e4fe08..42f6ea6 100644 --- a/mixlib/mix_predicate_list.c +++ b/mixlib/mix_predicate_list.c @@ -85,13 +85,19 @@ mix_predicate_list_add (mix_predicate_list_t *list, mix_predicate_t *predicate)    (void)mix_predicate_eval (predicate, list->vm);  } -void +gboolean  mix_predicate_list_remove (mix_predicate_list_t *list,  			   mix_predicate_t *predicate)  { -  g_return_if_fail (list != NULL); -  g_return_if_fail (predicate != NULL); -  list->predicates = g_slist_remove (list->predicates, predicate); +  g_return_val_if_fail (list != NULL, FALSE); +  g_return_val_if_fail (predicate != NULL, FALSE); +  if (g_slist_find (list->predicates, predicate)) +    { +      list->predicates = g_slist_remove (list->predicates, predicate); +      return TRUE; +    } +  else +    return FALSE;  }  void | 
