rel->type = g_strdup (type); rel->target = g_strdup (target); rel->is_extern = is_extern; /* Make sure we don't point to a freed rel in the type hash. */ orel = g_hash_table_lookup (rels->by_type, type); if (orel) g_hash_table_remove (rels->by_type, orel->type); g_hash_table_replace (rels->by_type, rel->type, rel); /* This will free a duplicate rel, so do this last. */ g_hash_table_replace (rels->by_id, rel->id, rel); } static GsfXMLInNode const open_pkg_rel_dtd[] = { GSF_XML_IN_NODE_FULL (START, START, -1, NULL, GSF_XML_NO_CONTENT, FALSE, TRUE, NULL, NULL, 0), GSF_XML_IN_NODE_FULL (START, RELS, OPEN_PKG_NS_REL, "Relationships", GSF_XML_NO_CONTENT, FALSE, TRUE, NULL, NULL, 0), GSF_XML_IN_NODE (RELS, REL, OPEN_PKG_NS_REL, "Relationship", GSF_XML_NO_CONTENT, open_pkg_rel_begin, NULL), GSF_XML_IN_NODE_END }; /** * gsf_open_pkg_rel_is_extern: * @rel: #GsfOpenPkgRel * * Returns: %TRUE if @rel has mode 'External' **/ gboolean gsf_open_pkg_rel_is_extern (GsfOpenPkgRel const *rel) {
if (GMR == xin->node->ns_id && 0 == strcmp (xin->node->id, "MEMBERS_MEMBER")) { char const *type_name = gsf_xml_in_check_ns (xin, CXML2C (elem), GNM); if (type_name && strcmp (type_name, "Style") == 0) { gnm_xml_prep_style_parser (xin, attrs, sax_style_handler, NULL); return TRUE; } } return FALSE; } static GsfXMLInNode template_dtd[] = { GSF_XML_IN_NODE_FULL (START, START, -1, NULL, GSF_XML_NO_CONTENT, FALSE, TRUE, NULL, NULL, 0), GSF_XML_IN_NODE (START, TEMPLATE, GMR, "FormatTemplate", GSF_XML_NO_CONTENT, NULL, NULL), GSF_XML_IN_NODE (TEMPLATE, TEMPLATE_INFORMATION, GMR, "Information", GSF_XML_NO_CONTENT, sax_information, NULL), GSF_XML_IN_NODE (TEMPLATE, TEMPLATE_MEMBERS, GMR, "Members", GSF_XML_NO_CONTENT, NULL, sax_members_end), GSF_XML_IN_NODE (TEMPLATE_MEMBERS, MEMBERS_MEMBER, GMR, "Member", GSF_XML_NO_CONTENT, sax_member, sax_member_end), GSF_XML_IN_NODE (MEMBERS_MEMBER, MEMBER_ROW, GMR, "Row", GSF_XML_NO_CONTENT, NULL, NULL), GSF_XML_IN_NODE (MEMBER_ROW, ROW_PLACEMENT, GMR, "Placement", GSF_XML_NO_CONTENT, sax_row_placement, NULL), GSF_XML_IN_NODE (MEMBER_ROW, ROW_DIMENSIONS, GMR, "Dimensions", GSF_XML_NO_CONTENT, sax_row_dimensions, NULL), GSF_XML_IN_NODE (MEMBERS_MEMBER, MEMBER_COL, GMR, "Col", GSF_XML_NO_CONTENT, NULL, NULL), GSF_XML_IN_NODE (MEMBER_COL, COL_PLACEMENT, GMR, "Placement", GSF_XML_NO_CONTENT, sax_col_placement, NULL), GSF_XML_IN_NODE (MEMBER_COL, COL_DIMENSIONS, GMR, "Dimensions", GSF_XML_NO_CONTENT, sax_col_dimensions, NULL), GSF_XML_IN_NODE (MEMBERS_MEMBER, MEMBER_FREQUENCY, GMR, "Frequency", GSF_XML_NO_CONTENT, sax_frequency, NULL), GSF_XML_IN_NODE_END }; /**