projects
/
pspp-builds.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
sys-file-reader: Tolerate nonsensical opcodes in compressed data.
[pspp-builds.git]
/
src
/
data
/
sys-file-writer.c
diff --git
a/src/data/sys-file-writer.c
b/src/data/sys-file-writer.c
index 3e0d3499c9cd543450929e1b5dbb628552bc6640..001b78f162a7d1724d73afba520f9066facbcfa4 100644
(file)
--- a/
src/data/sys-file-writer.c
+++ b/
src/data/sys-file-writer.c
@@
-90,7
+90,7
@@
struct sfm_writer
for long string variables. */
};
for long string variables. */
};
-static struct casewriter_class sys_file_casewriter_class;
+static
const
struct casewriter_class sys_file_casewriter_class;
static void write_header (struct sfm_writer *, const struct dictionary *);
static void write_variable (struct sfm_writer *, const struct variable *);
static void write_header (struct sfm_writer *, const struct dictionary *);
static void write_variable (struct sfm_writer *, const struct variable *);
@@
-136,7
+136,7
@@
sfm_writer_default_options (void)
{
struct sfm_write_options opts;
opts.create_writeable = true;
{
struct sfm_write_options opts;
opts.create_writeable = true;
- opts.compress = get_scompression ();
+ opts.compress =
settings_
get_scompression ();
opts.version = 3;
return opts;
}
opts.version = 3;
return opts;
}
@@
-333,7
+333,7
@@
write_header (struct sfm_writer *w, const struct dictionary *d)
}
else
{
}
else
{
- static const char *month_name[12] =
+ static const char *
const
month_name[12] =
{
"Jan", "Feb", "Mar", "Apr", "May", "Jun",
"Jul", "Aug", "Sep", "Oct", "Nov", "Dec",
{
"Jan", "Feb", "Mar", "Apr", "May", "Jun",
"Jul", "Aug", "Sep", "Oct", "Nov", "Dec",
@@
-421,7
+421,7
@@
write_variable (struct sfm_writer *w, const struct variable *v)
/* Number of missing values. If there is a range, then the
range counts as 2 missing values and causes the number to be
negated. */
/* Number of missing values. If there is a range, then the
range counts as 2 missing values and causes the number to be
negated. */
- write_int (w, mv_has_range (mv) ? 2 - mv_n_values (mv) : mv_n_values (mv));
+ write_int (w, mv_has_range (mv) ?
-
2 - mv_n_values (mv) : mv_n_values (mv));
/* Print and write formats. */
write_format (w, *var_get_print_format (v), seg0_width);
/* Print and write formats. */
write_format (w, *var_get_print_format (v), seg0_width);
@@
-436,8
+436,9
@@
write_variable (struct sfm_writer *w, const struct variable *v)
if (var_has_label (v))
{
const char *label = var_get_label (v);
if (var_has_label (v))
{
const char *label = var_get_label (v);
- size_t padded_len = ROUND_UP (MIN (strlen (label), 255), 4);
- write_int (w, padded_len);
+ size_t label_len = MIN (strlen (label), 255);
+ size_t padded_len = ROUND_UP (label_len, 4);
+ write_int (w, label_len);
write_string (w, label, padded_len);
}
write_string (w, label, padded_len);
}
@@
-445,14
+446,14
@@
write_variable (struct sfm_writer *w, const struct variable *v)
if (mv_has_range (mv))
{
double x, y;
if (mv_has_range (mv))
{
double x, y;
- mv_
peek
_range (mv, &x, &y);
+ mv_
get
_range (mv, &x, &y);
write_float (w, x);
write_float (w, y);
}
for (i = 0; i < mv_n_values (mv); i++)
{
union value value;
write_float (w, x);
write_float (w, y);
}
for (i = 0; i < mv_n_values (mv); i++)
{
union value value;
- mv_
peek
_value (mv, &value, i);
+ mv_
get
_value (mv, &value, i);
write_value (w, &value, seg0_width);
}
write_value (w, &value, seg0_width);
}
@@
-751,7
+752,7
@@
close_writer (struct sfm_writer *w)
}
/* System file writer casewriter class. */
}
/* System file writer casewriter class. */
-static struct casewriter_class sys_file_casewriter_class =
+static
const
struct casewriter_class sys_file_casewriter_class =
{
sys_file_casewriter_write,
sys_file_casewriter_destroy,
{
sys_file_casewriter_write,
sys_file_casewriter_destroy,