X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Fdata%2Fspreadsheet-reader.c;h=9cd118c758673b93eb89687124f1b95d96954f01;hb=4d5df6bcfe9611ed7bed2585e1c2a4a48ece44fb;hp=3c5de65822fa5f231fa6d09d0885ba54bcffca52;hpb=ea5c4e8eb004d6414d03b65bd3407cc7ad3e2dfd;p=pspp diff --git a/src/data/spreadsheet-reader.c b/src/data/spreadsheet-reader.c index 3c5de65822..9cd118c758 100644 --- a/src/data/spreadsheet-reader.c +++ b/src/data/spreadsheet-reader.c @@ -29,31 +29,23 @@ #include #include -#ifdef ODF_READ_SUPPORT -const bool ODF_READING_SUPPORTED = true; -#else -const bool ODF_READING_SUPPORTED = false; -#endif - -#ifdef GNM_READ_SUPPORT -const bool GNM_READING_SUPPORTED = true; -#else -const bool GNM_READING_SUPPORTED = false; -#endif - -void -spreadsheet_destroy (struct spreadsheet *s) +void +spreadsheet_ref (struct spreadsheet *s) +{ + s->ref_cnt++; +} + +void +spreadsheet_unref (struct spreadsheet *s) { switch (s->type) { case SPREADSHEET_ODS: - assert (ODF_READING_SUPPORTED); - ods_destroy (s); + ods_unref (s); break; case SPREADSHEET_GNUMERIC: - assert (GNM_READING_SUPPORTED); - gnumeric_destroy (s); + gnumeric_unref (s); break; default: NOT_REACHED (); @@ -62,46 +54,40 @@ spreadsheet_destroy (struct spreadsheet *s) } -struct casereader * +struct casereader * spreadsheet_make_reader (struct spreadsheet *s, const struct spreadsheet_read_options *opts) { - if (ODF_READING_SUPPORTED) - if ( s->type == SPREADSHEET_ODS) - return ods_make_reader (s, opts); + 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); + 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 (ODF_READING_SUPPORTED) - if ( s->type == SPREADSHEET_ODS) - return ods_get_sheet_name (s, n); + if (s->type == SPREADSHEET_ODS) + return ods_get_sheet_name (s, n); - if (GNM_READING_SUPPORTED) - if ( s->type == SPREADSHEET_GNUMERIC) - return gnumeric_get_sheet_name (s, n); + 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 (ODF_READING_SUPPORTED) - if ( s->type == SPREADSHEET_ODS) - return ods_get_sheet_range (s, n); + if (s->type == SPREADSHEET_ODS) + return ods_get_sheet_range (s, n); - if (GNM_READING_SUPPORTED) - if ( s->type == SPREADSHEET_GNUMERIC) - return gnumeric_get_sheet_range (s, n); + if (s->type == SPREADSHEET_GNUMERIC) + return gnumeric_get_sheet_range (s, n); return NULL; } @@ -168,7 +154,7 @@ int_to_ps26 (int i) while (i > lower + base - 1) { lower += base; - base *= RADIX; + base *= RADIX; assert (base > 0); exp++; } @@ -199,8 +185,8 @@ create_cell_ref (int col0, int row0) char *cs0 ; char *s ; - if ( col0 < 0) return NULL; - if ( row0 < 0) return NULL; + if (col0 < 0) return NULL; + if (row0 < 0) return NULL; cs0 = int_to_ps26 (col0); s = c_xasprintf ("%s%d", cs0, row0 + 1); @@ -243,7 +229,7 @@ convert_cell_ref (const char *ref, int n = sscanf (ref, "%4[a-zA-Z]%d:%4[a-zA-Z]%d", startcol, &startrow, stopcol, &stoprow); - if ( n != 4) + if (n != 4) return false; str_uppercase (startcol);