From: John Darrington Date: Sun, 27 Jan 2013 10:38:18 +0000 (+0100) Subject: Added a maxcol state X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=e37c7ed26e2f4ee22e2648b72f7a4fc8a5c6fa7e;p=pspp Added a maxcol state --- diff --git a/src/data/gnumeric-reader.c b/src/data/gnumeric-reader.c index 89b7271a67..aa0e161d4a 100644 --- a/src/data/gnumeric-reader.c +++ b/src/data/gnumeric-reader.c @@ -81,6 +81,7 @@ enum reader_state STATE_SHEET_START, /* Found the start of a sheet */ STATE_SHEET_NAME, /* Found the sheet name */ STATE_MAXROW, + STATE_MAXCOL, STATE_SHEET_FOUND, /* Found the sheet that we actually want */ STATE_CELLS_START, /* Found the start of the cell array */ STATE_CELL /* Found a cell */ @@ -89,7 +90,6 @@ enum reader_state struct sheet_detail { xmlChar *name; - char *range; }; @@ -106,17 +106,17 @@ struct gnumeric_reader int min_col; int node_type; int sheet_index; + + int start_col; + int stop_col; + int start_row; + int stop_row; struct sheet_detail *sheets; const xmlChar *target_sheet; int target_sheet_index; - int start_row; - int start_col; - int stop_row; - int stop_col; - struct caseproto *proto; struct dictionary *dict; struct ccase *first_case; @@ -260,6 +260,11 @@ process_node (struct gnumeric_reader *r) { r->state = STATE_MAXROW; } + else if (0 == xmlStrcasecmp (name, _xml("gnm:MaxCol")) && + XML_READER_TYPE_ELEMENT == r->node_type) + { + r->state = STATE_MAXCOL; + } else if (0 == xmlStrcasecmp (name, _xml("gnm:Sheet")) && XML_READER_TYPE_END_ELEMENT == r->node_type) { @@ -272,6 +277,24 @@ process_node (struct gnumeric_reader *r) { r->state = STATE_SHEET_FOUND; } + else if (r->node_type == XML_READER_TYPE_TEXT) + { + xmlChar *value = xmlTextReaderValue (r->xtr); + xmlFree (value); + } + break; + case STATE_MAXCOL: + if (0 == xmlStrcasecmp (name, _xml("gnm:MaxCol")) && + XML_READER_TYPE_END_ELEMENT == r->node_type) + { + r->state = STATE_SHEET_FOUND; + } + else if (r->node_type == XML_READER_TYPE_TEXT) + { + xmlChar *value = xmlTextReaderValue (r->xtr); + xmlFree (value); + } + break; case STATE_CELLS_START: if (0 == xmlStrcasecmp (name, _xml ("gnm:Cell")) && XML_READER_TYPE_ELEMENT == r->node_type) diff --git a/src/ui/gui/psppire-spreadsheet-model.c b/src/ui/gui/psppire-spreadsheet-model.c index 9bdb030b23..83c6a5b286 100644 --- a/src/ui/gui/psppire-spreadsheet-model.c +++ b/src/ui/gui/psppire-spreadsheet-model.c @@ -267,8 +267,8 @@ tree_model_get_value (GtkTreeModel * model, GtkTreeIter * iter, } break; default: - g_error ("%s:%d Invalid column in spreadsheet model", __FILE__, - __LINE__); + g_error ("%s:%d Invalid column in spreadsheet model", + __FILE__, __LINE__); break; } }