#define SPREADSHEET_READ_H 1
#include <stdbool.h>
+#include <libpspp/compiler.h>
struct casereeader;
struct spreadsheet_read_options
{
char *sheet_name ; /* The name of the sheet to open (in UTF-8) */
- int sheet_index ; /* The index of the sheet to open (only used if sheet_name is NULL) */
+ int sheet_index ; /* The index of the sheet to open (only used if sheet_name is NULL).
+ The first index is 1 NOT 0 */
char *cell_range ; /* The cell range (in UTF-8) */
bool read_names ; /* True if the first row is to be used as the names of the variables */
int asw ; /* The width of string variables in the created dictionary */
int n_sheets;
/* The dictionary for client's reference.
- Client must clone if it needs a permanent or modifiable copy. */
- const struct dictionary *dict;
+ Client must ref or clone it if it needs a permanent or modifiable copy. */
+ struct dictionary *dict;
int ref_cnt;
};
struct casereader * spreadsheet_make_reader (struct spreadsheet *, const struct spreadsheet_read_options *);
-const char * spreadsheet_get_sheet_name (struct spreadsheet *s, int n);
-char * spreadsheet_get_sheet_range (struct spreadsheet *s, int n);
+const char * spreadsheet_get_sheet_name (struct spreadsheet *s, int n) OPTIMIZE(2);
+char * spreadsheet_get_sheet_range (struct spreadsheet *s, int n) OPTIMIZE(2);
char * create_cell_ref (int col0, int row0);