int
cmd_get_data (struct lexer *lexer, struct dataset *ds)
{
+ struct spreadsheet_read_options opts;
char *tok = NULL;
lex_force_match (lexer, T_SLASH);
if (!lex_force_match_id (lexer, "TYPE"))
- return CMD_FAILURE;
+ goto error;
lex_force_match (lexer, T_EQUALS);
char *filename = NULL;
struct casereader *reader = NULL;
struct dictionary *dict = NULL;
- struct spreadsheet_read_options opts;
+
if (!parse_spreadsheet (lexer, &filename, &opts))
goto error;
goto error;
reader = ods_make_reader (spreadsheet, &opts);
dict = spreadsheet->dict;
+ ods_destroy (spreadsheet);
}
free (filename);
destroy_spreadsheet_read_info (&opts);
return CMD_SUCCESS;
}
- destroy_spreadsheet_read_info (&opts);
}
else
msg (SE, _("Unsupported TYPE %s."), tok);
-
-
error:
+ destroy_spreadsheet_read_info (&opts);
free (tok);
return CMD_FAILURE;
}
destroy_spreadsheet_read_info (struct spreadsheet_read_options *opts)
{
free (opts->cell_range);
+ free (opts->sheet_name);
}