projects
/
pspp
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
209f7e5
)
respect value labels in pivot_splits
author
Ben Pfaff
<blp@cs.stanford.edu>
Mon, 8 Aug 2022 05:33:40 +0000
(22:33 -0700)
committer
Ben Pfaff
<blp@cs.stanford.edu>
Mon, 8 Aug 2022 05:33:40 +0000
(22:33 -0700)
src/output/pivot-table.c
patch
|
blob
|
history
diff --git
a/src/output/pivot-table.c
b/src/output/pivot-table.c
index 6d1efb882b4748b3a009d6d3e0e64c05b0b1e624..75c7158e11ad115fe7d0cd9bd4effb32c85487fb 100644
(file)
--- a/
src/output/pivot-table.c
+++ b/
src/output/pivot-table.c
@@
-3043,10
+3043,8
@@
struct pivot_splits_value
struct pivot_splits_var
{
struct pivot_dimension *dimension;
struct pivot_splits_var
{
struct pivot_dimension *dimension;
- c
har *name
;
+ c
onst struct variable *var
;
int width;
int width;
- size_t idx;
- struct fmt_spec format;
struct hmap values;
};
struct hmap values;
};
@@
-3092,11
+3090,9
@@
pivot_splits_create (struct pivot_table *pt,
*psvar = (struct pivot_splits_var) {
.width = var_get_width (var),
*psvar = (struct pivot_splits_var) {
.width = var_get_width (var),
- .name = xstrdup (var_get_name (var)),
- .idx = var_get_case_index (var),
- .format = *var_get_print_format (var),
.values = HMAP_INITIALIZER (psvar->values),
.dimension = d,
.values = HMAP_INITIALIZER (psvar->values),
.dimension = d,
+ .var = var,
};
}
};
}
@@
-3136,7
+3132,6
@@
pivot_splits_destroy (struct pivot_splits *ps)
hmap_delete (&psvar->values, &psval->hmap_node);
free (psval);
}
hmap_delete (&psvar->values, &psval->hmap_node);
free (psval);
}
- free (psvar->name);
hmap_destroy (&psvar->values);
}
free (ps->vars);
hmap_destroy (&psvar->values);
}
free (ps->vars);
@@
-3173,7
+3168,7
@@
pivot_splits_new_split (struct pivot_splits *ps, const struct ccase *example)
for (size_t i = 0; i < ps->n; i++)
{
struct pivot_splits_var *psvar = &ps->vars[i];
for (size_t i = 0; i < ps->n; i++)
{
struct pivot_splits_var *psvar = &ps->vars[i];
- const union value *value = case_data
_idx (example, psvar->idx
);
+ const union value *value = case_data
(example, psvar->var
);
struct pivot_splits_value *psval = pivot_splits_value_find (psvar, value);
if (!psval)
{
struct pivot_splits_value *psval = pivot_splits_value_find (psvar, value);
if (!psval)
{
@@
-3183,8
+3178,7
@@
pivot_splits_new_split (struct pivot_splits *ps, const struct ccase *example)
value_clone (&psval->value, value, psvar->width);
psval->leaf = pivot_category_create_leaf (
psvar->dimension->root,
value_clone (&psval->value, value, psvar->width);
psval->leaf = pivot_category_create_leaf (
psvar->dimension->root,
- pivot_value_new_value (value, psvar->width, &psvar->format,
- ps->encoding));
+ pivot_value_new_var_value (psvar->var, value));
n_new++;
}
n_new++;
}
@@
-3202,10
+3196,11
@@
pivot_splits_new_split (struct pivot_splits *ps, const struct ccase *example)
ds_put_cstr (&s, ", ");
struct pivot_splits_var *psvar = &ps->vars[i];
ds_put_cstr (&s, ", ");
struct pivot_splits_var *psvar = &ps->vars[i];
- const union value *value = case_data
_idx (example, psvar->idx
);
- ds_put_format (&s, "%s = ",
psvar->name
);
+ const union value *value = case_data
(example, psvar->var
);
+ ds_put_format (&s, "%s = ",
var_get_name (psvar->var)
);
- char *s2 = data_out (value, ps->encoding, &psvar->format,
+ char *s2 = data_out (value, ps->encoding,
+ var_get_print_format (psvar->var),
settings_get_fmt_settings ());
ds_put_cstr (&s, s2 + strspn (s2, " "));
free (s2);
settings_get_fmt_settings ());
ds_put_cstr (&s, s2 + strspn (s2, " "));
free (s2);
@@
-3220,11
+3215,10
@@
pivot_splits_new_split (struct pivot_splits *ps, const struct ccase *example)
}
struct pivot_splits_var *psvar = &ps->vars[0];
}
struct pivot_splits_var *psvar = &ps->vars[0];
- const union value *value = case_data
_idx (example, psvar->idx
);
+ const union value *value = case_data
(example, psvar->var
);
ps->dindexes[0] = pivot_category_create_leaf (
psvar->dimension->root,
ps->dindexes[0] = pivot_category_create_leaf (
psvar->dimension->root,
- pivot_value_new_value (value, psvar->width, &psvar->format,
- ps->encoding));
+ pivot_value_new_var_value (psvar->var, value));
}
}
}
}