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 de5653a3542294206fbc319c0366525a6b89da97..e0b43b9205c59db8b777baacc7c65b1125f1b616 100644
(file)
--- a/
src/data/sys-file-reader.c
+++ b/
src/data/sys-file-reader.c
@@
-891,7
+891,7
@@
sfm_decode (struct any_reader *r_, const char *encoding,
error:
sfm_close (r_);
error:
sfm_close (r_);
- dict_
destroy
(dict);
+ dict_
unref
(dict);
*dictp = NULL;
return NULL;
}
*dictp = NULL;
return NULL;
}
@@
-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));
@@
-3193,7
+3176,6
@@
static void
sys_msg (struct sfm_reader *r, off_t offset,
int class, const char *format, va_list args)
{
sys_msg (struct sfm_reader *r, off_t offset,
int class, const char *format, va_list args)
{
- struct msg m;
struct string text;
ds_init_empty (&text);
struct string text;
ds_init_empty (&text);
@@
-3204,15
+3186,11
@@
sys_msg (struct sfm_reader *r, off_t offset,
ds_put_format (&text, _("`%s': "), fh_get_file_name (r->fh));
ds_put_vformat (&text, format, args);
ds_put_format (&text, _("`%s': "), fh_get_file_name (r->fh));
ds_put_vformat (&text, format, args);
- m.category = msg_class_to_category (class);
- m.severity = msg_class_to_severity (class);
- m.file_name = NULL;
- m.first_line = 0;
- m.last_line = 0;
- m.first_column = 0;
- m.last_column = 0;
- m.text = ds_cstr (&text);
-
+ struct msg m = {
+ .category = msg_class_to_category (class),
+ .severity = msg_class_to_severity (class),
+ .text = ds_cstr (&text),
+ };
msg_emit (&m);
}
msg_emit (&m);
}