"Fossies" - the Fresh Open Source Software Archive  

Source code changes of the file "plugins/excel/xlsx-read.c" between
gnumeric-1.12.49.tar.xz and gnumeric-1.12.50.tar.xz

About: Gnumeric - The GNOME office spreadsheet.

xlsx-read.c  (gnumeric-1.12.49.tar.xz):xlsx-read.c  (gnumeric-1.12.50.tar.xz)
skipping to change at line 58 skipping to change at line 58
#include <workbook.h> #include <workbook.h>
#include <gutils.h> #include <gutils.h>
#include <graph.h> #include <graph.h>
#include <sheet-object-graph.h> #include <sheet-object-graph.h>
#include <sheet-object-cell-comment.h> #include <sheet-object-cell-comment.h>
#include <gnm-sheet-slicer.h> #include <gnm-sheet-slicer.h>
#include <gnm-so-filled.h> #include <gnm-so-filled.h>
#include <gnm-so-line.h> #include <gnm-so-line.h>
#include <sheet-object-image.h> #include <sheet-object-image.h>
#include <number-match.h> #include <number-match.h>
#include <func.h>
#include "dead-kittens.h" #include "dead-kittens.h"
#include <goffice/goffice.h> #include <goffice/goffice.h>
#include <goffice-data.h> /* MOVE TO GOFFCE with slicer code */ #include <goffice-data.h> /* MOVE TO GOFFCE with slicer code */
#include <go-data-slicer-field.h> /* MOVE TO GOFFCE with slicer code */ #include <go-data-slicer-field.h> /* MOVE TO GOFFCE with slicer code */
#include <gsf/gsf-libxml.h> #include <gsf/gsf-libxml.h>
#include <gsf/gsf-input.h> #include <gsf/gsf-input.h>
#include <gsf/gsf-infile.h> #include <gsf/gsf-infile.h>
skipping to change at line 288 skipping to change at line 289
typedef struct { typedef struct {
GOString *str; GOString *str;
GOFormat *markup; GOFormat *markup;
} XLSXStr; } XLSXStr;
static GsfXMLInNS const xlsx_ns[] = { static GsfXMLInNS const xlsx_ns[] = {
GSF_XML_IN_NS (XL_NS_SS, "http://schemas.openxmlformats.org/spread sheetml/2006/main"), /* Office 12 */ GSF_XML_IN_NS (XL_NS_SS, "http://schemas.openxmlformats.org/spread sheetml/2006/main"), /* Office 12 */
GSF_XML_IN_NS (XL_NS_SS, "http://schemas.openxmlformats.org/spread sheetml/2006/7/main"), /* Office 12 BETA-2 Technical Refresh */ GSF_XML_IN_NS (XL_NS_SS, "http://schemas.openxmlformats.org/spread sheetml/2006/7/main"), /* Office 12 BETA-2 Technical Refresh */
GSF_XML_IN_NS (XL_NS_SS, "http://schemas.openxmlformats.org/spread sheetml/2006/5/main"), /* Office 12 BETA-2 */ GSF_XML_IN_NS (XL_NS_SS, "http://schemas.openxmlformats.org/spread sheetml/2006/5/main"), /* Office 12 BETA-2 */
GSF_XML_IN_NS (XL_NS_SS, "http://schemas.microsoft.com/office/exce l/2006/2"), /* Office 12 BETA-1 Technical Refresh */ GSF_XML_IN_NS (XL_NS_SS, "http://schemas.microsoft.com/office/exce l/2006/2"), /* Office 12 BETA-1 Technical Refresh */
GSF_XML_IN_NS (XL_NS_MSSS, "http://schemas.microsoft.com/office/exce
l/2006/main"), /* Office 14??? */
GSF_XML_IN_NS (XL_NS_SS, "http://schemas.microsoft.com/office/spre
adsheetml/2009/9/main"), /* Office 14??? */
GSF_XML_IN_NS (XL_NS_SS_DRAW, "http://schemas.openxmlformats.org/drawin gml/2006/spreadsheetDrawing"), /* Office 12 BETA-2 */ GSF_XML_IN_NS (XL_NS_SS_DRAW, "http://schemas.openxmlformats.org/drawin gml/2006/spreadsheetDrawing"), /* Office 12 BETA-2 */
GSF_XML_IN_NS (XL_NS_SS_DRAW, "http://schemas.openxmlformats.org/drawin gml/2006/3/spreadsheetDrawing"), /* Office 12 BETA-2 Technical Refresh */ GSF_XML_IN_NS (XL_NS_SS_DRAW, "http://schemas.openxmlformats.org/drawin gml/2006/3/spreadsheetDrawing"), /* Office 12 BETA-2 Technical Refresh */
GSF_XML_IN_NS (XL_NS_CHART, "http://schemas.openxmlformats.org/drawin gml/2006/3/chart"), /* Office 12 BETA-2 */ GSF_XML_IN_NS (XL_NS_CHART, "http://schemas.openxmlformats.org/drawin gml/2006/3/chart"), /* Office 12 BETA-2 */
GSF_XML_IN_NS (XL_NS_CHART, "http://schemas.openxmlformats.org/drawin gml/2006/chart"), /* Office 12 BETA-2 Technical Refresh */ GSF_XML_IN_NS (XL_NS_CHART, "http://schemas.openxmlformats.org/drawin gml/2006/chart"), /* Office 12 BETA-2 Technical Refresh */
GSF_XML_IN_NS (XL_NS_CHART_DRAW, "http://schemas.openxmlformats.org/dr awingml/2006/chartDrawing"), GSF_XML_IN_NS (XL_NS_CHART_DRAW, "http://schemas.openxmlformats.org/dr awingml/2006/chartDrawing"),
GSF_XML_IN_NS (XL_NS_DRAW, "http://schemas.openxmlformats.org/drawin gml/2006/3/main"), /* Office 12 BETA-2 */ GSF_XML_IN_NS (XL_NS_DRAW, "http://schemas.openxmlformats.org/drawin gml/2006/3/main"), /* Office 12 BETA-2 */
GSF_XML_IN_NS (XL_NS_DRAW, "http://schemas.openxmlformats.org/drawin gml/2006/main"), /* Office 12 BETA-2 Technical Refresh */ GSF_XML_IN_NS (XL_NS_DRAW, "http://schemas.openxmlformats.org/drawin gml/2006/main"), /* Office 12 BETA-2 Technical Refresh */
GSF_XML_IN_NS (XL_NS_GNM_EXT, "http://www.gnumeric.org/ext/spreadsheetm l"), GSF_XML_IN_NS (XL_NS_GNM_EXT, "http://www.gnumeric.org/ext/spreadsheetm l"),
GSF_XML_IN_NS (XL_NS_DOC_REL, "http://schemas.openxmlformats.org/office Document/2006/relationships"), GSF_XML_IN_NS (XL_NS_DOC_REL, "http://schemas.openxmlformats.org/office Document/2006/relationships"),
GSF_XML_IN_NS (XL_NS_PKG_REL, "http://schemas.openxmlformats.org/packag e/2006/relationships"), GSF_XML_IN_NS (XL_NS_PKG_REL, "http://schemas.openxmlformats.org/packag e/2006/relationships"),
skipping to change at line 1196 skipping to change at line 1199
* = IF(.... * = IF(....
* = CHOOSE(... * = CHOOSE(...
* I wonder if it is related to some of the funky old * I wonder if it is related to some of the funky old
* optimizations in * xls ? */ * optimizations in * xls ? */
while (' ' == *expr_str) while (' ' == *expr_str)
expr_str++; expr_str++;
texpr = gnm_expr_parse_str (expr_str, pp, texpr = gnm_expr_parse_str (expr_str, pp,
GNM_EXPR_PARSE_DEFAULT, state->convs, GNM_EXPR_PARSE_DEFAULT, state->convs,
parse_error_init (&err)); parse_error_init (&err));
if (NULL == texpr) if (NULL == texpr) {
xlsx_warning (xin, "At %s: '%s' %s", xlsx_warning (xin, "At %s: '%s' %s",
parsepos_as_string (pp), parsepos_as_string (pp),
expr_str, err.err->message); expr_str, err.err->message);
texpr = gnm_expr_top_new
(gnm_expr_new_funcall1
(gnm_func_lookup_or_add_placeholder ("ERROR"),
gnm_expr_new_constant
(value_new_string (expr_str))));
}
parse_error_free (&err); parse_error_free (&err);
return texpr; return texpr;
} }
/* Returns: a GSList of GnmRange in _reverse_ order /* Returns: a GSList of GnmRange in _reverse_ order
* caller frees the list and the content */ * caller frees the list and the content */
static GSList * static GSList *
xlsx_parse_sqref (GsfXMLIn *xin, xmlChar const *refs) xlsx_parse_sqref (GsfXMLIn *xin, xmlChar const *refs)
{ {
skipping to change at line 2227 skipping to change at line 2236
else if (0 == strcmp (attrs[0], "promptTitle")) else if (0 == strcmp (attrs[0], "promptTitle"))
promptTitle = attrs[1]; promptTitle = attrs[1];
else if (0 == strcmp (attrs[0], "prompt")) else if (0 == strcmp (attrs[0], "prompt"))
prompt = attrs[1]; prompt = attrs[1];
} }
/* order matters, we need the 1st item */ /* order matters, we need the 1st item */
state->validation_regions = g_slist_reverse ( state->validation_regions = g_slist_reverse (
xlsx_parse_sqref (xin, refs)); xlsx_parse_sqref (xin, refs));
if (NULL == state->validation_regions) if (state->validation_regions) {
return;
if (showErrorMessage) {
GnmRange const *r = state->validation_regions->data; GnmRange const *r = state->validation_regions->data;
state->pos = r->start; state->pos = r->start;
} else {
state->pos.col = state->pos.row = 0;
}
if (showErrorMessage) {
state->validation = gnm_validation_new state->validation = gnm_validation_new
(val_style, val_type, val_op, (val_style, val_type, val_op,
state->sheet, state->sheet,
errorTitle, error, errorTitle, error,
NULL, NULL, allowBlank, showDropDown); NULL, NULL, allowBlank, !showDropDown);
// Note: inverted sense of showDropDown
} }
if (showInputMessage && (NULL != promptTitle || NULL != prompt)) if (showInputMessage && (NULL != promptTitle || NULL != prompt))
state->input_msg = gnm_input_msg_new (prompt, promptTitle); state->input_msg = gnm_input_msg_new (prompt, promptTitle);
} }
static void static void
xlsx_CT_DataValidation_end (GsfXMLIn *xin, G_GNUC_UNUSED GsfXMLBlob *blob) xlsx_CT_DataValidation_end (GsfXMLIn *xin, G_GNUC_UNUSED GsfXMLBlob *blob)
{ {
XLSXReadState *state = (XLSXReadState *)xin->user_state; XLSXReadState *state = (XLSXReadState *)xin->user_state;
skipping to change at line 2288 skipping to change at line 2300
g_free (ptr->data); g_free (ptr->data);
} }
if (NULL != style) if (NULL != style)
gnm_style_unref (style); gnm_style_unref (style);
g_slist_free (state->validation_regions); g_slist_free (state->validation_regions);
state->validation_regions = NULL; state->validation_regions = NULL;
state->pos.col = state->pos.row = -1; state->pos.col = state->pos.row = -1;
} }
static void static void
xlsx_CT_DataValidation_sqref_end (GsfXMLIn *xin, G_GNUC_UNUSED GsfXMLBlob *blob)
{
XLSXReadState *state = (XLSXReadState *)xin->user_state;
const char *s = xin->content->str;
state->validation_regions =
g_slist_concat (
g_slist_reverse (xlsx_parse_sqref (xin, s)),
state->validation_regions);
}
static void
xlsx_validation_expr (GsfXMLIn *xin, G_GNUC_UNUSED GsfXMLBlob *blob) xlsx_validation_expr (GsfXMLIn *xin, G_GNUC_UNUSED GsfXMLBlob *blob)
{ {
XLSXReadState *state = (XLSXReadState *)xin->user_state; XLSXReadState *state = (XLSXReadState *)xin->user_state;
GnmParsePos pp; GnmParsePos pp;
GnmExprTop const *texpr; GnmExprTop const *texpr;
int i = xin->node->user_data.v_int;
if (state->validation == NULL) if (state->validation == NULL)
return; return;
/* Sneaky buggers, parse relative to the 1st sqRef */ /* Sneaky buggers, parse relative to the 1st sqRef */
parse_pos_init (&pp, NULL, state->sheet, parse_pos_init (&pp, NULL, state->sheet,
state->pos.col, state->pos.row); state->pos.col, state->pos.row);
texpr = xlsx_parse_expr (xin, xin->content->str, &pp); texpr = xlsx_parse_expr (xin, xin->content->str, &pp);
if (NULL != texpr) { if (NULL != texpr) {
gnm_validation_set_expr (state->validation, texpr, gnm_validation_set_expr (state->validation, texpr, i);
xin->node->user_data.v_int);
gnm_expr_top_unref (texpr); gnm_expr_top_unref (texpr);
} }
} }
static void static void
xlsx_CT_AutoFilter_begin (GsfXMLIn *xin, xmlChar const **attrs) xlsx_CT_AutoFilter_begin (GsfXMLIn *xin, xmlChar const **attrs)
{ {
XLSXReadState *state = (XLSXReadState *)xin->user_state; XLSXReadState *state = (XLSXReadState *)xin->user_state;
GnmRange r; GnmRange r;
skipping to change at line 3171 skipping to change at line 3195
if (NULL != extern_id) { if (NULL != extern_id) {
GsfOpenPkgRel const *rel = gsf_open_pkg_lookup_rel_by_id ( GsfOpenPkgRel const *rel = gsf_open_pkg_lookup_rel_by_id (
gsf_xml_in_get_input (xin), extern_id); gsf_xml_in_get_input (xin), extern_id);
if (NULL != rel && if (NULL != rel &&
gsf_open_pkg_rel_is_extern (rel) && gsf_open_pkg_rel_is_extern (rel) &&
0 == strcmp (gsf_open_pkg_rel_get_type (rel), 0 == strcmp (gsf_open_pkg_rel_get_type (rel),
"http://schemas.openxmlformats.org/officeDocumen t/2006/relationships/hyperlink")) { "http://schemas.openxmlformats.org/officeDocumen t/2006/relationships/hyperlink")) {
const char *url = gsf_open_pkg_rel_get_target (rel); const char *url = gsf_open_pkg_rel_get_target (rel);
if (url) { if (url) {
if (0 == strncmp (url, "mailto:", 7)) if (!g_ascii_strncasecmp (url, "mailto:", 7))
link_type = gnm_hlink_email_get_type (); link_type = gnm_hlink_email_get_type ();
else else if (!g_ascii_strncasecmp (url, "http:", 5) |
|
!g_ascii_strncasecmp (url, "https:", 6))
link_type = gnm_hlink_url_get_type (); link_type = gnm_hlink_url_get_type ();
else
link_type = gnm_hlink_external_get_type (
);
target = location target = location
? g_strconcat (url, "#", location, NULL) ? g_strconcat (url, "#", location, NULL)
: g_strdup (url); : g_strdup (url);
} }
} }
} else if (location) { } else if (location) {
target = g_strdup (location); target = g_strdup (location);
link_type = gnm_hlink_cur_wb_get_type (); link_type = gnm_hlink_cur_wb_get_type ();
} }
skipping to change at line 3238 skipping to change at line 3265
_("Encountered uninterpretable \"ext\" exte nsion in namespace \"%s\""), _("Encountered uninterpretable \"ext\" exte nsion in namespace \"%s\""),
attrs[1]); attrs[1]);
#endif #endif
warned = TRUE; warned = TRUE;
} }
} }
if (!warned) if (!warned)
xlsx_warning (xin, xlsx_warning (xin,
_("Encountered uninterpretable \"ext\" extension wi th missing namespace")); _("Encountered uninterpretable \"ext\" extension wi th missing namespace"));
gsf_xml_in_set_silent_unknowns (xin, TRUE); if (!gnm_debug_flag ("xlsxext"))
gsf_xml_in_set_silent_unknowns (xin, TRUE);
} }
static void static void
xlsx_ext_end (GsfXMLIn *xin, G_GNUC_UNUSED GsfXMLBlob *blob) xlsx_ext_end (GsfXMLIn *xin, G_GNUC_UNUSED GsfXMLBlob *blob)
{ {
gsf_xml_in_set_silent_unknowns (xin, FALSE); gsf_xml_in_set_silent_unknowns (xin, FALSE);
} }
static void static void
add_attr (XLSXReadState *state, PangoAttribute *attr) add_attr (XLSXReadState *state, PangoAttribute *attr)
skipping to change at line 3437 skipping to change at line 3465
GSF_XML_IN_NODE (RICH_PROPS, RICH_EXTEND, XL_NS_SS, "extend", GSF_XML _NO_CONTENT, NULL, NULL), \ GSF_XML_IN_NODE (RICH_PROPS, RICH_EXTEND, XL_NS_SS, "extend", GSF_XML _NO_CONTENT, NULL, NULL), \
GSF_XML_IN_NODE (RICH_PROPS, RICH_COLOR, XL_NS_SS, "color", GSF_XML_N O_CONTENT, xlsx_run_color, NULL), \ GSF_XML_IN_NODE (RICH_PROPS, RICH_COLOR, XL_NS_SS, "color", GSF_XML_N O_CONTENT, xlsx_run_color, NULL), \
GSF_XML_IN_NODE (RICH_PROPS, RICH_SZ, XL_NS_SS, "sz", GSF_XML_NO_CONT ENT, xlsx_run_size, NULL), \ GSF_XML_IN_NODE (RICH_PROPS, RICH_SZ, XL_NS_SS, "sz", GSF_XML_NO_CONT ENT, xlsx_run_size, NULL), \
GSF_XML_IN_NODE (RICH_PROPS, RICH_ULINE, XL_NS_SS, "u", GSF_XML_NO_CO NTENT, xlsx_run_underline, NULL), \ GSF_XML_IN_NODE (RICH_PROPS, RICH_ULINE, XL_NS_SS, "u", GSF_XML_NO_CO NTENT, xlsx_run_underline, NULL), \
GSF_XML_IN_NODE (RICH_PROPS, RICH_VALIGN, XL_NS_SS, "vertAlign", GSF_ XML_NO_CONTENT, xlsx_run_vertalign, NULL), \ GSF_XML_IN_NODE (RICH_PROPS, RICH_VALIGN, XL_NS_SS, "vertAlign", GSF_ XML_NO_CONTENT, xlsx_run_vertalign, NULL), \
GSF_XML_IN_NODE (RICH_PROPS, RICH_SCHEME, XL_NS_SS, "scheme", GSF_XML _NO_CONTENT, NULL, NULL) GSF_XML_IN_NODE (RICH_PROPS, RICH_SCHEME, XL_NS_SS, "scheme", GSF_XML _NO_CONTENT, NULL, NULL)
static GsfXMLInNode const xlsx_sheet_dtd[] = { static GsfXMLInNode const xlsx_sheet_dtd[] = {
GSF_XML_IN_NODE_FULL (START, START, -1, NULL, GSF_XML_NO_CONTENT, FALSE, TRUE, N ULL, NULL, 0), GSF_XML_IN_NODE_FULL (START, START, -1, NULL, GSF_XML_NO_CONTENT, FALSE, TRUE, N ULL, NULL, 0),
GSF_XML_IN_NODE_FULL (START, SHEET, XL_NS_SS, "worksheet", GSF_XML_NO_CONTENT, F ALSE, TRUE, NULL, &xlsx_CT_worksheet, 0), GSF_XML_IN_NODE_FULL (START, SHEET, XL_NS_SS, "worksheet", GSF_XML_NO_CONTENT, F ALSE, TRUE, NULL, &xlsx_CT_worksheet, 0),
GSF_XML_IN_NODE (SHEET, EXTLST, XL_NS_SS, "extLst", GSF_XML_NO_CONTENT, NULL, GSF_XML_IN_NODE_FULL (SHEET, EXTLST, XL_NS_SS, "extLst", GSF_XML_NO_CONTENT, F
NULL), ALSE, TRUE, NULL, NULL, 0),
GSF_XML_IN_NODE (EXTLST, EXTITEM, XL_NS_SS, "ext", GSF_XML_NO_CONTENT, &xlsx GSF_XML_IN_NODE_FULL (EXTLST, EXTITEM, XL_NS_SS, "ext", GSF_XML_NO_CONTENT,
_ext_begin, &xlsx_ext_end), FALSE, TRUE, &xlsx_ext_begin, &xlsx_ext_end, 0),
GSF_XML_IN_NODE (EXTITEM, EXT_TABTEXTCOLOR, XL_NS_GNM_EXT, "tabTextColor", GSF_XML_NO_CONTENT, &xlsx_ext_tabtextcolor, NULL), GSF_XML_IN_NODE (EXTITEM, EXT_TABTEXTCOLOR, XL_NS_GNM_EXT, "tabTextColor", GSF_XML_NO_CONTENT, &xlsx_ext_tabtextcolor, NULL),
GSF_XML_IN_NODE_FULL (EXTITEM, EXT_DataValidations, XL_NS_SS, "dataValidat
ions", GSF_XML_NO_CONTENT, FALSE, TRUE, NULL, NULL, 0),
GSF_XML_IN_NODE (EXT_DataValidations, EXT_DataValidation, XL_NS_SS, "data
Validation", GSF_XML_NO_CONTENT,
&xlsx_CT_DataValidation_begin, &xlsx_CT_DataValidation_e
nd),
GSF_XML_IN_NODE_FULL (EXT_DataValidation, DATAVAL_FORMULA1, XL_NS_SS, "
formula1", GSF_XML_NO_CONTENT, FALSE, FALSE, NULL, NULL, 0),
GSF_XML_IN_NODE_FULL (DATAVAL_FORMULA1, DATAVAL_F1, XL_NS_MSSS, "f",
GSF_XML_CONTENT, FALSE, FALSE, NULL, &xlsx_validation_expr, 0),
GSF_XML_IN_NODE_FULL (EXT_DataValidation, DATAVAL_FORMULA2, XL_NS_SS, "
formula2", GSF_XML_NO_CONTENT, FALSE, FALSE, NULL, NULL, 1),
GSF_XML_IN_NODE_FULL (DATAVAL_FORMULA2, DATAVAL_F2, XL_NS_MSSS, "f",
GSF_XML_CONTENT, FALSE, FALSE, NULL, &xlsx_validation_expr, 1),
GSF_XML_IN_NODE (EXT_DataValidation, DATAVAL_SQREF, XL_NS_MSSS, "sqref"
, GSF_XML_CONTENT, NULL, xlsx_CT_DataValidation_sqref_end),
GSF_XML_IN_NODE (SHEET, PROPS, XL_NS_SS, "sheetPr", GSF_XML_NO_CONTENT, &xlsx_ CT_SheetPr, NULL), GSF_XML_IN_NODE (SHEET, PROPS, XL_NS_SS, "sheetPr", GSF_XML_NO_CONTENT, &xlsx_ CT_SheetPr, NULL),
GSF_XML_IN_NODE (PROPS, OUTLINE_PROPS, XL_NS_SS, "outlinePr", GSF_XML_NO_CON TENT, NULL, NULL), GSF_XML_IN_NODE (PROPS, OUTLINE_PROPS, XL_NS_SS, "outlinePr", GSF_XML_NO_CON TENT, NULL, NULL),
GSF_XML_IN_NODE (PROPS, TAB_COLOR, XL_NS_SS, "tabColor", GSF_XML_NO_CONTENT, &xlsx_sheet_tabcolor, NULL), GSF_XML_IN_NODE (PROPS, TAB_COLOR, XL_NS_SS, "tabColor", GSF_XML_NO_CONTENT, &xlsx_sheet_tabcolor, NULL),
GSF_XML_IN_NODE (PROPS, PAGE_SETUP, XL_NS_SS, "pageSetUpPr", GSF_XML_NO_CONT ENT, &xlsx_sheet_page_setup, NULL), GSF_XML_IN_NODE (PROPS, PAGE_SETUP, XL_NS_SS, "pageSetUpPr", GSF_XML_NO_CONT ENT, &xlsx_sheet_page_setup, NULL),
GSF_XML_IN_NODE (SHEET, DIMENSION, XL_NS_SS, "dimension", GSF_XML_NO_CONTENT, NULL, NULL), GSF_XML_IN_NODE (SHEET, DIMENSION, XL_NS_SS, "dimension", GSF_XML_NO_CONTENT, NULL, NULL),
GSF_XML_IN_NODE (SHEET, VIEWS, XL_NS_SS, "sheetViews", GSF_XML_NO_CONTENT, NUL L, NULL), GSF_XML_IN_NODE (SHEET, VIEWS, XL_NS_SS, "sheetViews", GSF_XML_NO_CONTENT, NUL L, NULL),
GSF_XML_IN_NODE (VIEWS, VIEW, XL_NS_SS, "sheetView", GSF_XML_NO_CONTENT, &x lsx_CT_SheetView_begin, &xlsx_CT_SheetView_end), GSF_XML_IN_NODE (VIEWS, VIEW, XL_NS_SS, "sheetView", GSF_XML_NO_CONTENT, &x lsx_CT_SheetView_begin, &xlsx_CT_SheetView_end),
GSF_XML_IN_NODE (VIEW, PANE, XL_NS_SS, "pane", GSF_XML_NO_CONTENT, &xlsx_ CT_Pane, NULL), GSF_XML_IN_NODE (VIEW, PANE, XL_NS_SS, "pane", GSF_XML_NO_CONTENT, &xlsx_ CT_Pane, NULL),
GSF_XML_IN_NODE (VIEW, SELECTION, XL_NS_SS, "selection", GSF_XML_NO_CONTE NT, &xlsx_CT_Selection, NULL), GSF_XML_IN_NODE (VIEW, SELECTION, XL_NS_SS, "selection", GSF_XML_NO_CONTE NT, &xlsx_CT_Selection, NULL),
GSF_XML_IN_NODE (VIEW, PIV_SELECTION, XL_NS_SS, "pivotSelection", GSF_XML _NO_CONTENT, &xlsx_CT_PivotSelection, NULL), GSF_XML_IN_NODE (VIEW, PIV_SELECTION, XL_NS_SS, "pivotSelection", GSF_XML _NO_CONTENT, &xlsx_CT_PivotSelection, NULL),
 End of changes. 16 change blocks. 
15 lines changed or deleted 63 lines changed or added

Home  |  About  |  Features  |  All  |  Newest  |  Dox  |  Diffs  |  RSS Feeds  |  Screenshots  |  Comments  |  Imprint  |  Privacy  |  HTTP(S)