/* PSPP - a program for statistical analysis.
- Copyright (C) 2011 Free Software Foundation, Inc.
+ Copyright (C) 2011, 2012 Free Software Foundation, Inc.
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
xmlFreeTextReader (r->xtr);
if ( ! ds_is_empty (&r->ods_errs))
- msg (ME, ds_cstr (&r->ods_errs));
+ msg (ME, "%s", ds_cstr (&r->ods_errs));
ds_destroy (&r->ods_errs);
value_copy_str_rpad (v, var_get_width (var), xmv->text, ' ');
else
{
+ const char *text ;
const struct fmt_spec *fmt = var_get_write_format (var);
enum fmt_category fc = fmt_get_category (fmt->type);
assert ( fc != FMT_CAT_STRING);
- const char *text = xmv->value ? CHAR_CAST (const char *, xmv->value):
- CHAR_CAST (const char *, xmv->text);
+ text =
+ xmv->value ? CHAR_CAST (const char *, xmv->value) : CHAR_CAST (const char *, xmv->text);
- data_in (ss_cstr (text), "UTF-8",
- fmt->type,
- v,
- var_get_width (var),
- "UTF-8");
+ free (data_in (ss_cstr (text), "UTF-8",
+ fmt->type,
+ v,
+ var_get_width (var),
+ "UTF-8"));
}
}
int n_var_specs = 0;
struct ods_reader *r = xzalloc (sizeof *r);
+ struct zip_member *content = NULL;
+ struct zip_reader *zreader ;
+ xmlChar *val_string = NULL;
r->read_names = gri->read_names;
ds_init_empty (&r->ods_errs);
- struct zip_reader *zreader = zip_reader_create (gri->file_name, &r->ods_errs);
- struct zip_member *content = NULL;
+ zreader = zip_reader_create (gri->file_name, &r->ods_errs);
if ( NULL == zreader)
{
/* If CELLRANGE was given, then we know how many variables should be read */
if ( r->stop_col != -1 )
{
+ assert (var_spec == NULL);
n_var_specs = r->stop_col - r->start_col + 1;
var_spec = xrealloc (var_spec, sizeof (*var_spec) * n_var_specs);
+ memset (var_spec, '\0', sizeof (*var_spec) * n_var_specs);
}
var_spec = xrealloc (var_spec, sizeof (*var_spec) * (idx + 1));
/* xrealloc (unlike realloc) doesn't initialise its memory to 0 */
- memset (var_spec + n_var_specs * sizeof (*var_spec),
+ memset (var_spec + n_var_specs,
0,
(n_var_specs - idx + 1) * sizeof (*var_spec));
n_var_specs = idx + 1;
}
}
- xmlChar *val_string = NULL;
/* Read in the first row of data */
while (1 == xmlTextReaderRead (r->xtr))
{
free (var_spec);
+ dict_destroy (r->dict);
+ ods_file_casereader_destroy (NULL, r);
+
+
return NULL;
}