pivot-table: Add more tests for category and dimension borders.
[pspp] / src / data / dictionary.h
index d1f7f2828bc1b902603dc93d749c26dcbda0f0f1..f709f11dd99324e1b45cae40186bc40296543988 100644 (file)
@@ -98,6 +98,8 @@ void dict_set_names_must_be_ids (struct dictionary *, bool);
 /* Weight variable. */
 double dict_get_case_weight (const struct dictionary *,
                             const struct ccase *, bool *);
+double dict_get_rounded_case_weight (const struct dictionary *,
+                                     const struct ccase *, bool *);
 struct variable *dict_get_weight (const struct dictionary *);
 void dict_set_weight (struct dictionary *, struct variable *);
 const struct fmt_spec *dict_get_weight_format (const struct dictionary *);
@@ -123,11 +125,23 @@ void dict_compact_values (struct dictionary *);
 struct caseproto *dict_get_compacted_proto (const struct dictionary *,
                                             unsigned int exclude_classes);
 
-/* SPLIT FILE variables. */
+/* SPLIT FILE variables.
+
+   SPLIT_NONE is used if and only if there are no split file variables. */
+enum split_type
+  {
+    SPLIT_NONE,                 /* No split file variables. */
+    SPLIT_SEPARATE,             /* Produce separate output for each split. */
+    SPLIT_LAYERED,              /* Output splits in same table.  */
+  };
+#define MAX_SPLITS 8
 const struct variable *const *dict_get_split_vars (const struct dictionary *);
 size_t dict_get_n_splits (const struct dictionary *);
+enum split_type dict_get_split_type (const struct dictionary *);
 void dict_set_split_vars (struct dictionary *,
-                          struct variable *const *, size_t n);
+                          struct variable *const *, size_t n,
+                          enum split_type);
+void dict_clear_split_vars (struct dictionary *);
 
 /* File label. */
 const char *dict_get_label (const struct dictionary *);
@@ -175,8 +189,9 @@ bool dict_has_attributes (const struct dictionary *);
 /* Data encoding. */
 const char *dict_get_encoding (const struct dictionary *d);
 
-bool dict_id_is_valid (const struct dictionary *, const char *id,
-                       bool issue_error);
+char *dict_id_is_valid__ (const struct dictionary *, const char *id)
+  WARN_UNUSED_RESULT;
+bool dict_id_is_valid (const struct dictionary *, const char *id);
 
 /* Internal variables. */
 struct variable *dict_create_internal_var (int case_idx, int width);