xmlNodePtr gnc_commodity_dom_tree_create(const gnc_commodity *com) { gnc_quote_source *source; const char *string; xmlNodePtr ret; gboolean currency = gnc_commodity_is_iso(com); xmlNodePtr slotsnode = qof_instance_slots_to_dom_tree(cmdty_slots, QOF_INSTANCE(com)); if (currency && !gnc_commodity_get_quote_flag(com) && !slotsnode) return NULL; ret = xmlNewNode(NULL, BAD_CAST gnc_commodity_string); xmlSetProp(ret, BAD_CAST "version", BAD_CAST commodity_version_string); xmlAddChild(ret, text_to_dom_tree(cmdty_namespace, gnc_commodity_get_namespace_compat(com))); xmlAddChild(ret, text_to_dom_tree(cmdty_id, gnc_commodity_get_mnemonic(com))); if (!currency) { if (gnc_commodity_get_fullname(com)) { xmlAddChild(ret, text_to_dom_tree(cmdty_name, gnc_commodity_get_fullname(com))); } if (gnc_commodity_get_cusip(com) && strlen(gnc_commodity_get_cusip(com)) > 0) { xmlAddChild(ret, text_to_dom_tree( cmdty_xcode, gnc_commodity_get_cusip(com))); } xmlAddChild(ret, int_to_dom_tree(cmdty_fraction, gnc_commodity_get_fraction(com))); } if (gnc_commodity_get_quote_flag(com)) { xmlNewChild(ret, NULL, BAD_CAST cmdty_get_quotes, NULL); source = gnc_commodity_get_quote_source(com); if (source) xmlAddChild(ret, text_to_dom_tree(cmdty_quote_source, gnc_quote_source_get_internal_name(source))); string = gnc_commodity_get_quote_tz(com); if (string) xmlAddChild(ret, text_to_dom_tree(cmdty_quote_tz, string)); } if (slotsnode) xmlAddChild(ret, slotsnode); return ret; }
static /*@ dependent @*//*@ null @*/ gpointer get_quote_source_name( gpointer pObject ) { const gnc_commodity* pCommodity; g_return_val_if_fail( pObject != NULL, NULL ); // g_return_val_if_fail( GNC_IS_COMMODITY(pObject), NULL ); pCommodity = (gnc_commodity*)(pObject); return (gpointer)gnc_quote_source_get_internal_name( gnc_commodity_get_quote_source(pCommodity)); }