CTABLES split file
[pspp] / src / language / stats / ctables.c
index 2611bfebb3a53cbc21fb18e9ce9f546790b2c0e7..fd296a00216e5165bcbe9427fc79cd99ccf71128 100644 (file)
@@ -5513,23 +5513,27 @@ ctables_execute (struct dataset *ds, struct casereader *input,
     }
 
   struct dictionary *dict = dataset_dict (ds);
+
+  bool splitting = dict_get_split_type (dict) == SPLIT_SEPARATE;
   struct casegrouper *grouper
-    = (dict_get_split_type (dict) == SPLIT_SEPARATE
+    = (splitting
        ? casegrouper_create_splits (input, dict)
        : casegrouper_create_vars (input, NULL, 0));
   struct casereader *group;
   while (casegrouper_get_next_group (grouper, &group))
     {
-      /* Output SPLIT FILE variables. */
-      struct ccase *c = casereader_peek (group, 0);
-      if (c != NULL)
+      if (splitting)
         {
-          output_split_file_values (ds, c);
-          case_unref (c);
+          struct ccase *c = casereader_peek (group, 0);
+          if (c != NULL)
+            {
+              output_split_file_values (ds, c);
+              case_unref (c);
+            }
         }
 
       bool warn_on_invalid = true;
-      for (c = casereader_read (group); c;
+      for (struct ccase *c = casereader_read (group); c;
            case_unref (c), c = casereader_read (group))
         {
           double d_weight = dict_get_case_weight (dict, c, &warn_on_invalid);