Redo VFM interface. Get rid of compaction_necessary, compaction_nval,
[pspp-builds.git] / src / var.h
index 11add5b0daa99ecc7600c0e1bcb1207b3ee80469..6d5cad7938ea2589cb6047b55ac6a3d8b21af14c 100644 (file)
--- a/src/var.h
+++ b/src/var.h
@@ -221,8 +221,6 @@ struct variable
     int index;                 /* Index into its dictionary's var[]. */
     int type;                   /* NUMERIC or ALPHA. */
 
-    /* Also important but parse_variables() doesn't need it.  Still,
-       check before reordering. */
     int width;                 /* Size of string variables in chars. */
     int fv, nv;                        /* Index into `value's, number of values. */
     unsigned init : 1;          /* 1=VFM must init and possibly reinit. */
@@ -345,7 +343,10 @@ void dict_set_case_limit (struct dictionary *, int);
 
 int dict_get_next_value_idx (const struct dictionary *);
 size_t dict_get_case_size (const struct dictionary *);
+
 void dict_compact_values (struct dictionary *);
+size_t dict_get_compacted_value_cnt (const struct dictionary *);
+int *dict_get_compacted_idx_to_fv (const struct dictionary *);
 
 struct variable *const *dict_get_split_vars (const struct dictionary *);
 size_t dict_get_split_cnt (const struct dictionary *);
@@ -405,6 +406,7 @@ void cancel_temporary (void);
 /* Functions. */
 
 void dump_split_vars (const struct ccase *);
+typedef int (* is_missing_func )(const union value *, const struct variable *);
 
 int is_num_user_missing (double, const struct variable *);
 int is_str_user_missing (const unsigned char[], const struct variable *);
@@ -449,7 +451,6 @@ size_t var_set_get_cnt (struct var_set *vs);
 struct variable *var_set_get_var (struct var_set *vs, size_t idx);
 struct variable *var_set_lookup_var (struct var_set *vs, const char *name);
 void var_set_destroy (struct var_set *vs);
-
 \f
 /* Variable parsers. */