/* PSPP - a program for statistical analysis.
- Copyright (C) 1997-9, 2000, 2009, 2010, 2011 Free Software Foundation, Inc.
+ Copyright (C) 1997-9, 2000, 2009, 2010, 2011, 2012, 2013 Free Software Foundation, Inc.
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
#include "data/missing-values.h"
#include "data/val-type.h"
+/* Bitfields to identify traits of a variable */
+
+#define VAR_TRAIT_NAME 0x0001
+#define VAR_TRAIT_WIDTH 0x0002
+/* Available for reuse: 0x0004 */
+#define VAR_TRAIT_LABEL 0x0008
+#define VAR_TRAIT_VALUE_LABELS 0x0010
+#define VAR_TRAIT_MISSING_VALUES 0x0020
+#define VAR_TRAIT_ALIGNMENT 0x0040
+#define VAR_TRAIT_MEASURE 0x0080
+#define VAR_TRAIT_DISPLAY_WIDTH 0x0100
+#define VAR_TRAIT_LEAVE 0x0200
+#define VAR_TRAIT_POSITION 0x0400
+#define VAR_TRAIT_ATTRIBUTES 0x0800
+#define VAR_TRAIT_PRINT_FORMAT 0x1000
+#define VAR_TRAIT_WRITE_FORMAT 0x2000
+
+
union value;
/* Variables.
int compare_var_ptrs_by_dict_index (const void *, const void *, const void *);
+struct fmt_spec;
+
/* 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_width (struct variable *, int width);
+void var_set_width_and_formats (struct variable *v, int new_width,
+ const struct fmt_spec *print, const struct fmt_spec *write);
bool var_is_numeric (const struct variable *);
bool var_is_alpha (const struct variable *);
size_t var_get_dict_index (const struct variable *);
size_t var_get_case_index (const struct variable *);
-/* Variable auxiliary data. */
-void *var_get_aux (const struct variable *);
-void *var_attach_aux (const struct variable *,
- void *aux, void (*aux_dtor) (struct variable *));
-void var_clear_aux (struct variable *);
-void *var_detach_aux (struct variable *);
-void var_dtor_free (struct variable *);
-
/* Custom attributes. */
struct attrset *var_get_attributes (const struct variable *);
void var_set_attributes (struct variable *, const struct attrset *);