Work on layered split file for FREQUENCIES.
[pspp] / src / output / pivot-table.c
index f8f917d9dd1d965b3d5b2830b725c7c12004eee1..3e54d776bec128a7c4ea9f92b8e8b452ead93fa1 100644 (file)
@@ -3028,3 +3028,30 @@ pivot_value_ex_destroy (struct pivot_value_ex *ex)
       free (ex);
     }
 }
+\f
+/* pivot_splits */
+
+struct pivot_splits
+  {
+    const struct dictionary *dict;
+    struct hmap splits[MAX_SPLITS];
+  };
+
+struct pivot_splits *
+pivot_splits_create (struct pivot_table *pt,
+                     enum pivot_axis_type axis,
+                     const struct dictionary *dict)
+{
+  if (dict_get_split_type (dict) != SPLIT_LAYERED)
+    return NULL;
+
+  struct pivot_splits *ps = xmalloc (sizeof *ps);
+  *ps = (struct pivot_splits) { .dict = dict };
+  for (size_t i = 0; i < dict_get_n_splits (dict); i++)
+    {
+      hmap_init (&ps->splits[i]);
+      struct pivot_dimension *d = pivot_dimension_create__ (
+        pt, axis, pivot_value_new_variable (dict_get_split_vars (dict)[i]));
+    }
+  return ps;
+}