2001-05-09 23:03:36 +00:00
|
|
|
/********************************************************************\
|
|
|
|
|
* gnc-account-xml-v2.c -- account xml i/o implementation *
|
|
|
|
|
* *
|
|
|
|
|
* Copyright (C) 2001 James LewisMoss <dres@debian.org> *
|
|
|
|
|
* *
|
|
|
|
|
* This program is free software; you can redistribute it and/or *
|
|
|
|
|
* modify it under the terms of the GNU General Public License as *
|
|
|
|
|
* published by the Free Software Foundation; either version 2 of *
|
|
|
|
|
* the License, or (at your option) any later version. *
|
|
|
|
|
* *
|
|
|
|
|
* This program is distributed in the hope that it will be useful, *
|
|
|
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
|
|
|
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
|
|
|
|
|
* GNU General Public License for more details. *
|
|
|
|
|
* *
|
|
|
|
|
* You should have received a copy of the GNU General Public License*
|
|
|
|
|
* along with this program; if not, contact: *
|
|
|
|
|
* *
|
|
|
|
|
* Free Software Foundation Voice: +1-617-542-5942 *
|
|
|
|
|
* 59 Temple Place - Suite 330 Fax: +1-617-542-2652 *
|
|
|
|
|
* Boston, MA 02111-1307, USA gnu@gnu.org *
|
|
|
|
|
* *
|
|
|
|
|
\********************************************************************/
|
|
|
|
|
|
2001-02-12 22:35:20 +00:00
|
|
|
#include "config.h"
|
|
|
|
|
|
|
|
|
|
#include <glib.h>
|
|
|
|
|
#include <string.h>
|
|
|
|
|
|
|
|
|
|
#include "gnc-xml-helper.h"
|
|
|
|
|
|
|
|
|
|
#include "sixtp.h"
|
|
|
|
|
#include "sixtp-utils.h"
|
|
|
|
|
#include "sixtp-parsers.h"
|
2001-02-15 00:17:57 +00:00
|
|
|
#include "sixtp-utils.h"
|
2001-02-22 07:29:05 +00:00
|
|
|
#include "sixtp-dom-parsers.h"
|
|
|
|
|
#include "sixtp-dom-generators.h"
|
|
|
|
|
|
|
|
|
|
#include "gnc-xml.h"
|
2001-04-05 21:37:55 +00:00
|
|
|
#include "io-gncxml-gen.h"
|
2001-02-12 22:35:20 +00:00
|
|
|
|
|
|
|
|
#include "sixtp-dom-parsers.h"
|
|
|
|
|
#include "AccountP.h"
|
|
|
|
|
#include "Account.h"
|
|
|
|
|
#include "Group.h"
|
|
|
|
|
|
2001-02-22 07:29:05 +00:00
|
|
|
const gchar *account_version_string = "2.0.0";
|
|
|
|
|
|
2001-02-28 08:06:50 +00:00
|
|
|
/* ids */
|
2001-05-15 15:52:22 +00:00
|
|
|
#define gnc_account_string "gnc:account"
|
|
|
|
|
#define act_name_string "act:name"
|
|
|
|
|
#define act_id_string "act:id"
|
|
|
|
|
#define act_type_string "act:type"
|
|
|
|
|
#define act_currency_string "act:currency"
|
|
|
|
|
#define act_currency_scu_string "act:currency-scu"
|
|
|
|
|
#define act_code_string "act:code"
|
|
|
|
|
#define act_description_string "act:description"
|
|
|
|
|
#define act_security_string "act:security"
|
|
|
|
|
#define act_security_scu_string "act:security-scu"
|
|
|
|
|
#define act_slots_string "act:slots"
|
|
|
|
|
#define act_parent_string "act:parent"
|
2001-02-28 08:06:50 +00:00
|
|
|
|
2001-02-12 22:35:20 +00:00
|
|
|
xmlNodePtr
|
|
|
|
|
gnc_account_dom_tree_create(Account *act)
|
|
|
|
|
{
|
2001-02-22 07:29:05 +00:00
|
|
|
xmlNodePtr ret;
|
|
|
|
|
|
2001-02-28 08:06:50 +00:00
|
|
|
ret = xmlNewNode(NULL, gnc_account_string);
|
2001-02-22 07:29:05 +00:00
|
|
|
xmlSetProp(ret, "version", account_version_string);
|
|
|
|
|
|
2001-03-13 21:05:09 +00:00
|
|
|
xmlAddChild(ret, text_to_dom_tree(act_name_string, xaccAccountGetName(act)));
|
2001-02-22 07:29:05 +00:00
|
|
|
|
2001-02-28 08:06:50 +00:00
|
|
|
xmlAddChild(ret, guid_to_dom_tree(act_id_string, xaccAccountGetGUID(act)));
|
2001-02-22 07:29:05 +00:00
|
|
|
|
2001-03-13 21:05:09 +00:00
|
|
|
xmlAddChild(ret, text_to_dom_tree(
|
|
|
|
|
act_type_string,
|
|
|
|
|
xaccAccountTypeEnumAsString(xaccAccountGetType(act))));
|
2001-02-22 07:29:05 +00:00
|
|
|
|
2001-02-28 08:06:50 +00:00
|
|
|
xmlAddChild(ret, commodity_ref_to_dom_tree(act_currency_string,
|
2001-05-15 15:52:22 +00:00
|
|
|
xaccAccountGetCurrency(act)));
|
2001-02-22 07:29:05 +00:00
|
|
|
|
2001-05-15 15:52:22 +00:00
|
|
|
xmlAddChild(ret, int_to_dom_tree(act_currency_scu_string,
|
|
|
|
|
xaccAccountGetCurrencySCU(act)));
|
|
|
|
|
|
2001-03-13 06:20:03 +00:00
|
|
|
if(xaccAccountGetCode(act) &&
|
|
|
|
|
strlen(xaccAccountGetCode(act)) > 0)
|
2001-02-22 07:29:05 +00:00
|
|
|
{
|
2001-03-13 21:05:09 +00:00
|
|
|
xmlAddChild(ret, text_to_dom_tree(act_code_string,
|
|
|
|
|
xaccAccountGetCode(act)));
|
2001-02-22 07:29:05 +00:00
|
|
|
}
|
|
|
|
|
|
2001-03-13 06:20:03 +00:00
|
|
|
if(xaccAccountGetDescription(act) &&
|
|
|
|
|
strlen(xaccAccountGetDescription(act)) > 0)
|
2001-02-22 07:29:05 +00:00
|
|
|
{
|
2001-03-13 21:05:09 +00:00
|
|
|
xmlAddChild(ret, text_to_dom_tree(act_description_string,
|
|
|
|
|
xaccAccountGetDescription(act)));
|
2001-02-22 07:29:05 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if(xaccAccountGetSecurity(act))
|
|
|
|
|
{
|
2001-02-28 08:06:50 +00:00
|
|
|
xmlAddChild(ret, commodity_ref_to_dom_tree(act_security_string,
|
2001-02-22 07:29:05 +00:00
|
|
|
xaccAccountGetSecurity(act)));
|
2001-05-15 15:52:22 +00:00
|
|
|
xmlAddChild(ret, int_to_dom_tree(act_security_scu_string,
|
2001-06-01 22:46:02 +00:00
|
|
|
xaccAccountGetCommoditySCU(act)));
|
2001-02-22 07:29:05 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if(xaccAccountGetSlots(act))
|
|
|
|
|
{
|
2001-03-13 06:20:03 +00:00
|
|
|
xmlNodePtr kvpnode = kvp_frame_to_dom_tree(act_slots_string,
|
|
|
|
|
xaccAccountGetSlots(act));
|
|
|
|
|
if(kvpnode)
|
|
|
|
|
{
|
|
|
|
|
xmlAddChild(ret, kvpnode);
|
|
|
|
|
}
|
2001-02-22 07:29:05 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if(xaccAccountGetParentAccount(act))
|
|
|
|
|
{
|
|
|
|
|
xmlAddChild(ret, guid_to_dom_tree(
|
2001-02-28 08:06:50 +00:00
|
|
|
act_parent_string,
|
2001-02-22 07:29:05 +00:00
|
|
|
xaccAccountGetGUID(xaccAccountGetParentAccount(act))));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return ret;
|
2001-02-12 22:35:20 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/***********************************************************************/
|
2001-03-09 07:46:13 +00:00
|
|
|
|
2001-02-12 22:35:20 +00:00
|
|
|
static gboolean
|
2001-03-09 07:46:13 +00:00
|
|
|
set_string(xmlNodePtr node, Account* act,
|
|
|
|
|
void (*func)(Account *act, const gchar *txt))
|
2001-02-12 22:35:20 +00:00
|
|
|
{
|
2001-03-09 07:46:13 +00:00
|
|
|
gchar* txt = dom_tree_to_text(node);
|
2001-02-28 08:06:50 +00:00
|
|
|
g_return_val_if_fail(txt, FALSE);
|
|
|
|
|
|
2001-03-09 07:46:13 +00:00
|
|
|
func(act, txt);
|
2001-02-28 08:06:50 +00:00
|
|
|
|
|
|
|
|
g_free(txt);
|
|
|
|
|
|
|
|
|
|
return TRUE;
|
2001-02-12 22:35:20 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
static gboolean
|
2001-03-09 07:46:13 +00:00
|
|
|
account_name_handler (xmlNodePtr node, gpointer act)
|
|
|
|
|
{
|
|
|
|
|
return set_string(node, (Account*)act, xaccAccountSetName);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
static gboolean
|
|
|
|
|
account_id_handler (xmlNodePtr node, gpointer act)
|
2001-02-12 22:35:20 +00:00
|
|
|
{
|
2001-03-01 21:15:21 +00:00
|
|
|
GUID *guid;
|
|
|
|
|
|
|
|
|
|
guid = dom_tree_to_guid(node);
|
2001-03-09 07:46:13 +00:00
|
|
|
xaccAccountSetGUID((Account*)act, guid);
|
2001-03-01 21:15:21 +00:00
|
|
|
|
|
|
|
|
g_free(guid);
|
|
|
|
|
|
2001-02-12 22:35:20 +00:00
|
|
|
return TRUE;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
static gboolean
|
2001-03-09 07:46:13 +00:00
|
|
|
account_type_handler (xmlNodePtr node, gpointer act)
|
2001-02-12 22:35:20 +00:00
|
|
|
{
|
|
|
|
|
int type;
|
2001-06-26 21:43:15 +00:00
|
|
|
char *string;
|
|
|
|
|
|
|
|
|
|
string = xmlNodeGetContent (node->xmlChildrenNode);
|
|
|
|
|
xaccAccountStringToType(string, &type);
|
|
|
|
|
xmlFree (string);
|
2001-02-12 22:35:20 +00:00
|
|
|
|
2001-03-09 07:46:13 +00:00
|
|
|
xaccAccountSetType((Account*)act, type);
|
2001-06-26 21:43:15 +00:00
|
|
|
|
2001-02-12 22:35:20 +00:00
|
|
|
return TRUE;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
static gboolean
|
2001-03-09 07:46:13 +00:00
|
|
|
account_currency_handler (xmlNodePtr node, gpointer act)
|
2001-02-12 22:35:20 +00:00
|
|
|
{
|
2001-02-15 00:17:57 +00:00
|
|
|
gnc_commodity *ref;
|
|
|
|
|
|
2001-02-28 23:31:04 +00:00
|
|
|
ref = dom_tree_to_commodity_ref_no_engine(node);
|
2001-03-09 07:46:13 +00:00
|
|
|
xaccAccountSetCurrency((Account*)act, ref);
|
2001-02-28 23:31:04 +00:00
|
|
|
|
2001-02-12 22:35:20 +00:00
|
|
|
return TRUE;
|
|
|
|
|
}
|
|
|
|
|
|
2001-05-15 15:52:22 +00:00
|
|
|
static gboolean
|
|
|
|
|
account_currency_scu_handler (xmlNodePtr node, gpointer act)
|
|
|
|
|
{
|
|
|
|
|
gint64 val;
|
|
|
|
|
dom_tree_to_integer(node, &val);
|
|
|
|
|
xaccAccountSetCurrencySCU((Account*)act, val);
|
|
|
|
|
|
|
|
|
|
return TRUE;
|
|
|
|
|
}
|
|
|
|
|
|
2001-02-12 22:35:20 +00:00
|
|
|
static gboolean
|
2001-03-09 07:46:13 +00:00
|
|
|
account_security_handler (xmlNodePtr node, gpointer act)
|
2001-02-12 22:35:20 +00:00
|
|
|
{
|
2001-02-15 00:17:57 +00:00
|
|
|
gnc_commodity *ref;
|
2001-02-28 23:31:04 +00:00
|
|
|
ref = dom_tree_to_commodity_ref_no_engine(node);
|
2001-03-09 07:46:13 +00:00
|
|
|
xaccAccountSetSecurity((Account*)act, ref);
|
2001-02-28 23:31:04 +00:00
|
|
|
|
2001-02-12 22:35:20 +00:00
|
|
|
return TRUE;
|
|
|
|
|
}
|
|
|
|
|
|
2001-05-15 15:52:22 +00:00
|
|
|
static gboolean
|
|
|
|
|
account_security_scu_handler (xmlNodePtr node, gpointer act)
|
|
|
|
|
{
|
|
|
|
|
gint64 val;
|
|
|
|
|
dom_tree_to_integer(node, &val);
|
2001-06-01 22:46:02 +00:00
|
|
|
xaccAccountSetCommoditySCU((Account*)act, val);
|
2001-05-15 15:52:22 +00:00
|
|
|
|
|
|
|
|
return TRUE;
|
|
|
|
|
}
|
|
|
|
|
|
2001-02-12 22:35:20 +00:00
|
|
|
static gboolean
|
2001-03-09 07:46:13 +00:00
|
|
|
account_slots_handler (xmlNodePtr node, gpointer act)
|
2001-02-12 22:35:20 +00:00
|
|
|
{
|
2001-02-28 08:06:50 +00:00
|
|
|
kvp_frame *frm = dom_tree_to_kvp_frame(node);
|
|
|
|
|
g_return_val_if_fail(frm, FALSE);
|
|
|
|
|
|
2001-03-09 07:46:13 +00:00
|
|
|
xaccAccountSetSlots_nc((Account*)act, frm);
|
2001-02-28 08:06:50 +00:00
|
|
|
|
2001-02-22 07:29:05 +00:00
|
|
|
return TRUE;
|
2001-02-12 22:35:20 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
static gboolean
|
2001-03-09 07:46:13 +00:00
|
|
|
account_parent_handler (xmlNodePtr node, gpointer act)
|
2001-02-12 22:35:20 +00:00
|
|
|
{
|
|
|
|
|
Account *parent;
|
2001-05-19 10:02:36 +00:00
|
|
|
GUID *gid;
|
2001-02-12 22:35:20 +00:00
|
|
|
|
2001-05-19 10:02:36 +00:00
|
|
|
gid = dom_tree_to_guid(node);
|
2001-03-22 08:02:48 +00:00
|
|
|
g_return_val_if_fail(gid, FALSE);
|
2001-05-19 10:02:36 +00:00
|
|
|
|
2001-02-12 22:35:20 +00:00
|
|
|
parent = xaccAccountLookup(gid);
|
2001-05-19 10:02:36 +00:00
|
|
|
if (!parent)
|
|
|
|
|
{
|
|
|
|
|
g_free (gid);
|
|
|
|
|
g_return_val_if_fail(parent, FALSE);
|
|
|
|
|
}
|
2001-02-12 22:35:20 +00:00
|
|
|
|
2001-03-09 07:46:13 +00:00
|
|
|
xaccAccountInsertSubAccount(parent, (Account*)act);
|
2001-02-12 22:35:20 +00:00
|
|
|
|
2001-05-19 10:02:36 +00:00
|
|
|
g_free (gid);
|
|
|
|
|
|
2001-02-12 22:35:20 +00:00
|
|
|
return TRUE;
|
|
|
|
|
}
|
|
|
|
|
|
2001-02-28 08:06:50 +00:00
|
|
|
static gboolean
|
2001-03-09 07:46:13 +00:00
|
|
|
account_code_handler(xmlNodePtr node, gpointer act)
|
2001-02-28 08:06:50 +00:00
|
|
|
{
|
2001-03-09 07:46:13 +00:00
|
|
|
return set_string(node, (Account*)act, xaccAccountSetCode);
|
2001-02-28 08:06:50 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
static gboolean
|
2001-03-09 07:46:13 +00:00
|
|
|
account_description_handler(xmlNodePtr node, gpointer act)
|
2001-02-28 08:06:50 +00:00
|
|
|
{
|
2001-03-09 07:46:13 +00:00
|
|
|
return set_string(node, (Account*)act, xaccAccountSetDescription);
|
2001-02-28 08:06:50 +00:00
|
|
|
}
|
|
|
|
|
|
2001-03-09 07:46:13 +00:00
|
|
|
static struct dom_tree_handler account_handlers_v2[] = {
|
2001-05-15 15:52:22 +00:00
|
|
|
{ act_name_string, account_name_handler, 1, 0 },
|
|
|
|
|
{ act_id_string, account_id_handler, 1, 0 },
|
|
|
|
|
{ act_type_string, account_type_handler, 1, 0 },
|
|
|
|
|
{ act_currency_string, account_currency_handler, 1, 0 },
|
|
|
|
|
{ act_currency_scu_string, account_currency_scu_handler, 0, 0 },
|
|
|
|
|
{ act_code_string, account_code_handler, 0, 0 },
|
|
|
|
|
{ act_description_string, account_description_handler, 0, 0},
|
|
|
|
|
{ act_security_string, account_security_handler, 0, 0 },
|
|
|
|
|
{ act_security_scu_string, account_security_scu_handler, 0, 0 },
|
|
|
|
|
{ act_slots_string, account_slots_handler, 0, 0 },
|
|
|
|
|
{ act_parent_string, account_parent_handler, 0, 0 },
|
2001-02-12 22:35:20 +00:00
|
|
|
{ NULL, 0, 0, 0 }
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
static gboolean
|
|
|
|
|
gnc_account_end_handler(gpointer data_for_children,
|
|
|
|
|
GSList* data_from_children, GSList* sibling_data,
|
|
|
|
|
gpointer parent_data, gpointer global_data,
|
|
|
|
|
gpointer *result, const gchar *tag)
|
|
|
|
|
{
|
|
|
|
|
int successful;
|
|
|
|
|
Account *acc;
|
|
|
|
|
xmlNodePtr achild;
|
|
|
|
|
xmlNodePtr tree = (xmlNodePtr)data_for_children;
|
2001-04-05 21:37:55 +00:00
|
|
|
gxpf_data *gdata = (gxpf_data*)global_data;
|
2001-02-28 23:31:04 +00:00
|
|
|
|
2001-02-12 22:35:20 +00:00
|
|
|
successful = TRUE;
|
2001-02-22 07:29:05 +00:00
|
|
|
|
|
|
|
|
if(parent_data)
|
|
|
|
|
{
|
2001-02-28 23:31:04 +00:00
|
|
|
return TRUE;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/* OK. For some messed up reason this is getting called again with a
|
|
|
|
|
NULL tag. So we ignore those cases */
|
|
|
|
|
if(!tag)
|
|
|
|
|
{
|
|
|
|
|
return TRUE;
|
2001-02-22 07:29:05 +00:00
|
|
|
}
|
2001-02-12 22:35:20 +00:00
|
|
|
|
2001-02-28 23:31:04 +00:00
|
|
|
g_return_val_if_fail(tree, FALSE);
|
|
|
|
|
|
2001-02-12 22:35:20 +00:00
|
|
|
acc = xaccMallocAccount();
|
|
|
|
|
g_return_val_if_fail(acc, FALSE);
|
|
|
|
|
xaccAccountBeginEdit(acc);
|
|
|
|
|
|
2001-03-09 07:46:13 +00:00
|
|
|
successful = dom_tree_generic_parse(tree, account_handlers_v2, acc);
|
2001-02-12 22:35:20 +00:00
|
|
|
xaccAccountCommitEdit(acc);
|
|
|
|
|
|
|
|
|
|
if(!successful)
|
|
|
|
|
{
|
|
|
|
|
xaccFreeAccount(acc);
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
2001-04-05 21:37:55 +00:00
|
|
|
gdata->cb(tag, gdata->data, acc);
|
2001-05-15 15:52:22 +00:00
|
|
|
/*
|
|
|
|
|
* Now return the account to the "edit" state. At the end of reading
|
|
|
|
|
* all the transactions, we will Commit. This replaces #splits
|
|
|
|
|
* rebalances with #accounts rebalances at the end. A BIG win!
|
|
|
|
|
*/
|
|
|
|
|
xaccAccountBeginEdit(acc);
|
2001-02-12 22:35:20 +00:00
|
|
|
}
|
|
|
|
|
|
2001-02-28 23:31:04 +00:00
|
|
|
xmlFreeNode(tree);
|
2001-02-12 22:35:20 +00:00
|
|
|
|
|
|
|
|
return successful;
|
|
|
|
|
}
|
|
|
|
|
|
2001-06-17 Joshua Sled <jsled@asynchronous.org>
* src/engine/gnc-account-xml-v2.c (dom_tree_to_account): Added.
* src/engine/gnc-transaction-xml-v2.c (dom_tree_to_transaction):
Added.
* src/FileDialog.c: Added support for copying
scheduled-transaction-related GNCBook fields.
src/engine/
* src/engine/FreqSpec.{h,c}: Added.
* src/engine/SchedXaction.{h,c}: Added.
* src/engine/gnc-{freqspec,schedxaction}-xml-v2.c: Added
* src/engine/gnc-book.c: Added the template group [template
transaction belong to the template group] and the Scheduled
Trasnaction list.
* src/gnome/glade/sched_xact.glade: Added.
* src/gnome/dialog-nextrun.{h,c}: Added.
* src/gnome/dialog-scheduledxaction.{h,c}: Added.
* src/gnome/gnc-frequency.{h,c}: Added.
* src/SplitLedger.c, src/MultiLedger.c: Added support for a
Template Ledger.
* src/guile/gnc.gwp: Added wrapping for
dialog-{scheduledxactions,nextrun}-creation functions.
* src/register/splitreg.c: Added formula credit and debit cells,
and flags for template-register support.
* src/register/formulacell.h: Added.
* src/gnome/gnc-dateedit.h: Added explanatory comment from dave_p
in IRC.
* src/gnome/query-user.h: Added prototype of
gnc_verify_dialog_parented(...), so I could use it the SX UI
stuff.
git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@4725 57a11ea4-9604-0410-9ed3-97b8803252fd
2001-06-18 08:25:46 +00:00
|
|
|
Account*
|
|
|
|
|
dom_tree_to_account( xmlNodePtr node )
|
|
|
|
|
{
|
|
|
|
|
Account *accToRet;
|
|
|
|
|
gboolean successful;
|
|
|
|
|
|
|
|
|
|
accToRet = xaccMallocAccount();
|
|
|
|
|
successful = dom_tree_generic_parse( node, account_handlers_v2, accToRet );
|
|
|
|
|
xaccAccountCommitEdit( accToRet );
|
|
|
|
|
|
|
|
|
|
if ( !successful ) {
|
|
|
|
|
xaccFreeAccount( accToRet );
|
|
|
|
|
accToRet = NULL;
|
|
|
|
|
}
|
|
|
|
|
// jsled_FIXME? See note above.
|
|
|
|
|
xaccAccountBeginEdit( accToRet );
|
|
|
|
|
return accToRet;
|
|
|
|
|
}
|
|
|
|
|
|
2001-02-12 22:35:20 +00:00
|
|
|
sixtp*
|
2001-02-22 07:29:05 +00:00
|
|
|
gnc_account_sixtp_parser_create(void)
|
2001-02-12 22:35:20 +00:00
|
|
|
{
|
2001-02-25 00:42:44 +00:00
|
|
|
return sixtp_dom_parser_new(gnc_account_end_handler, NULL, NULL);
|
2001-02-12 22:35:20 +00:00
|
|
|
}
|