Rewrote most of the examine command.
[pspp-builds.git] / src / split-file.c
index 29fc432ef0902b4be4bb104f02d68f7e7b6fd1b1..733aa9fbd31c89f5548ebe4ea5c7b4b4a9649d01 100644 (file)
@@ -21,6 +21,7 @@
 #include <stdlib.h>
 #include "alloc.h"
 #include "command.h"
+#include "dictionary.h"
 #include "error.h"
 #include "lexer.h"
 #include "str.h"
 int
 cmd_split_file (void)
 {
-  lex_match_id ("SPLIT");
-  lex_match_id ("FILE");
-
   if (lex_match_id ("OFF"))
-    {
-      default_dict.n_splits = 0;
-      free (default_dict.splits);
-      default_dict.splits = NULL;
-    }
+    dict_set_split_vars (default_dict, NULL, 0);
   else
     {
       struct variable **v;
       int n;
 
       lex_match (T_BY);
-      if (!parse_variables (NULL, &v, &n, PV_NO_DUPLICATE))
+      if (!parse_variables (default_dict, &v, &n, PV_NO_DUPLICATE))
        return CMD_FAILURE;
 
-      default_dict.n_splits = n;
-      default_dict.splits = v = xrealloc (v, sizeof *v * (n + 1));
-      v[n] = NULL;
+      dict_set_split_vars (default_dict, v, n);
+      free (v);
     }
 
   return lex_end_of_command ();