|
|
|
|
@ -49,23 +49,31 @@ static short module = MOD_IO;
|
|
|
|
|
|
|
|
|
|
const gchar *commodity_version_string = "2.0.0";
|
|
|
|
|
|
|
|
|
|
/* ids */
|
|
|
|
|
#define gnc_commodity_string "gnc:commodity"
|
|
|
|
|
#define cmdty_namespace "cmdty:space"
|
|
|
|
|
#define cmdty_id "cmdty:id"
|
|
|
|
|
#define cmdty_name "cmdty:name"
|
|
|
|
|
#define cmdty_xcode "cmdty:xcode"
|
|
|
|
|
#define cmdty_fraction "cmdty:fraction"
|
|
|
|
|
|
|
|
|
|
xmlNodePtr
|
|
|
|
|
gnc_commodity_dom_tree_create(const gnc_commodity *com)
|
|
|
|
|
{
|
|
|
|
|
xmlNodePtr ret;
|
|
|
|
|
|
|
|
|
|
ret = xmlNewNode(NULL, "gnc:commodity");
|
|
|
|
|
ret = xmlNewNode(NULL, gnc_commodity_string);
|
|
|
|
|
|
|
|
|
|
xmlSetProp(ret, "version", commodity_version_string);
|
|
|
|
|
|
|
|
|
|
xmlAddChild(ret, text_to_dom_tree("cmdty:space",
|
|
|
|
|
xmlAddChild(ret, text_to_dom_tree(cmdty_namespace,
|
|
|
|
|
gnc_commodity_get_namespace(com)));
|
|
|
|
|
xmlAddChild(ret, text_to_dom_tree("cmdty:id",
|
|
|
|
|
xmlAddChild(ret, text_to_dom_tree(cmdty_id,
|
|
|
|
|
gnc_commodity_get_mnemonic(com)));
|
|
|
|
|
|
|
|
|
|
if(gnc_commodity_get_fullname(com))
|
|
|
|
|
{
|
|
|
|
|
xmlAddChild(ret, text_to_dom_tree("cmdty:name",
|
|
|
|
|
xmlAddChild(ret, text_to_dom_tree(cmdty_name,
|
|
|
|
|
gnc_commodity_get_fullname(com)));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@ -73,11 +81,11 @@ gnc_commodity_dom_tree_create(const gnc_commodity *com)
|
|
|
|
|
strlen(gnc_commodity_get_exchange_code(com)) > 0)
|
|
|
|
|
{
|
|
|
|
|
xmlAddChild(ret, text_to_dom_tree(
|
|
|
|
|
"cmdty:xcode",
|
|
|
|
|
cmdty_xcode,
|
|
|
|
|
gnc_commodity_get_exchange_code(com)));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
xmlAddChild(ret, int_to_dom_tree("cmdty:fraction",
|
|
|
|
|
xmlAddChild(ret, int_to_dom_tree(cmdty_fraction,
|
|
|
|
|
gnc_commodity_get_fraction(com)));
|
|
|
|
|
|
|
|
|
|
return ret;
|
|
|
|
|
@ -92,17 +100,17 @@ struct com_char_handler
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
struct com_char_handler com_handlers[] = {
|
|
|
|
|
{ "cmdty:space", gnc_commodity_set_namespace },
|
|
|
|
|
{ "cmdty:id", gnc_commodity_set_mnemonic },
|
|
|
|
|
{ "cmdty:name", gnc_commodity_set_fullname },
|
|
|
|
|
{ "cmdty:xcode", gnc_commodity_set_exchange_code },
|
|
|
|
|
{ cmdty_namespace, gnc_commodity_set_namespace },
|
|
|
|
|
{ cmdty_id, gnc_commodity_set_mnemonic },
|
|
|
|
|
{ cmdty_name, gnc_commodity_set_fullname },
|
|
|
|
|
{ cmdty_xcode, gnc_commodity_set_exchange_code },
|
|
|
|
|
{ 0, 0 }
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
static void
|
|
|
|
|
set_commodity_value(xmlNodePtr node, gnc_commodity* com)
|
|
|
|
|
{
|
|
|
|
|
if(safe_strcmp(node->name, "cmdty:fraction") == 0)
|
|
|
|
|
if(safe_strcmp(node->name, cmdty_fraction) == 0)
|
|
|
|
|
{
|
|
|
|
|
gint64 val;
|
|
|
|
|
char *string;
|
|
|
|
|
|