- struct sheet_detail *sd ;
- r->spreadsheet.n_sheets++;
- r->sheets = xrealloc (r->sheets, r->spreadsheet.n_sheets * sizeof *r->sheets);
- sd = &r->sheets[r->spreadsheet.n_sheets - 1];
- sd->start_col = sd->stop_col = sd->start_row = sd->stop_row = -1;
+ ++r->current_sheet;
+ if (r->current_sheet + 1 > r->spreadsheet.n_sheets)
+ {
+ struct sheet_detail *sd ;
+ r->sheets = xrealloc (r->sheets, (r->current_sheet + 1) * sizeof *r->sheets);
+ sd = &r->sheets[r->current_sheet];
+ sd->start_col = sd->stop_col = sd->start_row = sd->stop_row = -1;
+ r->spreadsheet.n_sheets = r->current_sheet + 1;
+ }