+/* Returns nonzero if this case should be exclude as specified on
+ FILTER or PROCESS IF, otherwise zero. */
+static int
+exclude_this_case (void)
+{
+ /* FILTER. */
+ struct variable *filter_var = dict_get_filter (default_dict);
+ if (filter_var != NULL)
+ {
+ double f = temp_case->data[filter_var->fv].f;
+ if (f == 0.0 || f == SYSMIS || is_num_user_missing (f, filter_var))
+ return 1;
+ }
+
+ /* PROCESS IF. */
+ if (process_if_expr != NULL
+ && expr_evaluate (process_if_expr, temp_case, NULL) != 1.0)
+ return 1;
+
+ return 0;
+}
+