return new_var;
}
-/* Create a variable to be used for internal calculations only.
- The variable is assigned a unique dictionary index and a case
- index of CASE_IDX. */
+/* Create a variable of the specified WIDTH to be used for
+ internal calculations only. The variable is assigned a unique
+ dictionary index and a case index of CASE_IDX. */
struct variable *
-var_create_internal (int case_idx)
+var_create_internal (int case_idx, int width)
{
- struct variable *v = var_create ("$internal", 0);
+ struct variable *v = var_create ("$internal", width);
struct vardict_info vdi;
static int counter = INT_MAX / 2;
const char *name = var_lookup_value_label (v, value);
if (name == NULL)
{
- char *s = ds_put_uninit (str, v->print.w);
- data_out (value, &v->print, s);
+ char *s = data_out (value, &v->print);
+ ds_put_cstr (str, s);
+ free (s);
}
else
ds_put_cstr (str, name);