struct variable;
struct dictionary;
+struct string;
struct dict_callbacks
{
size_t dict_get_var_cnt (const struct dictionary *);
struct variable *dict_get_var (const struct dictionary *, size_t idx);
-void dict_get_vars (const struct dictionary *,
+inline void dict_get_vars (const struct dictionary *,
+ const struct variable ***vars, size_t *cnt,
+ unsigned exclude_classes);
+void dict_get_vars_mutable (const struct dictionary *,
struct variable ***vars, size_t *cnt,
unsigned exclude_classes);
struct ccase;
struct variable *dict_get_weight (const struct dictionary *);
-double dict_get_case_weight (const struct dictionary *,
+double dict_get_case_weight (const struct dictionary *,
const struct ccase *, bool *);
void dict_set_weight (struct dictionary *, struct variable *);
struct ccase *, const struct ccase *);
void dict_compactor_destroy (struct dict_compactor *);
-struct variable *const *dict_get_split_vars (const struct dictionary *);
+const struct variable *const *dict_get_split_vars (const struct dictionary *);
size_t dict_get_split_cnt (const struct dictionary *);
void dict_set_split_vars (struct dictionary *,
struct variable *const *, size_t cnt);
const char *dict_get_label (const struct dictionary *);
void dict_set_label (struct dictionary *, const char *);
+/* Fixed length of lines in dictionary documents. */
+#define DOC_LINE_LENGTH 80
+
const char *dict_get_documents (const struct dictionary *);
void dict_set_documents (struct dictionary *, const char *);
+void dict_clear_documents (struct dictionary *);
+void dict_add_document_line (struct dictionary *, const char *);
+size_t dict_get_document_line_cnt (const struct dictionary *);
+void dict_get_document_line (const struct dictionary *,
+ size_t, struct string *);
bool dict_create_vector (struct dictionary *,
const char *name,