Fixes for bugs/warts found in debug mode compile (bug #17092).
[pspp-builds.git] / src / language / stats / oneway.q
index 9837d4ceb7ad6c5ec06c82014c8051829d034f37..cda3c17b4bffcb96e7561f8ba96912c5a870bae2 100644 (file)
@@ -19,31 +19,35 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
 02110-1301, USA. */
 
 #include <config.h>
+
 #include <gsl/gsl_cdf.h>
-#include <libpspp/message.h>
+#include <math.h>
 #include <stdio.h>
 #include <stdlib.h>
-#include <math.h>
-#include <libpspp/alloc.h>
-#include <libpspp/str.h>
+
 #include <data/case.h>
+#include <data/casefile.h>
 #include <data/dictionary.h>
+#include <data/procedure.h>
+#include <data/value-labels.h>
+#include <data/variable.h>
 #include <language/command.h>
-#include <libpspp/compiler.h>
+#include <language/dictionary/split-file.h>
 #include <language/lexer/lexer.h>
-#include <libpspp/message.h>
+#include <libpspp/alloc.h>
+#include <libpspp/compiler.h>
+#include <libpspp/hash.h>
 #include <libpspp/magic.h>
+#include <libpspp/message.h>
+#include <libpspp/message.h>
 #include <libpspp/misc.h>
-#include <output/table.h>
-#include <output/manager.h>
-#include <data/value-labels.h>
-#include <data/variable.h>
-#include <procedure.h>
-#include <libpspp/hash.h>
-#include <data/casefile.h>
+#include <libpspp/str.h>
 #include <math/group-proc.h>
 #include <math/group.h>
 #include <math/levene.h>
+#include <output/manager.h>
+#include <output/table.h>
+#include "sort-criteria.h"
 
 #include "gettext.h"
 #define _(msgid) gettext (msgid)
@@ -53,10 +57,10 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
 /* (specification)
    "ONEWAY" (oneway_):
    *^variables=custom;
-   +missing=miss:!analysis/listwise,
-   incl:include/!exclude;
-   contrast= double list;
-   statistics[st_]=descriptives,homogeneity.
+   missing=miss:!analysis/listwise,
+           incl:include/!exclude;
+   +contrast= double list;
+   +statistics[st_]=descriptives,homogeneity.
 */
 /* (declarations) */
 /* (functions) */
@@ -91,7 +95,8 @@ static int ostensible_number_of_groups=-1;
 static is_missing_func *value_is_missing;
 
 
-static bool run_oneway(const struct casefile *cf, void *_mode);
+static bool run_oneway(const struct ccase *first,
+                       const struct casefile *cf, void *_mode);
 
 
 /* Routines to show the output tables */
@@ -116,7 +121,7 @@ cmd_oneway(void)
   int i;
   bool ok;
 
-  if ( !parse_oneway(&cmd) )
+  if ( !parse_oneway(&cmd, NULL) )
     return CMD_FAILURE;
 
   /* If /MISSING=INCLUDE is set, then user missing values are ignored */
@@ -218,7 +223,7 @@ output_oneway(void)
 
 /* Parser for the variables sub command */
 static int
-oneway_custom_variables(struct cmd_oneway *cmd UNUSED)
+oneway_custom_variables(struct cmd_oneway *cmd UNUSED, void *aux UNUSED)
 {
 
   lex_match('=');
@@ -428,7 +433,8 @@ show_descriptives(void)
 
       const char *s = var_to_string(vars[v]);
 
-      struct group_statistics *const *gs_array = hsh_sort(gp->group_hash);
+      struct group_statistics *const *gs_array =
+       (struct group_statistics *const *) hsh_sort(gp->group_hash);
       int count = 0;
 
       tab_text (t, 0, row, TAB_LEFT | TAT_TITLE, s);
@@ -888,13 +894,15 @@ precalc ( struct cmd_oneway *cmd UNUSED )
 
 
 static bool
-run_oneway(const struct casefile *cf, void *cmd_)
+run_oneway(const struct ccase *first, const struct casefile *cf, void *cmd_)
 {
   struct casereader *r;
   struct ccase c;
 
   struct cmd_oneway *cmd = (struct cmd_oneway *) cmd_;
 
+  output_split_file_values (first);
+
   global_group_hash = hsh_create(4, 
                                 (hsh_compare_func *) compare_values,
                                 (hsh_hash_func *) hash_value,