projects
/
pspp
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
value: Get rid of value_str(), value_str_rw(), value_num().
[pspp]
/
src
/
data
/
sys-file-reader.c
diff --git
a/src/data/sys-file-reader.c
b/src/data/sys-file-reader.c
index b4923230cf3629ff980142da4290efa1822d4b8a..e0b43b9205c59db8b777baacc7c65b1125f1b616 100644
(file)
--- a/
src/data/sys-file-reader.c
+++ b/
src/data/sys-file-reader.c
@@
-1544,22
+1544,9
@@
parse_format_spec (struct sfm_reader *r, off_t pos, unsigned int format,
int *n_warnings)
{
const int max_warnings = 8;
int *n_warnings)
{
const int max_warnings = 8;
- uint8_t raw_type = format >> 16;
- uint8_t w = format >> 8;
- uint8_t d = format;
struct fmt_spec f;
struct fmt_spec f;
- bool ok;
-
- f.w = w;
- f.d = d;
-
- msg_disable ();
- ok = (fmt_from_io (raw_type, &f.type)
- && fmt_check_output (&f)
- && fmt_check_width_compat (&f, var_get_width (v)));
- msg_enable ();
- if (
ok
)
+ if (
fmt_from_u32 (format, var_get_width (v), false, &f)
)
{
if (which == PRINT_FORMAT)
var_set_print_format (v, &f);
{
if (which == PRINT_FORMAT)
var_set_print_format (v, &f);
@@
-2226,7
+2213,7
@@
parse_value_labels (struct sfm_reader *r, struct dictionary *dict,
if (width == 0)
value.f = parse_float (r, label->value, 0);
else
if (width == 0)
value.f = parse_float (r, label->value, 0);
else
- memcpy (value
_str_rw (&value, width)
, label->value, width);
+ memcpy (value
.s
, label->value, width);
if (!var_add_value_label (var, &value, utf8_labels[j]))
{
if (!var_add_value_label (var, &value, utf8_labels[j]))
{
@@
-2245,8
+2232,7
@@
parse_value_labels (struct sfm_reader *r, struct dictionary *dict,
else
sys_warn (r, record->pos,
_("Duplicate value label for `%.*s' on %s."),
else
sys_warn (r, record->pos,
_("Duplicate value label for `%.*s' on %s."),
- width, value_str (&value, width),
- var_get_name (var));
+ width, value.s, var_get_name (var));
}
value_destroy (&value, width);
}
value_destroy (&value, width);
@@
-2533,8
+2519,7
@@
parse_long_string_value_labels (struct sfm_reader *r,
if (!skip)
{
if (value_length == width)
if (!skip)
{
if (value_length == width)
- memcpy (value_str_rw (&value, width),
- (const uint8_t *) record->data + ofs, width);
+ memcpy (value.s, (const uint8_t *) record->data + ofs, width);
else
{
sys_warn (r, record->pos + ofs,
else
{
sys_warn (r, record->pos + ofs,
@@
-2566,8
+2551,7
@@
parse_long_string_value_labels (struct sfm_reader *r,
if (!var_add_value_label (var, &value, label))
sys_warn (r, record->pos + ofs,
_("Duplicate value label for `%.*s' on %s."),
if (!var_add_value_label (var, &value, label))
sys_warn (r, record->pos + ofs,
_("Duplicate value label for `%.*s' on %s."),
- width, value_str (&value, width),
- var_get_name (var));
+ width, value.s, var_get_name (var));
pool_free (r->pool, label);
}
ofs += label_length;
pool_free (r->pool, label);
}
ofs += label_length;
@@
-2701,8
+2685,7
@@
sys_file_casereader_read (struct casereader *reader, void *r_)
retval = read_case_number (r, &v->f);
else
{
retval = read_case_number (r, &v->f);
else
{
- uint8_t *s = value_str_rw (v, sv->var_width);
- retval = read_case_string (r, s + sv->offset, sv->segment_width);
+ retval = read_case_string (r, v->s + sv->offset, sv->segment_width);
if (retval == 1)
{
retval = skip_whole_strings (r, ROUND_DOWN (sv->padding, 8));
if (retval == 1)
{
retval = skip_whole_strings (r, ROUND_DOWN (sv->padding, 8));