From 8f5194875a0a3d41fef91825fd8378bb004d6f51 Mon Sep 17 00:00:00 2001 From: John Darrington Date: Thu, 14 Feb 2013 11:23:13 +0100 Subject: [PATCH] Use the gnumeric_reopen function --- src/data/gnumeric-reader.c | 25 +++++++++++++------------ 1 file changed, 13 insertions(+), 12 deletions(-) diff --git a/src/data/gnumeric-reader.c b/src/data/gnumeric-reader.c index 1b8357fa9d..69dd23689f 100644 --- a/src/data/gnumeric-reader.c +++ b/src/data/gnumeric-reader.c @@ -460,15 +460,18 @@ gnumeric_reopen (struct gnumeric_reader *r, const char *filename) } if (r == NULL) - r = xzalloc (sizeof *r); - - r->xtr = xtr; - r->spreadsheet.sheets = -1; - r->state = STATE_PRE_INIT; + { + r = xzalloc (sizeof *r); + r->spreadsheet.sheets = -1; + r->spreadsheet.file_name = filename; + } r->target_sheet = NULL; r->target_sheet_index = -1; + r->row = r->col = -1; + r->state = STATE_PRE_INIT; + r->xtr = xtr; /* Advance to the start of the workbook. This gives us some confidence that we are actually dealing with a gnumeric @@ -482,9 +485,6 @@ gnumeric_reopen (struct gnumeric_reader *r, const char *filename) r->spreadsheet.type = SPREADSHEET_GNUMERIC; - if (filename) - r->spreadsheet.file_name = filename; - return r; } @@ -492,10 +492,8 @@ gnumeric_reopen (struct gnumeric_reader *r, const char *filename) struct spreadsheet * gnumeric_probe (const char *filename) { - struct gnumeric_reader *r = NULL; - - r = gnumeric_reopen (r, filename); - + struct gnumeric_reader *r = gnumeric_reopen (NULL, filename); + return &r->spreadsheet; } @@ -515,6 +513,9 @@ gnumeric_make_reader (struct spreadsheet *spreadsheet, r = (struct gnumeric_reader *) (spreadsheet); + if (r->row != -1) + r = gnumeric_reopen (r, NULL); + if ( opts->cell_range ) { if ( ! convert_cell_ref (opts->cell_range, -- 2.30.2