/* PSPP - computes sample statistics.
Copyright (C) 2006 Free Software Foundation, Inc.
- Written by John Darrington <john@darrington.wattle.id.au>
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License as
#define casefilter_h 1
#include <stdbool.h>
+#include <data/missing-values.h>
struct ccase;
struct casefilter;
struct variable ;
-/* Create a new casefilter.
- If EXCL is true, then the filter user missing values to be missing,
- otherwise they are considered at their face value.
+/* Create a new casefilter that drops cases in which any of the
+ N_VARS variables in VARS are missing in the given CLASS.
VARS is an array of variables which if *any* of them are missing.
N_VARS is the size of VARS.
*/
-struct casefilter * casefilter_create (bool, struct variable **, int);
+struct casefilter * casefilter_create (enum mv_class class,
+ const struct variable **, int);
/* Add the variables in VARS to the list of variables for which the
filter considers. N_VARS is the size of VARS */
-void casefilter_add_variables (struct casefilter *, struct variable **, int);
+void casefilter_add_variables (struct casefilter *,
+ const struct variable *const*, int);
/* Destroy the filter FILTER */
void casefilter_destroy (struct casefilter *);
/* Returns true iff the entire case should be skipped */
bool casefilter_skip_case (const struct casefilter *, const struct ccase *);
-/* Returns true iff the variable V in case C is missing */
+/* Returns true iff the variable V in case C is missing.
+ Note that this function's behaviour is independent of the set of
+ variables contained by the filter.
+ */
bool casefilter_variable_missing (const struct casefilter *f,
const struct ccase *c,
const struct variable *v);