static xmlNodePtr gnc_pricedb_to_dom_tree(const xmlChar *tag, GNCPriceDB *db) { xmlNodePtr db_xml = NULL; if (!tag) return NULL; db_xml = xmlNewNode(NULL, tag); if (!db_xml) return NULL; xmlSetProp(db_xml, BAD_CAST "version", BAD_CAST "1"); if (!gnc_pricedb_foreach_price(db, xml_add_gnc_price_adapter, db_xml, TRUE)) { xmlFreeNode(db_xml); return NULL; } /* if no children have been added just return NULL */ if (!db_xml->xmlChildrenNode) { xmlFreeNode(db_xml); return NULL; } return db_xml; }
static gboolean write_prices (GncSqlBackend* be) { GNCPriceDB* priceDB; write_objects_t data; g_return_val_if_fail (be != NULL, FALSE); priceDB = gnc_pricedb_get_db (be->book); data.be = be; data.is_ok = TRUE; return gnc_pricedb_foreach_price (priceDB, write_price, &data, TRUE); }