projects
/
pspp-builds.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
First step in making struct variable opaque: the boring mechanical
[pspp-builds.git]
/
src
/
language
/
dictionary
/
missing-values.c
diff --git
a/src/language/dictionary/missing-values.c
b/src/language/dictionary/missing-values.c
index 6735d0e548520064468bfb56fd94f58e4f02f608..99018c3f4fe381ded138ccc0add09aa89df6cd51 100644
(file)
--- a/
src/language/dictionary/missing-values.c
+++ b/
src/language/dictionary/missing-values.c
@@
-59,32
+59,33
@@
cmd_missing_values (struct lexer *lexer, struct dataset *ds)
}
for (i = 0; i < nv; i++)
}
for (i = 0; i < nv; i++)
-
mv_init (&v[i]->miss, v[i]->width
);
+
var_clear_missing_values (v[i]
);
if (!lex_match (lexer, ')'))
{
struct missing_values mv;
for (i = 0; i < nv; i++)
if (!lex_match (lexer, ')'))
{
struct missing_values mv;
for (i = 0; i < nv; i++)
- if (v
[i]->type != v[0]->type
)
+ if (v
ar_get_type (v[i]) != var_get_type (v[0])
)
{
{
- const struct variable *n = v
[0]->type == NUMERIC
? v[0] : v[i];
- const struct variable *s = v
[0]->type == NUMERIC
? v[i] : v[0];
+ const struct variable *n = v
ar_is_numeric (v[0])
? v[0] : v[i];
+ const struct variable *s = v
ar_is_numeric (v[0])
? v[i] : v[0];
msg (SE, _("Cannot mix numeric variables (e.g. %s) and "
"string variables (e.g. %s) within a single list."),
msg (SE, _("Cannot mix numeric variables (e.g. %s) and "
"string variables (e.g. %s) within a single list."),
-
n->name, s->name
);
+
var_get_name (n), var_get_name (s)
);
goto done;
}
goto done;
}
- if (v
[0]->type == NUMERIC
)
+ if (v
ar_is_numeric (v[0])
)
{
mv_init (&mv, 0);
while (!lex_match (lexer, ')'))
{
{
mv_init (&mv, 0);
while (!lex_match (lexer, ')'))
{
+ enum fmt_type type = var_get_print_format (v[0])->type;
double x, y;
bool ok;
double x, y;
bool ok;
- if (!parse_num_range (lexer, &x, &y, &
v[0]->print.
type))
+ if (!parse_num_range (lexer, &x, &y, &type))
goto done;
ok = (x == y
goto done;
ok = (x == y
@@
-132,17
+133,19
@@
cmd_missing_values (struct lexer *lexer, struct dataset *ds)
for (i = 0; i < nv; i++)
{
for (i = 0; i < nv; i++)
{
- if (!mv_is_resizable (&mv, v
[i]->width
))
+ if (!mv_is_resizable (&mv, v
ar_get_width (v[i])
))
{
msg (SE, _("Missing values provided are too long to assign "
"to variable of width %d."),
{
msg (SE, _("Missing values provided are too long to assign "
"to variable of width %d."),
- v
[i]->width
);
+ v
ar_get_width (v[i])
);
deferred_errors = true;
}
else
{
deferred_errors = true;
}
else
{
- mv_copy (&v[i]->miss, &mv);
- mv_resize (&v[i]->miss, v[i]->width);
+ struct missing_values tmp;
+ mv_copy (&tmp, &mv);
+ mv_resize (&tmp, var_get_width (v[i]));
+ var_set_missing_values (v[i], &tmp);
}
}
}
}
}
}