/* FIXME: Many possible optimizations. */
#include <config.h>
-#include <libpspp/message.h>
+
#include <limits.h>
#include <math.h>
#include <stdlib.h>
-#include <libpspp/array.h>
-#include <libpspp/alloc.h>
+
#include <data/case.h>
#include <data/casefile.h>
-#include <language/command.h>
-#include <libpspp/compiler.h>
#include <data/dictionary.h>
+#include <data/procedure.h>
+#include <data/transformations.h>
+#include <data/variable.h>
+#include <language/command.h>
+#include <language/dictionary/split-file.h>
#include <language/lexer/lexer.h>
-#include <libpspp/message.h>
+#include <language/lexer/variable-parser.h>
+#include <libpspp/alloc.h>
+#include <libpspp/array.h>
+#include <libpspp/compiler.h>
#include <libpspp/magic.h>
+#include <libpspp/message.h>
#include <math/moments.h>
#include <output/manager.h>
#include <output/table.h>
-#include <data/variable.h>
-#include <procedure.h>
#include "gettext.h"
#define _(msgid) gettext (msgid)
/* Accumulated results. */
double missing_listwise; /* Sum of weights of cases missing listwise. */
double valid; /* Sum of weights of valid cases. */
- int bad_warn; /* Warn if bad weight found. */
+ bool bad_warn; /* Warn if bad weight found. */
enum dsc_statistic sort_by_stat; /* Statistic to sort by; -1: name. */
int sort_ascending; /* !0: ascending order; 0: descending. */
unsigned long show_stats; /* Statistics to display. */
static void setup_z_trns (struct dsc_proc *);
/* Procedure execution functions. */
-static bool calc_descriptives (const struct casefile *, void *dsc_);
+static bool calc_descriptives (const struct ccase *first,
+ const struct casefile *, void *dsc_);
static void display (struct dsc_proc *dsc);
\f
/* Parser and outline. */
*/
static int
descriptives_trns_proc (void *trns_, struct ccase * c,
- int case_idx UNUSED)
+ casenum_t case_idx UNUSED)
{
struct dsc_trns *t = trns_;
struct dsc_z_score *z;
/* Calculates and displays descriptive statistics for the cases
in CF. */
static bool
-calc_descriptives (const struct casefile *cf, void *dsc_)
+calc_descriptives (const struct ccase *first,
+ const struct casefile *cf, void *dsc_)
{
struct dsc_proc *dsc = dsc_;
struct casereader *reader;
struct ccase c;
size_t i;
+ output_split_file_values (first);
+
for (i = 0; i < dsc->var_cnt; i++)
{
struct dsc_var *dv = &dsc->vars[i];