X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;ds=sidebyside;f=src%2Fdata%2Fspreadsheet-reader.c;h=86dfe48c0c43c296c2e21d4446585959a55ef018;hb=5b6f8f94c5f47443e7afe4cb4c38348d374b7dfa;hp=02e5c2d3c04b18e3cc38dcce5359ac9fbbada59d;hpb=e2bba9cb07cce1652090b1931393d5739a3a9868;p=pspp diff --git a/src/data/spreadsheet-reader.c b/src/data/spreadsheet-reader.c index 02e5c2d3c0..86dfe48c0c 100644 --- a/src/data/spreadsheet-reader.c +++ b/src/data/spreadsheet-reader.c @@ -29,17 +29,37 @@ #include #include +#ifdef ODF_READ_SUPPORT +static const bool ODF_READING_SUPPORTED = true; +#else +static const bool ODF_READING_SUPPORTED = false; +#endif + +#ifdef GNM_READ_SUPPORT +static const bool GNM_READING_SUPPORTED = true; +#else +static const bool GNM_READING_SUPPORTED = false; +#endif + +void +spreadsheet_ref (struct spreadsheet *s) +{ + s->ref_cnt++; +} -void -spreadsheet_destroy (struct spreadsheet *s) +void +spreadsheet_unref (struct spreadsheet *s) { switch (s->type) { case SPREADSHEET_ODS: - ods_destroy (s); + assert (ODF_READING_SUPPORTED); + ods_unref (s); break; + case SPREADSHEET_GNUMERIC: - gnumeric_destroy (s); + assert (GNM_READING_SUPPORTED); + gnumeric_unref (s); break; default: NOT_REACHED (); @@ -48,37 +68,46 @@ spreadsheet_destroy (struct spreadsheet *s) } -struct casereader * -spreadsheet_make_reader (struct spreadsheet *s, const struct spreadsheet_read_options *opts) +struct casereader * +spreadsheet_make_reader (struct spreadsheet *s, + const struct spreadsheet_read_options *opts) { - if ( s->type == SPREADSHEET_ODS) - return ods_make_reader (s, opts); - if ( s->type == SPREADSHEET_GNUMERIC) - return gnumeric_make_reader (s, opts); + if (ODF_READING_SUPPORTED) + if ( s->type == SPREADSHEET_ODS) + return ods_make_reader (s, opts); + + if (GNM_READING_SUPPORTED) + if ( s->type == SPREADSHEET_GNUMERIC) + return gnumeric_make_reader (s, opts); return NULL; } -const char * +const char * spreadsheet_get_sheet_name (struct spreadsheet *s, int n) { - if ( s->type == SPREADSHEET_ODS) - return ods_get_sheet_name (s, n); + if (ODF_READING_SUPPORTED) + if ( s->type == SPREADSHEET_ODS) + return ods_get_sheet_name (s, n); - if ( s->type == SPREADSHEET_GNUMERIC) - return gnumeric_get_sheet_name (s, n); + if (GNM_READING_SUPPORTED) + if ( s->type == SPREADSHEET_GNUMERIC) + return gnumeric_get_sheet_name (s, n); return NULL; } -char * + +char * spreadsheet_get_sheet_range (struct spreadsheet *s, int n) { - if ( s->type == SPREADSHEET_ODS) - return ods_get_sheet_range (s, n); + if (ODF_READING_SUPPORTED) + if ( s->type == SPREADSHEET_ODS) + return ods_get_sheet_range (s, n); - if ( s->type == SPREADSHEET_GNUMERIC) - return gnumeric_get_sheet_range (s, n); + if (GNM_READING_SUPPORTED) + if ( s->type == SPREADSHEET_GNUMERIC) + return gnumeric_get_sheet_range (s, n); return NULL; } @@ -145,7 +174,7 @@ int_to_ps26 (int i) while (i > lower + base - 1) { lower += base; - base *= RADIX; + base *= RADIX; assert (base > 0); exp++; }