struct variable *var_create (const char *name, int width);
struct variable *var_clone (const struct variable *);
void var_destroy (struct variable *);
+struct variable *var_create_internal (int case_idx);
+
/* Variable names. */
#define VAR_NAME_LEN 64 /* Maximum length of variable name, in bytes. */
int compare_var_ptrs_by_name (const void *, const void *, const void *);
unsigned hash_var_ptr_by_name (const void *, const void *);
+int compare_var_ptrs_by_dict_index (const void *, const void *, const void *);
+
/* Types and widths of values associated with a variable. */
enum val_type var_get_type (const struct variable *);
int var_get_width (const struct variable *);
void var_set_write_format (struct variable *, const struct fmt_spec *);
void var_set_both_formats (struct variable *, const struct fmt_spec *);
+struct fmt_spec var_default_formats (int width);
+
/* Variable labels. */
const char *var_to_string (const struct variable *);
const char *var_get_label (const struct variable *);
enum measure var_get_measure (const struct variable *);
void var_set_measure (struct variable *, enum measure);
+enum measure var_default_measure (enum val_type);
+
/* GUI display width. */
int var_get_display_width (const struct variable *);
void var_set_display_width (struct variable *, int display_width);
enum alignment var_get_alignment (const struct variable *);
void var_set_alignment (struct variable *, enum alignment);
+enum alignment var_default_alignment (enum val_type);
+
/* Whether variables' values should be preserved from case to
case. */
bool var_get_leave (const struct variable *);
void var_set_obs_vals (const struct variable *, struct cat_vals *);
bool var_has_obs_vals (const struct variable *);
+/* Custom attributes. */
+struct attrset *var_get_attributes (const struct variable *);
+void var_set_attributes (struct variable *, const struct attrset *);
+bool var_has_attributes (const struct variable *);
+
/* Function types. */
typedef bool var_predicate_func (const struct variable *);