projects
/
pspp
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
pivot-table: Change the default format to omit empty rows and columns.
[pspp]
/
src
/
data
/
sys-file-writer.c
diff --git
a/src/data/sys-file-writer.c
b/src/data/sys-file-writer.c
index df5108e2a062758ae79d561f5d1ee51b29a1c152..7a0fb5a691280ca3e4c542c1dbc3a9ebc09e92c3 100644
(file)
--- a/
src/data/sys-file-writer.c
+++ b/
src/data/sys-file-writer.c
@@
-411,7
+411,7
@@
write_header (struct sfm_writer *w, const struct dictionary *d)
if (time (&t) == (time_t) -1)
{
creation_date = xstrdup ("01 Jan 70");
if (time (&t) == (time_t) -1)
{
creation_date = xstrdup ("01 Jan 70");
- creation_time = xstrdup (
"00:00:00");
+ creation_time = xstrdup ("00:00:00");
}
else
{
}
else
{
@@
-507,6
+507,7
@@
write_variable (struct sfm_writer *w, const struct variable *v)
Missing values for long string variables are written in a separate
record. */
Missing values for long string variables are written in a separate
record. */
+ enum { MAX_SHORT_STRING = 8 };
if (width <= MAX_SHORT_STRING)
{
const struct missing_values *mv = var_get_missing_values (v);
if (width <= MAX_SHORT_STRING)
{
const struct missing_values *mv = var_get_missing_values (v);
@@
-853,8
+854,7
@@
write_mrsets (struct sfm_writer *w, const struct dictionary *dict,
if (mrset->width == 0)
counted = xasprintf ("%.0f", mrset->counted.f);
else
if (mrset->width == 0)
counted = xasprintf ("%.0f", mrset->counted.f);
else
- counted = xmemdup0 (value_str (&mrset->counted, mrset->width),
- mrset->width);
+ counted = xmemdup0 (mrset->counted.s, mrset->width);
ds_put_format (&s, "%zu %s", strlen (counted), counted);
free (counted);
}
ds_put_format (&s, "%zu %s", strlen (counted), counted);
free (counted);
}
@@
-953,7
+953,6
@@
write_long_string_value_labels (struct sfm_writer *w,
const char *encoding = dict_get_encoding (dict);
size_t n_vars = dict_get_var_cnt (dict);
size_t size, i;
const char *encoding = dict_get_encoding (dict);
size_t n_vars = dict_get_var_cnt (dict);
size_t size, i;
- off_t start UNUSED;
/* Figure out the size in advance. */
size = 0;
/* Figure out the size in advance. */
size = 0;
@@
-985,7
+984,6
@@
write_long_string_value_labels (struct sfm_writer *w,
write_int (w, 1); /* Data item (byte) size. */
write_int (w, size); /* Number of data items. */
write_int (w, 1); /* Data item (byte) size. */
write_int (w, size); /* Number of data items. */
- start = ftello (w->file);
for (i = 0; i < n_vars; i++)
{
struct variable *var = dict_get_var (dict, i);
for (i = 0; i < n_vars; i++)
{
struct variable *var = dict_get_var (dict, i);
@@
-1011,8
+1009,7
@@
write_long_string_value_labels (struct sfm_writer *w,
size_t len;
write_int (w, width);
size_t len;
write_int (w, width);
- write_bytes (w, value_str (val_lab_get_value (val_lab), width),
- width);
+ write_bytes (w, val_lab_get_value (val_lab)->s, width);
label = recode_string (var_get_encoding (var), "UTF-8",
val_lab_get_escaped_label (val_lab), -1);
label = recode_string (var_get_encoding (var), "UTF-8",
val_lab_get_escaped_label (val_lab), -1);
@@
-1022,7
+1019,6
@@
write_long_string_value_labels (struct sfm_writer *w,
free (label);
}
}
free (label);
}
}
- assert (ftello (w->file) == start + size);
}
static void
}
static void
@@
-1032,7
+1028,6
@@
write_long_string_missing_values (struct sfm_writer *w,
const char *encoding = dict_get_encoding (dict);
size_t n_vars = dict_get_var_cnt (dict);
size_t size, i;
const char *encoding = dict_get_encoding (dict);
size_t n_vars = dict_get_var_cnt (dict);
size_t size, i;
- off_t start UNUSED;
/* Figure out the size in advance. */
size = 0;
/* Figure out the size in advance. */
size = 0;
@@
-1058,7
+1053,6
@@
write_long_string_missing_values (struct sfm_writer *w,
write_int (w, 1); /* Data item (byte) size. */
write_int (w, size); /* Number of data items. */
write_int (w, 1); /* Data item (byte) size. */
write_int (w, size); /* Number of data items. */
- start = ftello (w->file);
for (i = 0; i < n_vars; i++)
{
struct variable *var = dict_get_var (dict, i);
for (i = 0; i < n_vars; i++)
{
struct variable *var = dict_get_var (dict, i);
@@
-1084,10
+1078,9
@@
write_long_string_missing_values (struct sfm_writer *w,
const union value *value = mv_get_value (mv, j);
write_int (w, 8);
const union value *value = mv_get_value (mv, j);
write_int (w, 8);
- write_bytes (w, value
_str (value, width)
, 8);
+ write_bytes (w, value
->s
, 8);
}
}
}
}
- assert (ftello (w->file) == start + size);
}
static void
}
static void
@@
-1598,7
+1591,7
@@
write_value (struct sfm_writer *w, const union value *value, int width)
write_float (w, value->f);
else
{
write_float (w, value->f);
else
{
- write_bytes (w, value
_str (value, width)
, width);
+ write_bytes (w, value
->s
, width);
write_zeros (w, 8 - width);
}
}
write_zeros (w, 8 - width);
}
}